リンクユニット

Windows8 & Office2013 Access2013

Print Friendly, PDF & Email

氏名を姓と名のフィールドに分ける

投稿日:2017年1月7日 更新日:

Accessでしっかりテーブル設計をしていればいいのですが、なかなかそうはいかず、後からいろいろ注文を受けることになります。

氏名フィールドがあって姓と名が全角スペースで分けられています。
これをExcelで出力した時に姓と名を別々のセルに表示して出力出来ないかとのこと。
テーブルをそのまま出力して、Excelで姓と名に分ける方法で対処したのですが、Accessのクエリでも関数を使ってできますね。

下のようなテーブルがあります。姓と名の間は、半角もしくは全角のスペースです。
サンプルのため、わざと半角スペース、全角スペースとしています。
テーブル

クエリを作成して、フィールドに下のように入力します。
姓: Left([氏名],InStr([氏名]," ")-1)
名: Mid([氏名],InStr([氏名]," ")+1)

InStr関数とは、ある文字列の中から指定された文字列を検索して、最初に見つかった文字位置(文字数)を返す関数です。
Left関数は、文字列の左端から指定した文字数分の文字列を返します。空白スペースは不要なので-1ですね。
Mid関数は、文字列の開始位置から指定した文字数分の文字列を返します。
文字数を省略した場合は、開始位置以降全てを取り出します。開始位置より1つ右からなので+1ですね。
クエリ

実行すると、姓フィード、名フィールドに分けられています。
クエリの実行

やっぱり、ボタン1つで目的のExcelファイルが出力できたほうが便利ですね。
InStr関数は便利な関数ですが、Excelのワークシート関数にはありません。

関連Excelのワークシートで氏名の列を姓と名に分割するには、区切り位置ウィザードを使用すると便利です。
氏名の列を姓と名の列に分割で解説しています。

氏名の列を姓と名の列に分割

Excel2013で氏名セルを姓と名の別々のセルに分ける操作をしていたら、Excel2013のポップヒントに思わずほっこりしました。 下のよ ...

続きを見る

Excel2013以降のバージョンでは、フラッシュフィルという機能を利用して分割することもできます。

フラッシュフィル

Excel2013の新機能です。文字列などの編集を自動で行ってくれる機能です。これまで、関数や区切り位置ウィザード使って文字列を結合したり、 ...

続きを見る

上記記事内の氏名を姓と名に分割で解説しています。

解決できないことは【teratail】で質問してみましょう。

参考Officeのバージョンによって操作が異なる場合があります。以下の記事で、お使いのOfficeのバージョンを確認する方法を解説しています。

Office(Word、Excel、PowerPointなど)のバージョンを確認する方法

Microsoft Officeも時を得て、大きく様変わりしてきました。トラブルを解決しようとするとき、あるいは、何かの操作を探すときなど、 ...

続きを見る

アクセスを学習するなら、一度は読んでおいたほうがよい本です。

おすすめ記事と広告

こんな記事も読まれています

タイムラインの挿入

Excel2013の新機能です。タイムラインを使うと、日付のフィルター処理を対話式に実行することができます。 まず、Excel2013でピボ ...

複数のテキストボックスのリンク

Wordでは、下のようにテキストボックス内の文字列を他のテキストボックスへ流し込んでリンクさせることができます。 テキストボックスの挿入 テ ...

Excelのデータをインポート

AccessにExcelのデータをインポートしてテーブルを作成する方法です。操作は簡単なのですが、なかなか思うように行かないこともあります。 ...

原稿用紙の作成

Wordでの原稿用紙の作成方法です。Word2007以降であれば同じです。ここではWord2013で解説します。 Word2003の場合は、 ...

未読メッセージの色を変える

Office2013でメールを受信すると、下のようになります。ビュー設定はシングルにしています。テスト2とテスト3が未読メッセージです。 条 ...

-Windows8 & Office2013 Access2013

Copyright © 2001-2017 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2017 AllRights Reserved Powered by AFFINGER4.