DAX UDFs: 一度書いて、どこでも再利用(プレビュー) | Microsoft Power BI ブログ

Power BIでは、DAX UDFs(ユーザー定義関数)が導入され、再利用可能な関数を定義できるようになりました。これにより、複数のメジャーでロジックを繰り返し記述する必要がなくなり、コードが読みやすく、保守しやすくなります。DAX UDFsを有効にするには、Power BI Desktopのオプションからプレビューフィーチャーを有効化します。関数はDAX式のあらゆる場所で使用可能で、型チェックや柔軟な引数もサポートします。これにより、複雑なロジックを簡潔に扱えます。

DAX UDFのガイド:Power BIの新機能

Power BIは、長らくPower Queryでのカスタム関数をサポートしてきましたが、DAXにも同様の機能が追加されました。これにより、DAX UDF(ユーザー定義関数)を用いて、プログラミングのようにパラメータを持つ再利用可能な関数を定義できるようになります。複数のメジャーにロジックをコピー&ペーストするのではなく、一度書いてモデル全体で再利用することが可能になり、複雑なモデルでもコードが簡単に書きやすく、理解しやすく、保守しやすくなります。

DAX UDFの開始方法

DAX UDFを有効にするには、Power BI Desktopで「オプションと設定」>「オプション」>「プレビュー機能」に移動し、DAXユーザー定義関数の機能をオンにします。

DAX UDFを有効にする

一度有効にすると、DAX UDFを以下の方法で定義できます。関数を定義した後は、DAXがサポートされているメジャーや計算列、ビジュアル計算で使用できます。

関数の定義

DAXクエリビュー(DQV)またはTMDLビューを使用して関数を定義できます。関数の基本構造は次のようになります。

DAX
/// [関数の説明]

FUNCTION = ( [parameter name] : [parameter type] ) =>

例えば、2つのパラメータを受け取るMultiplyという関数を定義して評価する簡単な例を示します。

DAX
DEFINE
/// Multiplyは2つのパラメータを受け取り、乗算を返します
FUNCTION Multiply = (
a,
b
) =>
a * b

EVALUATE {
Multiply ( 6, 7 ) // 42を返します
}

DAX UDFの管理

モデルに関数を追加すると、モデルエクスプローラーに表示されます。

モデルエクスプローラーに表示される関数

DAXクエリビューでは、クイッククエリを使用して関数を簡単に定義し、評価できます。

DAX UDFの使用

モデルに追加された関数は、任意のDAX式から呼び出すことができます。例えば、AddTaxという関数を定義するとします。

DAX
DEFINE
/// AddTaxは税金を含めた金額を返します
FUNCTION AddTax = (amount: numeric) => amount * 1.1

この関数をメジャーで使用することができます。

DAX
TotalWithTax = AddTax([Total Sales])

パラメータと型チェック

DAX UDFはゼロ以上のパラメータをサポートしており、型を指定することで堅牢性を高めることができます。パラメータはスカラー、テーブル、または式を受け付けます。

例えば、整数値でなければならないパラメータを示す場合:

DAX
x: scalar int64 val

全ての数値を受け付ける場合:

DAX
x: scalar numeric val

高度な例:柔軟な通貨変換

DAX UDFが複雑なロジックを処理できることを示すために、以下の通貨変換の例を見てみましょう。この例は、指定された日付の平均または終値の為替レートを使って金額を通貨に変換します。

DAX
function convertToCurrency =
(
p_currency: variant,
p_date: variant,
p_use_average_rate: boolean,
p_amount: decimal
) =>
// ここに変換ロジックを記述

この関数は、ユーザーが通貨キーまたは通貨コードを提供できるようになっており、型に応じて適切に処理されます。

可能性は無限大

DAX UDFは、Power BIに新たな柔軟性と再利用性をもたらします。ぜひプレビュー機能を有効にして、さまざまな可能性を探求してみてください。詳細についてはこちらのドキュメントを参照し、あなたが作るものを楽しみにしています!

————-

DAX UDFs: Code once, reuse everywhere (Preview) | Microsoft Power BI Blog

Source link

Power BI has introduced DAX User Defined Functions (UDFs), allowing users to create reusable functions with parameters similar to traditional programming. This feature enhances DAX by enabling cleaner, more maintainable code, reducing redundancy, and improving readability. Unlike calculation groups, DAX UDFs support parameterization, adding flexibility and reusability across models.

To start using DAX UDFs, enable the feature in Power BI Desktop under Options > Preview features. Functions can be defined using DAX Query View (DQV) or TMDL view. For example, a simple function to multiply two numbers can be defined and then called in other DAX expressions.

DAX UDFs can handle parameters, supporting various types such as scalars, tables, or expressions, and allow for implicit casting. This means users can design complex logic like currency conversions with type checking and nested functions.

Once defined, DAX UDFs can be utilized in measures, calculated columns, and other DAX expressions, facilitating advanced analytics and reporting. The introduction of DAX UDFs significantly enhances Power BI’s capability, encouraging users to explore their potential for improved data modeling.

関連記事