【M言語はむずかしくない!】 数式バーでよく見かけるコードの一つに、青字の「each」というコードがあります。青字ということは、システム予約語なので、数式バーに頻繁に登場します。ですので、「each」に慣れれば、自ずとM言語自体にも慣れ親しんでいけます。今回はこの「each」についての事例を数多く紹介します。
多くの事例を通じて「each」自体についての意味合いを掴み、M関数内でのeachの使い方に慣れていきましょう!
目次
今回のポイント
「each」とセットでよく出てくるコードに「アンダースコア / _」があります
「each」と 「アンダースコア / _」の2つは切っても切れない関係にあります
何故なら、「each」は「アンダースコア / _」を使用した関数を簡略したものだからです
ですので、今回は 「アンダースコア / _」についても解説します
但し、「each」と「アンダースコア / _」の詳細な内容は難解なので、「こういうもの」だと割り切って読み進めてください
そして、最後にM関数「List.Select」を「each」と「アンダースコア / _」を使い作成します
実際に手を動かしてみて「each」と「アンダースコア / _」に対する感覚を掴んでみてください
M関数の作成にあたっては、前回も行ったようにM関数の使用例を活用します!
「each」の使用例
まずは、「each」の理解の入り口として「each」の使用例を2つ紹介します
フィルタリング
下の画像のように、エディタ内に「氏名」「部門」という列名の列があるデータがあるとします
こちらの部門列から「営業」をフィルタリングします
すると、数式バーは以下の表示になり、「each」が条件式に合うものに対して使われているのが分かります
抽出
前述のデータにて、今度は「氏名」の列から「苗字」を抽出します
使用するメニューは「変換」タブ内の「抽出 / 区切り記号の前のテキスト 」になります
区切り文字として使用する記号は「半角スペース」を使用します
すると、数式バーは以下の画像のような表示になり、「each」と「アンダースコア」(“BeforeDelimiter(“の後に表示)が使用されています
上の画像だと分かりずらいと思いますので、文字列に直して表示し直したものも確認しておいてください
= Table.TransformColumns(フィルターされた行, {{“氏名”, each
Text.BeforeDelimiter(_, ” “), type text}})
続きを読む M言語に慣れる_8回目~eachを使いこなしてM関数作成~