リストとレコードとテーブル

パワークエリ 応用

パワークエリを活用する際に不可欠なM言語では、レコード、リスト、テーブルの3つの要素が重要な役割を果たします。

この記事では、M言語を理解するための第一歩として、この3つの要素について解説します。

リスト

リストとは、縦(列方向)にならんだデータになります。

M言語においてリストは、{ } と , を使って作成をすることができます。

リストの作成

パワークエリエディタで以下の式を記入します。

= {"株","㈱","カブ","カブ"}

シンプルなリストが作成されました。

リストには文字だけでなく、リストの中にリストを記入する事もできます。

リスト内にリストを作成

= {{"株","株式会社"},{"㈱","株式会社"},{"カブ","株式会社"},{"カブ","株式会社"}}

レコード

レコードとは、横(行方向)にならんだデータになります。

M言語でレコードは、[ ] と , = を使って作成をすることができます。

レコードの作成

パワークエリエディタで以下の式を記入します。

= [変換前 = "株" ,変換後 = "株式会社"]

一見すると、こちらも縦のデータに見えますが、「変換前、変換後」が列名で、「株、株式会社」が値になります。

そして、リストの中にレコードも入れることができます。

リスト内にレコードの作成

= {
[変換前 ="株",変換後="株式会社"],
[変換前 ="カブ",変換後="株式会社"],
[変換前 ="㈱",変換後="株式会社"],
[変換前 ="カブ",変換後="株式会社"]
}

テーブル

これまで説明してきた、リストは列、レコードは行 しか表現できないのであれば、行と列の両方まとめて表現するのがテーブルです。(Excelでよく見る縦横の表ですね)

テーブルについても、M言語で直接記入して作成することができます。
(複雑になるので、あくまで参考です)

テーブルの作成

 = #table({"変換前","変換後"},
{

{"株","株式会社"},
{"㈱","株式会社"},
{"カブ","株式会社"},
{"カブ","株式会社"}
})

パワークエリエディタにテーブルが作成されました。

最後に、もっと使用頻度の無いと思われる、レコードの中にレコードを入れるパターンの場合

レコード内にレコードの作成

= [変換前 = [変換前="㈱"],変換後 = [変換後="株式会社"]]

実務において、これらM言語を直接入力する機会はありませんが、置換リストで「List.Accumulate関数」を使う時には、「リスト内にリスト」、あるいは「リスト内にレコード」のパターンで作成されることが多いので、覚えておくと応用ができます。



コメント