前回の連載に引き続き、今回も「抽出」コマンドの使い方を紹介していこう。少し特殊な使い方になるため、あまり実践向きではないが、知識の一つとして覚えておいても損はないはずだ。そのほか、各ステップの設定画面を再表示して「設定の変更」を行う方法も紹介する。こちらは便利に活用できる使い方となるので、ぜひ覚えておくとよい。

設定画面の再表示

今回の連載で伝える内容は大きく分けて2つある。一つ目は、各ステップの設定画面を再表示して「設定の変更」を行う方法。二つ目は、前回の連載で紹介した「抽出」コマンドの応用的な使い方だ。順番に解説していこう。

  • 設定画面の再表示、少し高度な抽出

まずは、すでに指定されている処理工程(ステップ)の設定画面を再表示する方法から紹介していこう。

以下の図は、「住所」の列から「都道府県」のデータを抽出しようとした例だ。ただし、処理の途中でミスを犯してしまっている。本来なら“先頭の3文字”を抽出すべきところを、間違えて“先頭の4文字”を抽出している。その後、列名を「都道府県」に変更するステップも追加されている。

  • 「住所」から“先頭の4文字”を抽出した列

このようにミスを犯してしまった場合は、間違えた処理(ステップ)を削除して、もういちど処理内容を指定しなおすのが基本だ。上図の場合、「名前が変更された列」と「挿入された最初の文字」のステップを削除し、「住所」の列から“先頭の3文字”を抽出する処理から指定しなおす必要がある。

とはいえ、今回の例の場合、ミスを犯しているのは“抽出する文字数”だけで、処理手順そのものは間違えていない。このような場合は、各ステップの設定画面を再表示して、設定だけを変更することも可能だ。設定画面を再表示するときは、各ステップの右端に表示されている「歯車」のアイコンをクリックすればよい。

  • 設定画面を再表示する操作

すると、そのステップで指定した設定画面が再表示される。上図に示したアイコンをクリックした場合、「先頭から何文字を抽出するか?」を指定する設定画面が再表示される。現時点では“先頭の4文字”を抽出しているので、設定画面には「4」の数値が表示されている。

  • 再表示された設定画面

この数値を「3」に修正して「OK」ボタンをクリックすると、「住所」の列から“先頭の3文字”を抽出するように処理内容を変更できる。

  • 設定の変更

  • 変更後の設定で抽出されたデータ

もちろん、以降のステップは、指定されている通りに処理が進められていく。上図の場合、次のステップとなる「名前が変更された列」を選択すると、列名を「都道府県」に変更する処理が行われる。その後、神奈川、和歌山、鹿児島のデータに「県」の文字を追加する処理を指定していくと、「都道府県」のデータを作成できることになる。

このように、すでに指定されている処理(ステップ)の設定を後から変更することも可能だ。これは「抽出」コマンドに限った話ではなく、「歯車」のアイコンが表示されているステップであれば実行可能な操作といえる。処理手順を指定しなおす手間を簡略化できるので、この機会に覚えておくとよいだろう。

区切り記号の補足

続いては、前回の連載で紹介した「抽出」コマンドの少し応用的な使い方を紹介していこう。

たとえば、以下の図に示した「所属」の列から「東京本社」や「△△支社」の文字だけを抽出したいとしよう。この場合、区切り記号に「社」の文字を指定して、それより前にあるデータを抽出すればよい、と考えられる。この処理を「変換」タブにある「抽出」コマンドで実行してみよう。

  • 「所属」の列からデータを抽出

  • 抽出の設定画面

結果は以下の図の通り。区切り記号に指定した「社」の文字は抽出対象にならないため、「東京本」や「名古屋支」といったデータが抽出されてしまう。

  • 抽出されたデータ

「抽出」コマンドに「区切り記号を含めて抽出する」というオプション設定があればよいのだが、残念ながら、そういった指定はできないようだ。では、どうすればよいか? このような場合は、後から自分で「区切り記号」の文字を追加してあげればよい。

データの末尾に“好きな文字”を追加したいときは、「変換」タブにある「書式」コマンドから「サフィックスの追加」を選択する。

  • サフィックスの追加

続いて、データの末尾に追加する文字を指定し、「OK」ボタンをクリックする。

  • 末尾に追加する文字の指定

