パワークエリの「最初の文字」・「最後の文字」・「範囲」コマンドのサムネイル
AさんAさん

特定の列の最初の2文字分だけ抽出したいです。
Power Queryエディター上で文字を抽出したい場合、どうしたら良いですか?

森田森田

その場合、Power Queryエディター上の「最初の文字」コマンドを使えば良いですよ!
では、詳細を解説していきますね。

Excelステップ講座

解説動画:【パワークエリ#6】データクレンジング基本テクニック13選 – 元データを綺麗にするための不備修正の作業を自動化する

この記事の内容は下記の動画でも解説しています。

コメント欄の「抽出」の部分をクリックすると該当の解説へジャンプできますよ!

はじめに

この記事はパワークエリの概要を把握していることが前提です。

参考記事

パワークエリの概要については、以下の記事をご参照ください。

「最初の文字」・「最後の文字」・「範囲」の使いどころ

「最初の文字」・「最後の文字」・「範囲」コマンドは、クエリの新規作成ステップのうち、STEP2の「取得データを整形/加工(Transform)」に該当する機能です。

「最初の文字」・「最後の文字」・「範囲」コマンドのスコープ

機能自体は、ワークシート上の関数の「LEFT」「RIGHT」「MID」と似ています。

クエリ内の一連の整形作業の中で、既存データから同じ文字数で必要な文字を抽出したい場合に「最初の文字」・「最後の文字」・「範囲」コマンドを使いましょう。

「最初の文字」・「最後の文字」・「範囲」コマンドの使いどころ

「最初の文字」・「最後の文字」・「範囲」コマンドを活用することで、文字数を基準に指定した列の各セルから必要な文字を抽出することが可能です。

なお、「最初の文字」コマンドがLEFT、「最後の文字」コマンドがRIGHT、「範囲」コマンドがMIDに相当します。

参考記事

ワークシート上の関数の「LEFT」・「RIGHT」・「MID」の詳細は、以下の記事をご参照ください。



使用イメージ

「氏名」列を対象に「最初の文字」コマンドを使用し、最初の2文字を抽出したイメージが以下です。

「最初の文字」・「最後の文字」・「範囲」コマンドの使用イメージ

Power Queryエディター上で文字数を基準に先頭から文字で抽出したステップを登録できました。
「最初の文字」コマンドの場合、デフォルトのステップ名は「抽出される最初の文字」になる(クエリ内で2つ目以降の「抽出される最初の文字」ステップは連番が付加)。
「最後の文字」コマンドの場合、デフォルトのステップ名は「抽出される最後の文字」。
「範囲」コマンドの場合、デフォルトのステップ名は「抽出されるテキスト範囲」。

後は、クエリ新規作成ステップのSTEP2で必要な他ステップを登録したら、STEP3を行いましょう。

これにより、クエリに記録した「最初の文字」・「最後の文字」・「範囲」コマンドのステップを自動化できます。
「最初の文字」・「最後の文字」・「範囲」コマンドのステップ登録後、文字の抽出対象の列名を変更すると、クエリ更新時にエラーになるため注意(対処法は、後述の「登録したステップの変更手順」を参照)。

参考記事

クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。


ステップ登録手順

「最初の文字」・「最後の文字」・「範囲」コマンドのステップの登録手順はほぼ一緒ですが、ダイアログの内容が「最初の文字」・「最後の文字」コマンドと「範囲」コマンドで若干異なります。

「最初の文字」・「最後の文字」コマンド

「最初の文字」・「最後の文字」コマンドの場合、以下の手順となります。

「最初の文字」・「最後の文字」コマンドのステップ登録手順

  1. 抽出したい列を選択
    ※今回は「氏名」列
  2. リボン「変換」タブをクリック
  3. 「抽出」をクリック
  4. 「最初の文字」 or 「最後の文字」をクリック
    ※今回は「最初の文字」
  5. 抽出したい文字数を入力
    ※今回は「2」
  6. 「OK」をクリック

