1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Excelをノーコードで自動化しよう! パワークエリの教科書 第20回 「例からの列」を使ったデータの作成

マイナビニュース / 2024年9月24日 11時0分

今回の例の場合、2行目を「名古屋支社」、4行目を「東京本社」、8行目を「北海道支社」、11行目を「東京本社」という具合に結果を修正していくと、全データを“意図した結果”にすることができた。これを確認して「OK」ボタンをクリックする。

データ表の右端に「新しい列」が追加され、そこに「例からの列」で得られたデータが表示される。あとは「列名」を変更して、列の並び順を変更するだけだ。

このように「例からの列」を使って、「所属」の列から「東京本社」や「△△支社」の文字だけを抽出することも不可能ではない。

念のため、「実際にどのような処理が行われているのか?」を確認しておこう。最後のステップを選択してM言語の記述を確認すると、以下の図のような記述が表示された。

この処理内容を理解するにはM言語について学ぶ必要があるが、M言語に詳しくなくても大まかな処理内容を探ることはできるだろう。今回の例の場合、"京"、"北"、"古"、"名"、"大"、……という少し不可解な文字が列記されている。

このM言語の処理内容について補足しておこう。Text.Selectは、指定した文字だけを抜き出す処理となる。今回の例の場合、「所属」の列から"京"、"北"、"古"、"名"、"大"、"屋"、"支"、"本"、"東"、"海"、"社"、"道"、"阪"といった13種類の文字だけを抜き出す、という処理になる。

結果として、「東京本社営業部」→「東京本社」、「大阪支社経理部」→「大阪支社」などの処理を実現できることになる。とはいえ、かなり予想外の処理方法(アルゴリズム)といえるだろう。

普通に考えると、データの先頭から「社」までの文字を抜き出す、となりそうだが、実際にはそうなっていない。「所属」の列から13種類の文字だけを抜き出す、という処理を行うことにより、「たまたま“正しい結果”が得られた」というのが実情だ。

現時点のまま“支社名”や“部署名”が増えなければ、この処理方法でも正しく対処できるだろう。しかし、新しい支社名や部署名のデータが追加された場合は、不適切な処理方法になってしまう。たとえば、「大分支社営業部」といったデータが追加された場合、その処理結果は「大支社」になってしまう。同様に、「東京本社統括本部」といったデータが追加された場合、その処理結果は「東京本社本」になってしまう。

このように「例からの列」で指定した処理方法は、「現時点では正しく機能していても、将来的に正しく機能するかは不明……」という処理になってしまう危険性がある。M言語の内容を理解できていないと、「理屈はよく分からないが、とりあえず意図していた結果を得られたようだ……」という状況になる。つまり、処理内容がブラックボックスになってしまう訳だ。そういう意味では、初心者にとって使いづらい機能(むやみに使うべきではない機能)といえる。
「例からの列」が上手く機能しない例

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください