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 関数は日付に指定した日数を追加するために使用される。
サンプルコード
以下に、リテラル形式と関数を使用したサンプルコードを示す。
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 言語では、リテラル形式と関数を組み合わせて柔軟にデータを操作できます。

コメント