Power Queryで自動作成される式で、識別子 _ (アンダースコア、もしくはアンダーバーという)が使用されていることがあります。このアンダースコアは何を表すのか、役割を理解する備忘録です。
内容:
初心者がアンダースコアの中身を確認する方法
PowerQueryを始めた段階で、アンダースコアが何なのかを理解する良い方法は、カスタム列に次の式を入れることです。
=_
参考になった記事:
【パワークエリ】M言語に慣れる_8回目~eachを使いこなしてM関数作成~ | Excellent仕事術
例えば、下図のような2列の元データで説明します。
このケースで、「列の追加」タブー「カスタム列」をクリックし、式を「=_」とだけ入力します。
上記で「OK」とした結果が下図で、式はアンダースコアを含むシンプルなものです。
= Table.AddColumn(変更された型, "カスタム", each _)
これにより、表には「Record」というデータが各行に追加されます。
その中身は「Record」を選択すると画面下側に表示され、元のステップにあった各行の値であることがわかります。
なお、この事例は「列の追加」をしただけなので、表の左側にある「コード」「分類」と同じです。
アンダースコアの説明
Microsoftの説明では以下のとおりです。
each-expression は、_ (アンダースコア) という名前の 1 つのパラメーターを受け取る型指定されていない関数を宣言するための構文の省略形です。
また、以下のような説明もあります。
形式 [y] と [y]? は、識別子 _ (アンダースコア) への "短縮形" 参照としてサポートされています。
つまり、
[A] ・・・フィールドのみ
_[A] ・・・アンダースコアとフィールドの組み合わせ
は同じこととあります。
前述の事例(2列の元データ)で、以下具体的に示します。
アンダースコアとフィールドを組み合わせた場合
前述の事例では、カスタム列の式を「=_」としていました。
アンダースコアに加えてフィールドも追加して式を
=_[分類]
とした結果は以下です。[分類]フィールドの値が参照できています。
フィールドのみを指定の場合
カスタム列の式を、フィールドのみで、
=[分類]
とした結果は以下です。これは、よく使うケースだと思うので、そのままの結果です。
アンダースコアとフィールドを組み合わせた場合と同じ結果です。
以上、Power Queryで、識別子 _ (アンダースコア) の説明でした。