全角スペース1つではなく半角スペースが2つ入っていたり、名の後ろにスペースが入っていたり、
の部分は更新クエリで簡単にできますよね。「半角スペースが2つ」はReplace関数で変換できます。(引数で全角、半角を区別しないテキストモードに指定する。)「名の後ろにスペース」はTrim関数で。
そもそもスペースが入っていなかったり
これが難題ですね。
全角スペース2つを全角スペース1つに置換、クエリでtrimした後、姓と名の間にスペースが無いものを手動でレコードを確認しながら手打ちしています。
前半の部分は上記で説明した更新クエリでできますが、それはできているということでいいですか。
後半の「姓と名の間にスペースが無いものを手動でレコードを確認しながら手打ち」の部分が時間を要するために、これを出来る限り効率的にする方法はないか、というのがこの質問の要点ですよね。
まず、思いついたのが、下記のようなデータを利用して、区切りのない氏名データから、名字をマッチングさせて切り出す処理をVBAで自作する。字数の多い名字から順にマッチングさせていけばある程度の精度まではできそうです。
全国名字(苗字)ランキング|名字検索No.1/名字由来net|日本人の苗字・姓氏99%を掲載!!
#1 maisumakunさんが例示した「平光清」が「平 光清」か「平光 清」』のようにどちらともとれるようなものは第1候補、第2候補・・・として提示して最終的にはユーザーが選択するような設計にすればいいでしょう。
ここまで考えて、このような要望は割とありそうなので、そのようなツールがあるのでは、ということで検索してみたら下記のツールがヒットしました。
姓名分割くん - 名字(苗字)と名前を一括で分割するツール
地味に便利、日本人のフルネームを姓と名に分割するツールのPythonパッケージ公開【やじうまWatch】 - INTERNET Watch
前者の方を少し試してみましたが、わりと精度高く分割できそうです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。