苗字と名前(姓と名)を分割する

f:id:accs2014:20161112121017p:plain:right:w400

 スペース入りの「氏名」列から苗字と名前(姓と名)をそれぞれ取り出す方法です。
 例として右のようなテーブルを用います。
 スペースは全角と半角が混在していることに注意してください。


f:id:accs2014:20161112121016p:plain:right:w400

 クエリのデザインビューです。
 次のような列を設けます。



姓: Left([氏名],InStr([氏名]," ")-1)
名: Mid([氏名],InStr([氏名]," ")+1)

 Instr関数によりスペースの位置を特定し、その前後の文字列を取り出しています。
 Instr関数の第3引数を省略しており、通常の設定では全角スペースと半角スペースは区別されません(同一視されます)。その指定を明示する場合は第3引数を「1」としてください。


f:id:accs2014:20161112121015p:plain:right:w400

 データシートビューです。
 なお、氏名にスペースが複数含まれる場合(半角スペース2つで区切られているなど)は出力にスペースが残ってしまいます。その場合は上記の式をさらにTrim関数で囲むのが一つの対策です。