Power QueryのM言語で数式を書くときに、関数を使いますよね。例えば、日付から年だけを抽出したいときはDate.Year関数を使います。
= Date.Year(#date(2025, 11, 1))
この式であれば2025が返ってきます。Date.Yearという関数が標準で用意されているため、あらかじめ定義しなくても使えます。
次に、内税価格から消費税を計算することは可能でしょうか?
答えはNoです。そんな関数はないからです。
次のように、内税の金額と消費税率を引数に入れて消費税を計算する関数が欲しいですよね。
= tax_calculation([金額(内税)], 0.1)
M言語では標準で用意されていなくても、関数を自作することできます。
本記事ではカスタム関数の作り方を解説します。
サンプルデータ
売上明細をサンプルデータとして使用します。

サンプルデータはこちらからダウンロードしてください。
カスタム関数の作成
Power Queryでカスタム関数を作るには、空のクエリから作成します。次の2つをサンプルに、カスタム関数の作り方を解説します。
- Hello World 〇〇〇と出力するカスタム関数
- 内税価格から消費税を計算するカスタム関数
サンプルデータをダウンロードして、「データ」タブー「クエリと接続」をクリックします。「売上明細」を右クリックし、「編集」をクリックします。

Power Queryエディターが開きます。

まず初めに:Hello World 〇〇〇と出力するカスタム関数を作成する
「ホーム」タブー「新しいソース」ー「その他のソース」ー「空のクエリ」をクリックします。

「クエリの設定」ー「プロパティ」ー「名前」に「hello_world」と入力し、「詳細エディター」をクリックします。

詳細エディターが開きました。後述の数式を入力し、OKをクリックします。

数式の次の通りになります。
= (input_text as text) =>
let
ソース = "Hello World " & input_text
in
ソース
1行目に引数を定義しています。input_textというテキスト項目を引数にしています。
letの中の「ソース = “Hello World ” & input_text」でHello Worldと引数を文字連結しています。
カスタム関数を作成すると、パラメーターの入力ができるようになります。

「input_text」に「パワークエリ」と入力し、「呼び出し」をクリックします。

カスタム関数が実行された結果が表示されます。

作成したカスタム関数は、他の数式で使用できます。試しに使ってみるために、カスタム列を追加します。
「列の追加」タブー「カスタム列」をクリックします。

「hello」と入力します。すると候補がでてきますが、今回作成したカスタム関数も候補に挙がってきます。

「hello_world(」と入力すると、引数が表示されます。標準関数と同じですね。

「新しい列名」に「Hello World」、「カスタム列の式」に「hello_world(“パワークエリ”)」と入力し、OKをクリックします。

カスタム関数が実行された結果が表示されます。

内税価格から消費税を計算するカスタム関数を作成する
内税とは商品価格に消費税が含まれた金額です。
例:「1,100円(税込)」= 本体価格1,000円 + 消費税100円
この1,100円から消費税を計算する場合、「消費税額 = 内税価格 – 内税価格 / (1 + 消費税率)」になります。
例:消費税額 = 1,100 – 1,100 / 1.1 = 100円
計算式自体は複雑ではありませんが、カスタム関数を定義しておけば、呼び出すだけで簡単に計算することが出来ます。
Hello Worldの時と同様に、「ホーム」タブー「新しいソース」ー「その他のソース」ー「空のクエリ」をクリックします。

「クエリの設定」ー「プロパティ」ー「名前」に「tax_calculation」と入力し、「詳細エディター」をクリックします。

後述の数式を入力し、OKをクリックします。

数式の次の通りになります。
= (amount as number, tax as number) as number =>
let
ソース = amount - (amount / (1 + tax))
in
ソース
1行目に引数を定義しています。amount、taxという数値項目を引数にしています。amountが内税価格で、taxが消費税ですね。
関数の戻り値を明示的に数値とするために「(amount as number, tax as number) as number」としています。
あとは、「消費税額 = 内税価格 – 内税価格 / (1 + 消費税率)」とする数式をletの中に入力しています。
作成したカスタム関数を呼び出してみましょう。
「input_text」に「1100」、「tax」に「0.1」と入力し、「呼び出し」をクリックします。

消費税が戻り値として返ってきました。

活用例
為替レート換算するカスタム関数を作成する
輸出するときに外貨で販売した場合、最終的に売上金額の集計は邦貨(日本円)に換算すると思います。
外貨の種類が多いと式が複雑になります。
為替レートをマスタ化し、マスタのレートから換算するカスタム関数について次の記事で解説しています。


