Power Query M 数式言語のクイック ツアー

このクイック ツアーでは、Power Query M 数式言語クエリの作成について説明します。

注意

M は大文字と小文字を区別する言語です。

Power Query エディターを使用してクエリを作成する

高度なクエリを作成するには、Power Queryの詳細エディターを使用します。 マッシュアップ クエリは、let 式でカプセル化された変数、式、値で構成されます。 変数には、#"Variable name" のように、# 識別子と引用符で囲まれた名前を使用することで、スペースを含めることができます。

let 式は、次の構造に従います。

let
   Variablename = expression,
   #"Variable name" = expression2
in
   Variablename

詳細エディターで M クエリを作成するには、次の基本的な手順に従います:

  1. let ステートメントで始まる一連のクエリ式のステップが作成されます。 各ステップは、ステップ変数名によって定義されます。 M 変数には、#"Step Name" として # 文字を使用することで、スペースを含めることができます。 数式のステップには、カスタム式を使用できます。 Power Query の式言語では大文字と小文字が区別されることに注意してください。

  2. 各クエリ式のステップは、変数名でステップを参照することによって、前のステップに基づいて作成されます。

  3. in ステートメントを使用してクエリ式のステップを出力します。 一般に、最後のクエリ ステップは、最終的なデータ セットの結果として使用されます。

式と値の詳細については、「式、値、および let 式」を参照してください。

シンプルな Power Query M 式のステップ

Power Query エディターで次の変換を作成し、製品名を適切な大文字と小文字 (この例ではすべて最初の文字を大文字に変換) に変換したとします。

Screenshot of the Power Query editor showing the results of converting the Item column entries to initial capitalization.

まず、テーブルは次のようになります:

OrderID CustomerID Item Price
1 1 fishing rod 100
2 1 1 lb. worms 5
3 2 fishing net 25

Item 列の各単語の最初の文字を大文字に変換して、次のテーブルが生成します:

OrderID CustomerID Item Price
1 1 Fishing Rod 100
2 1 1 ポンド。 ワーム 5
3 2 Fishing Net 25

元のテーブルを結果テーブルに投影する M 数式の手順は、Power Query の詳細エディターでは次のようになります:

Screenshot of the Power Query advanced editor with all of the M formula steps to produce the table and capitalize initial letters.

Power Query エディターに貼り付けることができるコードを次に示します:

let Orders = Table.FromRecords({
    [OrderID = 1, CustomerID = 1, Item = "fishing rod", Price = 100.0],
    [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0],
    [OrderID = 3, CustomerID = 2, Item = "fishing net", Price = 25.0]}),
    #"Capitalized Each Word" = Table.TransformColumns(Orders, {"Item", Text.Proper})
in
    #"Capitalized Each Word"

各式のステップを確認してみましょう。

  1. Orders: Orders のデータを含むテーブルが作成されます。

  2. #"Capitalized Each Word": 各単語を大文字にするには、Table.TransformColumns を使用します。

  3. in #"Capitalized Each Word": 各単語の最初の文字を大文字にしてテーブルを出力します。