1章: M言語の概要と基本構文

1章: M言語の概要と基本構文

M言語とは

M言語は、Microsoft Power Queryでデータ変換処理を記述するために使用されるプログラミング言語です。この言語は、ExcelやPower BIなどのツールでデータを整理し、変換する際に役立ちます。

Power QueryでのM言語の役割

Power Queryでは、データのインポート、変換、結合などの一連の処理をクエリと呼ぶステップの集まりとして定義します。M言語は、これらのステップを記述するための言語であり、パワフルなデータ変換機能を提供します。

式の構成

M言語では、式を使ってデータ変換処理を記述します。式は、値や関数、演算子などの要素で構成されます。

例:

let
    リスト = {1, 2, 3},
    合計 = List.Sum(リスト)
in
    合計

変数の定義

M言語では、let式を使って変数を定義し、値を代入します。

例:

let
    数字1 = 10,
    数字2 = 20,
    合計 = 数字1 + 数字2
in
    合計

letとinの基本概念

M言語では、「let」と「in」がよく使われるキーワードです。これらのキーワードは、式の評価や変数の定義に使用されます。ここでは、これらのキーワードの基本概念について説明します。

let

「let」キーワードは、M言語の式の評価を開始するために使用されます。このキーワードの後には、1つまたは複数の変数が定義されます。変数は、名前と式のペアで定義され、式はその変数に代入される値を計算します。変数の定義は、コンマで区切られます。


let
    x = 1,
    y = 2,
    z = x + y

上記の例では、3つの変数(x、y、およびz)が定義されています。

in

「in」キーワードは、「let」キーワードで定義された変数の評価が完了した後に使用されます。このキーワードは、最終的な結果を計算するためにどの変数を使用するかを指定します。


let
    x = 1,
    y = 2,
    z = x + y
in
    z

上記の例では、「in」キーワードの後に「z」が指定されており、最終的な結果として3が計算されます。

「let」と「in」キーワードは、一連の変数の定義と最終的な結果の計算を含む式を作成するために一緒に使用されます。これらのキーワードを理解し、M言語で効率的に式を作成することが重要です。

コメントの書き方

M言語では、コメントを記述することで、コードの説明や注意事項を残すことができます。M言語では、ダブルスラッシュ(//)を使用してコメントを記述します。

例:

// これはコメントです
let
    数字1 = 10 // ここにもコメントを書くことができます
in
    数字1

関数の呼び出し

M言語では、組み込み関数やカスタム関数を使って、データ変換処理を行うことができます。関数は、関数名の後ろにカッコ内に引数を指定して呼び出します。

例:

let
    リスト = {1, 2, 3},
    最大値 = List.Max(リスト)
in
    最大値

この構成でM言語の基本構文を説明しました。これにより、学習者はM言語の基本的な概念と書き方を理解できるでしょう。次の章では、M言語で扱うデータ型やデータ操作について解説していきます。

1章: M言語の概要と基本構文 – 演習問題

問題1:
M言語の式に従って、次のような数値の足し算を行ってください。

let
    a = 12,
    b = 25,
    result = a + b
in
    result

問題2:
次のレコード型データを定義し、その後、”所属部署” の値を取得してください。

{
    名前 = "鈴木",
    年齢 = 28,
    所属部署 = "営業部"
}

問題3:
次のテーブル型データに対して、年齢が30歳以上のレコードのみを選択してください。

Table.FromRecords({
    [名前 = "山田", 年齢 = 35, 職業 = "マネージャー"],
    [名前 = "鈴木", 年齢 = 28, 職業 = "デザイナー"],
    [名前 = "佐藤", 年齢 = 42, 職業 = "エンジニア"]
})

問題4:
次のテーブル型データに対して、新しい列「年齢×2」を追加してください。この列は、元の「年齢」列の値に2をかけたものになります。

Table.FromRecords({
    [名前 = "山田", 年齢 = 35, 職業 = "マネージャー"],
    [名前 = "鈴木", 年齢 = 28, 職業 = "デザイナー"],
    [名前 = "佐藤", 年齢 = 42, 職業 = "エンジニア"]
})

問題5:
以下のM言語のコードにコメントを追加して、コードの動作を説明してください。

let
    リスト = {1..10},
    偶数のみ = List.Select(リスト, each _ mod 2 = 0)
in
    偶数のみ