すると、各データの末尾に「社」の文字が追加され、「区切り記号」に指定した文字を含めた形でデータを抽出できるようになる。

  • 末尾に「社」の文字を追加したデータ

このテクニックは第14回の連載で紹介したものと同じになるが、データを「抽出」する際にも活用できるので、この機会に復習しておくとよいだろう。

詳細設定オプションを指定したデータの抽出

次は、データ内に「区切り記号」となる文字が何回も登場する場合の対処方法を紹介していこう。

以下の図は、会員情報のデータを「Power Query エディター」に取得した例だ。ただし、かなり扱いづらい形で各データが記録されている。各会員の情報は、都道府県、生年、性別、メールアドレスが「/」(スラッシュ)で区切られて“1つのデータ”として登録されている。

  • 取得した会員情報のデータ表

このデータから「性別」のデータだけを抽出する場合を考えていこう。この場合、“2番目のスラッシュ”と“3番目のスラッシュ”の間にあるデータを抽出すればよいことになる。よって、抽出方法に「区切り記号の間のテキスト」を選択する。

  • 抽出方法の選択

2つの区切り記号には、それぞれ「/」の文字を指定すればよい。続いて、詳細設定オプションを開くと、それぞれの区切り記号について“N番目”を指定できるようになる。開始の区切り記号は、「入力の先頭から」数えて「1」つスキップすると“2番目のスラッシュ”を指定できる。終了の区切り記号は、「開始区切り記号」の次に出現するスラッシュとなる。よって、スキップする数に「0」にすると“3番目のスラッシュ”を指定できる。

  • 抽出の設定画面(詳細設定オプションの指定)

このように、詳細設定オプションを指定すると、“N番目に出現する区切り記号”を自由に指定することが可能となる。抽出結果は、以下の図の通り。「性別」だけを正しく抽出できていることを確認できるだろう。

  • 抽出されたデータ

なお、いちいち“N番目”を指定するのが面倒な場合は、「/」を区切り記号にして「列の分割」を実行してもよい。この際のポイントは「区切り記号の出現ごと」に列を分割するように指定すること。

  • 列の分割方法の選択

すると、それぞれのデータを異なる列として扱えるようになる。

  • 分割された列

あとは不要な列を削除して、「列名」を適当に変更するだけ。この方法でも「性別」のデータだけを抽出することが可能だ。むしろ、こちらの手法の方が「抽出」コマンドを使用するより簡単で確実といえるかもしれない。

数値や日付からデータを抽出

「抽出」コマンドは、データ型が「テキスト」の列を対象に使用するのが一般的であるが、他のデータ型でも使えない訳ではない。いくつか例を紹介しておこう。

まずは、データ型が「日付」の列を対象にした例だ。この場合は、区切り記号に「/」の文字を指定するのが一般的だ。たとえば、抽出方法に「区切り記号より前のテキスト」を選択し、スキップ数に「0」を指定すると、最初に出現する「/」より前にあるデータだけを抽出できる。

  • 抽出方法の選択

  • 抽出の設定画面

結果として、日付データから「年」の部分だけを抜き出すことが可能となる。

  • 抽出されたデータ

ただし、抽出したデータは、データ型に「テキスト」が指定されていることに注意しなければならない。これを数値として扱いたい場合は、データ型を「整数」などに変更しておく必要がある。

次の例は、データ型が「10進数」の列を対象にした例だ。この場合は、「.」(ピリオド、小数点)を区切り記号にしてデータを抽出する、などの操作が行える。たとえば、抽出方法に「区切り記号より前のテキスト」を選択すると、「.」より前にあるデータだけを抽出できる。

  • 抽出方法の選択

  • 抽出の設定画面

結果として、小数点以下を切り捨てた「整数」の部分だけを抜き出すことが可能となる。

  • 抽出されたデータ

こちらも、データ型に「テキスト」が指定されていることに注意しなければならない。計算可能な数値データとして扱うには、データ型を「整数」などに変更しておく必要がある。

このように、「テキスト」以外の列を対象に「抽出」コマンドを使用することも可能であるが、実際には、このような使い方をする機会は滅多にない。というのも、日付データを加工する「日付」コマンド、数値データを整数にする「丸め」コマンドなどが別途、用意されているからだ。よって、最後に紹介した使い方は参考程度に捉えておけば十分である。