Power Query M 言語では、データを操作するためにリテラル形式と関数の両方を使用できます。この記事では、リテラル形式と関数の違いについて説明し、具体的な例を紹介します。
リテラル形式とは?
リテラルとは、プログラム内で直接指定される固定値(=ソースコード内に値を直接表記したもの)のこと。Power Query M 言語では、以下のようなリテラル形式が使用できる。
- #date(年, 月, 日):
- 日付を指定するためのリテラル形式
- 例:
#date(2024, 9, 7)
は 2024年9月7日を表す
- #datetime(年, 月, 日, 時, 分, 秒):
- 日付と時刻を指定するためのリテラル形式
- 例:
#datetime(2024, 9, 7, 14, 30, 0)
は 2024年9月7日14時30分0秒を表す
- #time(時, 分, 秒):
- 時刻を指定するためのリテラル形式
- 例:
#time(14, 30, 0)
は 14時30分0秒を表す
- #duration(日, 時, 分, 秒):
- 期間を指定するためのリテラル形式
- 例:
#duration(1, 2, 30, 0)
は 1日2時間30分0秒を表す
- #binary(バイナリデータ):
- バイナリデータを指定するためのリテラル形式
- 例: #binary({0x74, 0x65, 0x73, 0x74})はバイナリデータを表す
- #table(列名, データ):
- テーブルを指定するためのリテラル形式
- 例:
#table({"Column1", "Column2"}, {{1, "A"}, {2, "B"}})
は2列のテーブルを表す
- テキストリテラル:
- テキストリテラルはダブルクォートで囲まれた文字列
- 例: “Hello, World!” はテキストリテラルを表す
関数とは?
関数は特定の操作や計算を実行するためのもので、引数を受け取り、結果を返す。リテラルが固定値を直接指定するのに対し、関数は動的な計算や操作を行うために使用される。
例えば、Date.AddDays
関数は日付に指定した日数を追加するために使用される。
サンプルコード
以下に、リテラル形式と関数を使用したサンプルコードを示す。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
let // 基本の日付を設定 BaseDate = #date(2024, 9, 7), // 10日を追加 DatePlus10Days = Date.AddDays(BaseDate, 10), // -5日を追加(つまり5日前の日付を取得) DateMinus5Days = Date.AddDays(BaseDate, -5), // 現在の日付に30日を追加 CurrentDate = Date.From(DateTime.LocalNow()), DatePlus30Days = Date.AddDays(CurrentDate, 30), // テキストリテラルの例 TextLiteral = "Hello, World!", // バイナリリテラルの例 // "test" という文字列をバイナリ形式で表現 BinaryLiteral = #binary({0x74, 0x65, 0x73, 0x74}), // テーブルリテラルの例 TableLiteral = #table({"Column1", "Column2"}, {{1, "A"}, {2, "B"}}) in [ BaseDate = BaseDate, DatePlus10Days = DatePlus10Days, DateMinus5Days = DateMinus5Days, DatePlus30Days = DatePlus30Days, TextLiteral = TextLiteral, BinaryLiteral = BinaryLiteral, TableLiteral = TableLiteral ] |
詳細な説明
- BaseDate:
- 基本の日付を設定します。この例では、
#date(2024, 9, 7)
を使用しています。 #date(年, 月, 日)
はリテラル形式で日付を指定する方法です。- リテラルとは、プログラム内で直接指定される固定値のことです。
#
記号は、Power Query M 言語でリテラル値を示すために使用されます。- 例:
#date(2024, 9, 7)
は 2024年9月7日を表します。
- 基本の日付を設定します。この例では、
- DatePlus10Days:
Date.AddDays
関数を使用して、基本の日付に10日を追加します。- 結果は
2024-09-17
になります。
- DateMinus5Days:
Date.AddDays
関数を使用して、基本の日付から5日を引きます(つまり、5日前の日付を取得します)。- 結果は
2024-09-02
になります。
- CurrentDate:
- 現在の日付を取得します。
- DatePlus30Days:
Date.AddDays
関数を使用して、現在の日付に30日を追加します。- 結果は現在の日付から30日後の日付になります。
- TextLiteral:
- テキストリテラル
"Hello, World!"
を設定します。
- テキストリテラル
- BinaryLiteral:
- バイナリリテラル #binary({0x74, 0x65, 0x73, 0x74})を設定します。
- 0x74, 0x65, 0x73, 0x74は英字(ASCIIコード)でtestです。
- TableLiteral:
- テーブルリテラル
#table({"Column1", "Column2"}, {{1, "A"}, {2, "B"}})
を設定します。
- テーブルリテラル
- in ブロック:
in
の後に指定されたレコード形式で、すべての変数の結果を返します。
まとめ
リテラル形式は固定値を簡潔に指定するために便利ですが、動的な計算や操作を行う場合には関数を使用します。Power Query M 言語では、リテラル形式と関数を組み合わせて柔軟にデータを操作できます。
コメント