









M は Power Query の背後の強力な言語であり、Power Query の基本です。 あなたが適用するすべての変換は、M 言語で記述されます。 多くの人にとって、M は怖い言語のように見えます。 この記事では、私はMの基本的なビットを説明したい任意の関数に言及しない。 主に、M言語の構文がどのように構成されているかを説明したいと思います。 構文がわかれば、すべてが簡単になります。 M言語は構文が簡単に覚えられる言語なのです。 Power Queryの開発者として、私はM言語の学習に時間を割くことを強くお勧めします。 Power BIについてもっと知りたい方は、Power BI book from Rookie to Rock Starをご覧ください。
M は Power Query Formula Language の非公式な名称です。 正式名称は長すぎるので、誰もそれを使用せず、誰もがそれをMと呼んでいます。 M は Data Mashup の略で、Data Modeling の略だとも言われています。 Mは関数型言語であり、その機能を知ることは重要である。 しかし、それぞれの言語には構造と構文があり、それはその言語を学ぶ上での初歩的なレベルとなります。 今回はMの構文について説明します。Mを学ぶ前に、この文章を声に出して読んでみてください;
M is much more powerful than the graphical interface of Power Query
そうです、その通りです!MはPower Queryのグラフィカルなインターフェースよりもはるかに強力です。 Power Query のグラフィカル インターフェイスは、毎月変化しています。 毎月、新しい機能がこのグラフィカル インターフェイスに追加されます。 しかし、実際には、これらの機能はすべて何年も前から言語であり、言語を知っていれば、グラフィカル インターフェイス オプションを待つ代わりに、簡単に使用できます。 M スクリプトの非常に小さな変更で、Power Query のグループ化機能を拡張できます。
M の構文
この言語の構文はシンプルです。 LET式ブロックとIN式ブロックである。 以下は、最も簡単な M 構文です。
let x=1in x
let と in は予約語です。さらに一歩進む前に、まず第一に知っておくべきことは、
M (Power Query Formula Language) は大文字小文字を区別する、ということです。 x と X には違いがあります。
これらの 2 つのプログラミング ブロックは何ですか:
let: すべての変数の定義
in: 出力!
M(Power Query Formula Language) は大文字と小文字の区別があります。 このブロックに入れたものはすべて、クエリの出力になります。
つまり、基本的に、以下のクエリは、x という名前の変数を定義し、それに値 1 を割り当て、それを結果セットとして表示することを意味します。
次に、表示タブで、高度なエディタを選択します。
スクリプトを書くときは、letなどの予約語をすべて小文字にしてください。また、変数名はletとin sectionで同じ大文字にしてください。
このように、変数に対してデータ型定義をする必要がありません。
End of the Line
M のコードの行は、行末を書かないと続きます。
上の例でわかるように、行は続き、x は x=1+1 となります。 行の終わりを指定する場合は、コンマ(,)を使用します。例:
すべての行は、コンマ(,)で終わらせる必要があります。 スペースがある場合は、ダブルクォート(”)で囲み、先頭にハッシュタグ(#)を付ける必要があります。
#"This is a variable name"
変数名は特殊文字を含むことができますが、以下に例を示します。
エスケープ文字
ダブルクォート (“) はエスケープ文字で、別のダブルクォートを含む名前を持つ変数を定義するために使用することができます。 5562>
上記の最初のダブルクォート(ハイライト)は、2番目のダブルクォート(変数名の一部である)前にする必要があります。 すべての変換は通常、ステップで行われます。 あなたがコードを書いている間、あなたはまた、右側に、すべての変数がステップを形成していることがわかります。
上のスクリーンショットでは、すべての変数がステップとして決定されていることがわかります。
Literals
PowerQueryですべてのリテラルを定義するためのさまざまな方法があります。
他のすべてのタイプのリテラルを定義する場合、使用する参照表は次のとおりです。
関数呼び出し
M は関数型言語であり、ほとんどのことを行うには関数を呼び出す必要があります。関数は、関数名とパラメータを指定して簡単に呼び出すことができます。
上記のスクリーンショットでは日付の年部分を取得する Date.Year 関数を使用しています。 関数名は常に大文字で始まります。 Date.Year()
他のプログラミング言語と同様に、あなたはコードにいくつかのコメントを置くことができます。 5562>
ダブルスラッシュに囲まれた1行のコメント (//)
スラッシュとスタートの間にある複数行のコメント (/* comments */)
実際の例
さて、いくつかの基本を知っているとして、上級エディタモードで既存のクエリをみてそれを理解することにしよう。
上のスクリーンショットでは、これまでに述べたすべての基本を見ることができます。
- let およびブロック内
- 変数名とクエリの適用ステップの一致
- ハッシュタグとダブルクォートを持ついくつかの変数名。 #”var name”
- 行末文字:カンマ
- 多くの関数を呼び出す
このクエリの多くの部分は、あなたが理解していないかもしれないです。 私はブログ記事を書き、#shared キーワードを使用して Power Query のすべての関数のドキュメントを取得する方法を説明しました。
次の記事では、M の別のレベルの構造について説明します。















トレーナーのことです。 コンサルタント、メンター
テクノロジーのさまざまな側面、特にMS BIに関する彼の記事は、彼のブログで見ることができます。 Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL SaturdayやSQLユーザーグループでの国際スピーカーとして活躍している。 また、マイクロソフト認定トレーナーでもある。
レザの情熱は、あなたが最高のデータソリューションを見つけるのを助けることであり、彼はデータ愛好家である。