DAX 関数を使用する

完了

DAX 関数ライブラリは、それぞれ特定の目標を達成するように設計された数百個の関数で構成されています。

DAX は Microsoft Excel 2010 の Power Pivot アドインから生まれたため、Excel でも利用可能な 80 を超える関数が利用可能です。 これは、Excel ユーザーが DAX を使用して生産性をすばやく向上できるようするという、Microsoft の意図的な設計戦略でした。

ただし、Power BI にはデータ モデリングに固有の関数が多数存在しますが、Excel には存在しません。

  • リレーションシップ ナビゲーション機能
  • フィルター コンテキスト変更関数
  • 反復子関数
  • タイム インテリジェンス関数
  • パス関数

ヒント

DAX 関数に関連するドキュメントを検索するには、Web 検索で、キーワード DAX の後に関数名を入力します。

詳細については、「 DAX 関数リファレンス」を参照してください。

Excel 由来の関数

以下のセクションでは、Excel に存在し、ユーザーが既に使い慣れている可能性のあるいくつかの便利な関数について説明します。

IF 関数は、最初の引数として指定された条件が満たされているかどうかをテストします。 条件が TRUE の場合は 1 つの値を返し、条件が FALSE の場合は別の値を返します。 この関数の構文は次のとおりです。

IF(<logical_test>, <value_if_true>[, <value_if_false>])

ヒント

関数の引数は、ドキュメントの表記において角かっこで囲まれている場合は省略可能です。

logical_testFALSE と評価され、value_if_false が指定されていない場合、関数は BLANK を返します。

Excel の集計関数には、SUMCOUNTAVERAGEMINMAX など、多くの関数が含まれています。 唯一の違いは、DAX では列参照を渡すのに対し、Excel ではセルの範囲を渡すことです。

Excel の数学、テキスト、日付と時刻、情報、および論理の各関数も多数使用できます。 たとえば、DAX で使用できる Excel 関数のサンプルには、ABSROUNDSQRTLENLEFTRIGHTUPPERDATEYEARMONTHNOWISNUMBERTRUEFALSEANDORNOT、および IFERROR があります。

Excel 由来ではない関数

モデリングに固有ではなく、Excel に由来しない 2 つの便利な DAX 関数は、DISTINCTCOUNTDIVIDE です。

DISTINCTCOUNT 関数

DISTINCTCOUNT DAX 関数を使用して、列内の一意の値の数をカウントできます。 この関数は、分析ソリューションで特に効果を発揮します。 顧客の数が個別の顧客の数と異なる場合を考えてみます。 後者は繰り返しの顧客をカウントしないため、異なる顧客の数と顧客の数という違いがあります。

DIVIDE 関数

DIVIDE DAX 関数を使用して除算を実行できます。 分子と分母の式を渡す必要があります。 必要に応じて、代替結果を表す値を渡すことができます。 DIVIDE 関数の構文は次のとおりです。

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

DIVIDE 関数は、0 による除算のケースを自動的に処理します。 代替結果が渡されず、分母がゼロまたは BLANK の場合、この関数は BLANK を返します。 代替結果が渡された場合は、それが BLANK の代わりに返されます。

この関数は、式で最初に分母の値をテストしなくてもよいという点が便利です。 この関数は、IF 関数よりも分母の値のテストに最適化されています。 ゼロ除算のチェックはコストがかかるため、パフォーマンス向上に有効です。 さらに、DIVIDE 関数を使用すると、より簡潔でエレガントな表現が可能になります。

ヒント

分母がゼロまたは BLANK を返す可能性がある式の場合は、必ず DIVIDE 関数を使用することをお勧めします。 分母が定数値の場合は、このモジュールで後ほど紹介する除算演算子 (/) を使用することをお勧めします。 この場合、除算が成功することが保証され、不要なテストが回避されるため、式のパフォーマンスが向上します。