手順①の列を上書きしたくない場合、手順②はリボン「列の追加」タブをクリック。
※同じコマンドがあるが、手順①の列を残し、抽出結果を新たな列として追加。

手順④は、各セルの先頭と末尾のどちらから抽出したいかによって使い分け。

「範囲」コマンド

「範囲」コマンドの場合、以下の手順となります。

「範囲」コマンドのステップ登録手順

  1. 抽出したい列を選択
    ※今回は「氏名」列
  2. リボン「変換」タブをクリック
  3. 「抽出」をクリック
  4. 「範囲」をクリック
  5. 任意の開始位置を入力
    ※今回は「3」
  6. 抽出したい文字数を入力
    ※今回は「3」
  7. 「OK」をクリック

手順①の列を上書きしたくない場合、手順②はリボン「列の追加」タブをクリック。
※同じコマンドがあるが、手順①の列を残し、抽出結果を新たな列として追加。

【参考】「範囲」コマンドとMID関数の違い

「範囲」コマンドとワークシート関数のMIDとの違いは、開始位置から抽出されるか否かです(「範囲」コマンドの方は含まれない)。

  • 「範囲」コマンド:開始位置(開始インデックス)から抽出されず、開始位置の1文字後から抽出される
  • MID:開始位置から抽出される

「範囲」コマンドとMID関数の違い

つまり、Power Queryエディター上の「範囲」コマンドを使う場合は、MID関数よりも1文字少なく開始位置を設定する必要があるので、ご注意ください。

念のため、プレビューウィンドウでステップ登録後の結果を確認しながら対応しましょう。

登録したステップの変更手順

「最初の文字」・「最後の文字」・「範囲」コマンドで登録したステップを後から変更する場合、変更したい内容が抽出条件(開始位置、文字数)か、それ以外かで手順が異なります。

それぞれの手順を順番に解説していきましょう。

抽出条件(開始位置、文字数)

抽出条件(開始位置、文字数)のみを後から変更したい場合、以下の手順で変更しましょう。

「最初の文字」・「最後の文字」・「範囲」コマンドのステップ変更手順(抽出条件)

  1. 「抽出される最初の文字」 or 「抽出される最後の文字」 or 「抽出されるテキスト範囲」ステップの歯車マークをクリック
  2. 任意の箇所を修正
  3. 「OK」をクリック

手順①のステップ名は「最初の文字」・「最後の文字」・「範囲」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
手順①で起動した「最初の文字を抽出する」・「最後の文字を抽出する」・「テキスト範囲を抽出する」ダイアログは、ステップに設定した内容がセットされた状態。

その他

抽出条件以外の内容(抽出対象の列や抽出に使うコマンド等)を後から変更したい場合、以下の手順で変更しましょう。

「最初の文字」・「最後の文字」・「範囲」コマンドのステップ変更手順(その他)

  1. 「抽出される最初の文字」 or 「抽出される最後の文字」 or 「抽出されるテキスト範囲」ステップを削除(「×」をクリック)
  2. 再度「最初の文字」・「最後の文字」・「範囲」コマンドのステップ登録手順を実行

手順①のステップ名は、「最初の文字」・「最後の文字」・「範囲」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_抽出_文字数.xlsx

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、「社員マスタ(抽出_文字数)」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。

  1. 抽出したい列を選択
    ※今回は「氏名」列
  2. リボン「変換」タブをクリック
  3. 「抽出」をクリック
  4. 「最初の文字」 or 「最後の文字」をクリック
    ※今回は「最初の文字」
  5. 抽出したい文字数を入力
    ※今回は「2」
  6. 「OK」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

「最初の文字」・「最後の文字」・「範囲」コマンドは、文字数を基準に指定した列の各セルから必要な文字を抽出できます。

データ抽出のオーソドックスな処理の1つのため、ぜひ基本テクニックとして覚えておきましょう!

なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!

森田貢士の公式LINEへの友だち追加告知用バナー

ご参考になれば幸いですm(_ _)m

森田森田

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