Windows 8 & Office 2013 Access 2013

氏名を姓と名のフィールドに分けるクエリを作成して新規テーブルへ

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

1つのテーブルにが[スペース]で分けられている[氏名]フィールドがあります。

これをクエリで[姓]と[名]のフィールドに分ける方法を紹介します。

InStr関数を使って、文字列の中から空白スペースを検索して、Left関数とMid関数で求めます。

また、作成したクエリをもとに、新規テーブルを作成するまでを解説します。

クエリで姓と名に分ける

テーブルの確認

下のようなテーブル[T_man]があります。

[氏名]フィールドの[姓]と[名]の間は、半角もしくは全角のスペースです。

サンプルのため、わざと[半角スペース]、[全角スペース]としています。

テーブル[T_man]

参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

クエリの作成

テーブル[T_man]をもとにクエリを作成して、[氏名]フィールドをデザイングリッドへドラッグします。

そして、2列目、3列目のフィールドには以下のように入力します。

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

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

クエリの作成

参考デザイングリッドのフィールドに入力する時は、ズームウィンドウを使用すると楽に入力できます。

[ズーム]ウィンドウを表示して入力

または、クエリデザインのフォントサイズを大きくする方法もあります。

クエリデザインとデータシートビューのフォントサイズを変更

Accessのクエリデザインとデータシートビューのフォントサイズを変更する方法です。 大きく表示したいと思う方も多いのではないでしょうか?オ ...

続きを見る

InStr関数・Left関数・Mid関数について

3つの関数について少し解説します。

InStr関数

InStr関数とは、ある文字列の中から指定された文字列を検索して、最初に見つかった文字位置(文字数)を返す関数です。

インエスティーアール、インストリングと読むようです。

InStr(開始位置, 文字列, 検索文字列, 比較モード)

[開始位置]と[比較モード]は省略可

InStr 関数 - Access(Microsoft)

Left関数

Left関数は、文字列の左端から指定した文字数分の文字列を返します。

Left(文字列, 文字数)

空白スペースは不要なので-1ですね。

Left 関数 - Access(Microsoft)

Mid関数

Mid関数は、文字列の開始位置から指定した文字数分の文字列を返します。

Mid(文字列, 開始位置, 文字数)

[文字数]は省略可(文字数を省略した場合は、開始位置以降全てを取り出します)

開始位置より1つ右からなので+1ですね。

Mid 関数 - Access(Microsoft)

参考InStr関数は便利な関数ですが、Excelのワークシート関数にはありません。VBAでは使用します。

クエリの実行

作成したクエリを実行すると、[姓]フィールド、[名]フィールドに分けられています。

クエリを実行した結果

デザインビューで[氏名]フィールドの[表示]をオフにすると、

クエリで[氏名]フィールドの表示をオフ

データシートビューは、以下のようになります。

[氏名]フィールドをオフにしたクエリのデータシートビュー

参考分割ではなく、文字列をつなげたい場合は、フィールドを[&]で結合します。

作成したクエリからテーブルを作成

アクションクエリでテーブルを作成するのもいいと思います。

テーブルを作成するには、[ID]フィールドもあったほうがいいと思いますので、デザイングリッドに[ID]を追加します。

クエリのデザイングリッドに[ID]を追加

[デザイン]タブの[クエリの種類]グループにある[テーブルの作成]をクリックします。

クエリの種類:テーブルの作成

クエリを使用してデータベースのレコードを選択し、新しいテーブルとして保存します。

[デザイン]タブの[クエリの種類]グループにある[テーブルの作成]

[テーブルの作成]ダイアログボックスが表示されます。

[テーブル名]のテキストボックスに任意の名前を入力して[OK]ボタンをクリックします。

ここでは、[T_氏名]とします。

[テーブルの作成]ダイアログボックス

[デザイン]タブの[結果]グループにある[実行]ボタンをクリックします。

[デザイン]タブの[結果]グループにある[実行]ボタン

以下のメッセージウィンドウが表示されますので、[はい]をクリックします。

メッセージウィンドウ

ナビゲーションウィンドウにテーブル[T_氏名]が追加されています。

テーブル[T_氏名]

作成したテーブル作成クエリは必要であれば、保存しておくといいと思います。

アクションクエリは、ダブルクリックするだけで実行されますので、気を付けてください。

アクションクエリ

参考アクションクエリ[テーブルの作成]については、以下の記事でも解説しています。

ユニオンクエリ(複数のテーブルを結合)をコピーと貼付で簡単作成

Accessには、複数のテーブルやクエリのレコードを結び付けて、1つのクエリにする[ユニオンクエリ]という機能があります。 ユニオンクエリは ...

続きを見る

グループ化で重複レコードを削除したテーブルを作成

Accessで、1つのテーブルで重複したレコードを削除してマスターテーブルを作成する方法です。 クエリでグループ化を設定して重複レコードがな ...

続きを見る

Excelで姓と名に分ける方法もあります。

テーブル[T_man]をそのままExcelに出力して、Excelで姓と名に分けることもできます。

Excelのワークシートで氏名の列を姓と名に分割するには、区切り位置指定ウィザードを使用すると便利です。

氏名の列を姓と名の列に分割するなら[区切り位置指定ウィザード]

Excelで氏名セルを姓と名の別々のセルに分けるという作業をしなければならないことがあります。 F列の氏名は、空白スペースで区切られています ...

続きを見る

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

フラッシュフィル(文字列の結合や抜き出しをワンクリックで)

フラッシュフィルとは、Excelが入力されたデータから規則性を自動的に認識して実行してくれる機能です。Excel2013の新機能です。 これ ...

続きを見る

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

AccessからExcelへ出力するコマンドボタンの設定は、以下の記事で解説しています。

Excelへ出力(エクスポート)するコマンドボタンの作成

Access2010でテーブルやクエリをExcelへ出力するマクロを作成して、それをコマンドボタンに登録する方法です。 独立マクロを作成して ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

Profile

執筆者/はま

-Windows 8 & Office 2013 Access 2013

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

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