

氏名のデータから「氏」の部分だけを抽出したいですが、人によって2~3文字でバラツキがあります。
Power Queryエディター上で氏名の間の全角スペースを基準に文字を抽出したい場合、どうしたら良いですか?

その場合、Power Queryエディター上の「区切り記号の前のテキスト」コマンドを使えば良いですよ!
では、詳細を解説していきますね。
解説動画:【パワークエリ#6】データクレンジング基本テクニック13選 – 元データを綺麗にするための不備修正の作業を自動化する
この記事の内容は下記の動画でも解説しています。
コメント欄の「抽出」の部分をクリックすると該当の解説へジャンプできますよ!
はじめに
この記事はパワークエリの概要を把握していることが前提です。
パワークエリの概要については、以下の記事をご参照ください。
この記事は、Excelでパワークエリ(Power Query)を使いたい方向けに、パワークエリの活用ノウハウをExcel本著者が解説。パワークエリの使用イメージ・できること・クエリの新規作成ステップ等を網羅。豊富な図解を用意しています。
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」の使いどころ
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドは、クエリの新規作成ステップのうち、STEP2の「取得データを整形/加工(Transform)」に該当する機能です。
機能自体は、ワークシート上の関数の「TEXTBEFORE」・「TEXTAFTER」と似ています。
「TEXTBEFORE」・「TEXTAFTER」の詳細は、別記事にまとめる予定。
クエリ内の一連の整形作業の中で、既存データから区切り記号の前や後、間にある文字を抽出したい場合に「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドを使いましょう。
区切り記号(文字)とは、「データ抽出/分割の目印となる文字」のこと。
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドを活用することで、区切り記号を基準に指定した列の各セルから必要な文字を抽出することが可能です。
なお、「区切り記号の前のテキスト」コマンドがTEXTBEFORE、「区切り記号の後のテキスト」コマンドがTEXTAFTER、「区切り記号の間のテキスト」がTEXTBEFORE+TEXTAFTERに相当します。
使用イメージ
「氏名」列を対象に「区切り記号の前のテキスト」コマンドを使用し、全角スペースの前にある「氏」を抽出したイメージが以下です。
Power Queryエディター上で区切り記号を基準に文字を抽出したステップを登録できました。
「区切り記号の前のテキスト」コマンドの場合、デフォルトのステップ名は「区切り記号の前の抽出されたテキスト」になる(クエリ内で2つ目以降の「区切り記号の前の抽出されたテキスト」ステップは連番が付加)。
「区切り記号の後のテキスト」コマンドの場合、デフォルトのステップ名は「区切り記号の後の抽出されたテキスト」。
「区切り記号の間のテキスト」コマンドの場合、デフォルトのステップ名は「区切り記号の間の抽出されたテキスト」。
後は、クエリ新規作成ステップのSTEP2で必要な他ステップを登録したら、STEP3を行いましょう。
これにより、クエリに記録した「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドのステップを自動化できます。
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドのステップ登録後、文字の抽出対象の列名を変更すると、クエリ更新時にエラーになるため注意(対処法は、後述の「登録したステップの変更手順」を参照)。
クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。
パワークエリ(Power Query)に関してのコンテンツです。
この記事は、Excelでパワークエリ(Power Query)を使いたい方向けに、パワークエリの活用ノウハウをExcel本著者が解説。パワークエリの使用イメージ・できること・クエリの新規作成ステップ等を網羅。豊富な図解を用意しています。
ステップ登録手順
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドのステップの登録手順はほぼ一緒ですが、ダイアログの内容が「区切り記号の前のテキスト」・「区切り記号の後のテキスト」コマンドと「区切り記号の間のテキスト」コマンドで若干異なります。
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」コマンド
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」コマンドの場合、以下の手順となります。
- 抽出したい列を選択
※今回は「氏名」列 - リボン「変換」タブをクリック
- 「抽出」をクリック
- 「区切り記号の前のテキスト」or「区切り記号の後のテキスト」をクリック
※今回は「区切り記号の前のテキスト」 - 任意の区切り記号を入力
※今回は「全角スペース」 - 「OK」をクリック
手順①の列を上書きしたくない場合、手順②はリボン「列の追加」タブをクリック。
※同じコマンドがあるが、手順①の列を残し、抽出結果を新たな列として追加。
手順④は、区切り記号の前後どちらの文字を抽出したいかによって使い分け。
手順⑤は、手順①の各値の区切り記号と全角/半角も含めて一致させる必要あり(不一致の場合、抽出されず元の値が残る)。
「区切り記号の間のテキスト」コマンド
「区切り記号の間のテキスト」コマンドの場合、以下の手順となります。
- 抽出したい列を選択
※今回は「氏名」列 - リボン「変換」タブをクリック
- 「抽出」をクリック
- 「区切り記号の間のテキスト」をクリック
- 任意の開始区切り記号を入力
※今回は「全角スペース」 - 任意の終了区切り記号を入力
※今回は「全角スペース」 - 「OK」をクリック
手順①の列を上書きしたくない場合、手順②はリボン「列の追加」タブをクリック。
※同じコマンドがあるが、手順①の列を残し、抽出結果を新たな列として追加。
手順⑤⑥は、別々の区切り記号を設定することも可能。
手順⑤⑥は、手順①の各値の区切り記号と全角/半角も含めて一致させる必要あり(不一致の場合、抽出されず元の値が残る)。
【参考】詳細設定オプション
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」ダイアログに用意されている「詳細設定オプション」をクリックすると、抽出の条件をより詳細に設定することが可能です。
それぞれ順番に解説します。
区切り記号のスキャン
詳細設定オプションの「区切り記号のスキャン」は、各セルの区切り記号の探し方を変更できます。
「区切り記号の間のテキスト」ダイアログの場合、開始区切り記号・終了区切り記号それぞれを変更可能。
デフォルトは「入力の先頭から」となっており、各セルの先頭から右方向へ区切り記号を探す設定です。
もし、末尾から左方向に変更したい場合は「入力の末尾から」へ変更しましょう。
スキップする区切り記号の数
詳細設定オプションの「スキップする区切り記号の数」は、区切り記号が複数ある場合、2つ目以降の区切り記号を抽出の基準に変更できます。
「区切り記号の間のテキスト」ダイアログの場合、開始区切り記号・終了区切り記号それぞれを変更可能。
デフォルトは「0」となっており、「区切り記号のスキャン」の結果、1つ目の区切り記号が抽出基準になる設定です。
もし、2つ目以降の区切り記号を抽出基準に変更したい場合、スキップする数を数値で入力しましょう。
例:2つ目の区切り記号を抽出基準にしたい場合、「1」を入力(1つ目をスキップし、2つ目が基準になる)。
登録したステップの変更手順
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドで登録したステップを後から変更する場合、変更したい内容が抽出条件(開始位置、文字数)か、それ以外かで手順が異なります。
それぞれの手順を順番に解説していきましょう。
抽出条件(区切り記号、詳細設定オプション)
抽出条件(区切り記号、詳細設定オプション)のみを後から変更したい場合、以下の手順で変更しましょう。
- 「抽出される最初の文字」 or 「抽出される最後の文字」 or 「抽出されるテキスト範囲」ステップの歯車マークをクリック
- 任意の箇所を修正
- 「OK」をクリック
手順①のステップ名は「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
手順①で起動した「最初の文字を抽出する」・「最後の文字を抽出する」・「テキスト範囲を抽出する」ダイアログは、ステップに設定した内容がセットされた状態。
その他
抽出条件以外の内容(抽出対象の列や抽出に使うコマンド等)を後から変更したい場合、以下の手順で変更しましょう。
- 「抽出される最初の文字」 or 「抽出される最後の文字」 or 「抽出されるテキスト範囲」ステップを削除(「×」をクリック)
- 再度「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドのステップ登録手順を実行
手順①のステップ名は、「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_PowerQueryデータ整形_抽出_区切り記号.xlsx
サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。
ブックを開いたら、「社員マスタ(抽出_区切り記号)」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。
- 抽出したい列を選択
※今回は「氏名」列 - リボン「変換」タブをクリック
- 「抽出」をクリック
- 「区切り記号の前のテキスト」or「区切り記号の後のテキスト」をクリック
※今回は「区切り記号の前のテキスト」 - 任意の区切り記号を入力
※今回は「全角スペース」 - 「OK」をクリック
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドは、区切り記号を基準に指定した列の各セルから必要な文字を抽出できます。
データ抽出のオーソドックスな処理の1つのため、ぜひ基本テクニックとして覚えておきましょう!
なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m

「区切り記号の前のテキスト」・「区切り記号の後のテキスト」・「区切り記号の間のテキスト」コマンドに慣れたら、他のデータ抽出に役立つコマンドもセットで覚えることをおすすめします。
具体的には、文字数を基準に抽出する「最初の文字」・「最後の文字」・「範囲」コマンドです。
作業目的やデータ内容に応じて、これらのコマンドをうまく使い分けできるようになりましょう!