【M言語は難しくない】Power Queryを扱っていると、3種類の括弧が出てくるのが分かります。 「M言語が難解」と感じる理由の一つは、この3種類の括弧が組み合わせられて出てくるからです。
・丸括弧 / ()
・角括弧 / []
・波括弧 / {}
特に下の2つの括弧の[]と{}は、初めて見たときは意味合いが全く不明です
実は、この2つの括弧がM言語を使いこなすための重要な鍵です
M言語を学ぶ目的の一つは、行列単位での一括処理からの脱却です
シート上でセルを扱うように、Power Queryエディタ上でも1つの値を扱いたいのです
少し、シート上でのセル操作についてお話したいと思います
セル名は例えば「A8」であれば、Aは列名で8は行番号です
この列名と行番号を組み合わせれば、望みのセルにたどり着きます
実は角括弧:[]はシート上の列名に、そして波括弧:{}は行番号に相当します
今回はこれらの括弧に、次の2つの方法を通じて慣れて頂くとともに、それぞれの意味合いを掴んて頂きたいと思います!
なお、解説は今回を1回目として、2回に分けて行います
・既存のクエリから角括弧 / []と波括弧 / {}を使い、1つの値を参照する ➡1回目
・空のクエリから3種類の括弧を使って、テーブルを作成する ➡2回目
この3つの括弧の意味合いを掴んだ時には、M言語への苦手意識が薄れているはずです!
目次
今回のポイント
今回の解説にあたっては、そもそも、Power Queryとは何なのか?という点がとても重要です
エクセルはもともと表計算ソフトであり、データベースではありません
Power Queryは、エクセルをデータベースとして使用できるようにするツールです
ですので、エディタ内ではデータベースとして使用するための「データの構造化」が行われています
この構造化が「Power Queryは何か?」を理解するためのキーワードです
まずは、構造化には4種類の概念があることを常に頭に入れておきましょう!
①値
値の種類には、主に次のようなものがあります
・1/ 整数(数値)
・b / テキスト(文字列)
・2021/03/04(日付)
今回の解説で使用する値の概念は、もっと本源的なものです
例えば、1は数字ですが、データベース上は2つの型式になりうります
今回解説する値の概念に照らすと、1は整数でもない文字列でもない、ただの「1」です
②リスト
①の値が、列方向に順次並べられたものです
通常の列とは違います
その点は後で解説します
③レコード
行方向に、複数の②のリストを1行で組み合わせたものです
④テーブル
上の②と③を組み合わせたものです
これらの4つの概念を頭に入れたところで、本格的な解説をはじめます
括弧を使ってデータ参照
今回は、3つの列から構成される、次の画像のデータを解説に使用します
上の画像の表から括弧を使って、様々な参照作業を行うわけですが、まずは参照作業を行い易くします
ちなみに、この章では角括弧 / []と波括弧 / {}による参照しか行いませんので予めご了承ください
参照作業を行い易くする為に、下のGIF画像のように数式バーのマークをクリックし、数式バーの内容を前ステップ名で確定させてます
これで数式バーにて、前ステップ名の次に括弧をつなげていくだけで参照作業ができるようになります
角括弧 / []による参照
角括弧 / []の中には、基本的には列名のみが入ります(列名以外も入れるパターンは後述)
では、数式バーに次の内容を入力してみます
➡ = 変更された型[連番 / 1列目]
すると、次のGIF画像 のように、前述のデータの1列目が参照されます
下の画像の赤丸の箇所に注目してくみてください
リストとして出力されているのが良く分かります
元の「列名」である「連番」の記載がどこにもなく、データ形式「整数」の表示もありません
変換タブでリスト変換した時と同じ画面になっています
前ステップの列の内容をそのまま参照する場合には、角括弧 / []を2重にして[[連番]]にします
波括弧 / {}による参照
波括弧 / {}の中には数字が入ります
波括弧 / {} に入れる最小の数字は0です
0から始まるのは、M言語が過去記事で紹介したように0をベースとしているからです
では、角括弧 / []と同じデータを使用して、波括弧 / {}の中に数字を入れてみましょう!
まずは波括弧 / {}に 0をいれてみます
➡ = 変更された型{0}
すると、1行目の「レコード」が参照されます
ちなみに上の画像は、レコードツールという表示になっています
次に、波括弧 / {}に 1をいれてみます
➡ = 変更された型{1}
こんどは2行目のレコードが参照されます
角括弧と波括弧の組み合わせによる参照
角括弧と波括弧の組み合わせでは、2種類の参照方法を紹介します
1つ目は、角括弧と波括弧を並列で組み合わせます
角括弧と波括弧の組み合わせにより、「1番目のレコード」の「連番列」の値を抽出します
➡ = 変更された型{0} [連番]
こちらは画面上をみると、リストでもレコードでもなく、値が参照されているのがわかります
こちらは、ドリルダウンを行った時と同じ内容です
2つ目は、波括弧 / {}の中に角括弧 / []を入れます
角括弧 / []の中には、次の画像のように「列名=列の中味」を入れ、列の中味を通じてレコードを参照します
➡ = 変更された型{[連番=1]}
すると、1行目のレコードが抽出されます
<まとめ>
今回は、角括弧 / []と波括弧 / {}を使用して、エディタ内で参照作業を4つ行いました
1.角括弧 ➡リストを参照
2.波括弧➡レコードを参照
3.角括弧と波括弧の組み合わせ①➡値を参照
4.波括弧の中に角括弧を入力➡レコードを参照
記事の冒頭で、Power Queryの「データ構造化」には4つの概念(値、リスト、レコード、テーブル)があると紹介しました
実際に手を動かして、上記の4つの作業を行ってみて、4つの概念について肌で感じて頂けると幸いです
4つの概念を肌で感じた時には、Power Queryへの理解が一段と深まっているはずです
今回は、以上です
長文に最後までお付き合い頂き誠にありがとうございました
次回は、空のクエリから3種類の括弧を使用してリスト、レコード、そしてテーブルまで作成します
コメントを残す