CALCULATE 関数

完了

CALCULATE 関数は、Power BI で最も汎用性の高い関数の 1 つです。 CALCULATE 関数の構文の例を次に示します。

CALCULATE( <expression>, <filter1>, <filter2>, ... )

最初のパラメーター内の式は、評価されて結果 (値) を返す必要があります。通常は SUM、AVG、MIN などの集計関数となります。さらに、この式はコンテキスト内でフィルターに基づいて評価されます。 これらのフィルターにより、現在の評価コンテキストを拡大したり制限したりすることができます。

CALCULATE 関数を使用すると、行とフィルターのコンテキストを制御できます。 フィルターの追加、削除、および更新を行うことができます。 CALCULATE は、DAX で多くの計算において重要な機能です。

CALCULATE でフィルターを追加する

次のコード スニペットは、合計売上を評価し、航空機フィルター コンテキストを追加する方法を例示したものです。

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

ヒント

次のコード スニペットは、Tableau で同じ計算を行う方法を示したものです。

Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END

CALCULATE でフィルターを更新する

次のコード スニペットは、[年] スライサーで 2019 が選択されている場合でも "2018 Sales" を取得する方法を例示したものです。

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

ヒント

直接の Tableau 比較は使用できないように見えます。 Tableau でこの関数を完了するには、フィールドの複製、補助データ ソースの取り込み、または各列に対する計算の実行が必要になります。

CALCULATE でフィルターを無視する

次のコード スニペットは、Alexandria が都市としてリストされている州の総売上を検索する方法を例示したものです ("Alexandria" は [都市] スライサーで選択された値です)。

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

ヒント

Tableau の場合は、EXCLUDE LOD 式を使って同じ計算を行います。 この LOD 式は、細分性が別の式とは異なることに注目してください。 この式の場合、ビューから除外するのは州と都市ではなく、州とする必要があります。

Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }