CALCULATETABLE
変更された filter コンテキストでテーブル式を評価します。
手記
CALCULATE 関数もあります。 まったく同じ機能を実行
構文
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
パラメーター
用語 | 定義 |
---|---|
expression |
評価するテーブル式。 |
filter1, filter2,… |
(省略可能)ブール式 or、filters、orfilter 修飾子関数を定義するテーブル式です。 |
first パラメーターとして使用される式は、テーブルを返す関数 or モデル テーブルである必要があります。
Filters は次のようになります。
- ブール filter 式
- テーブル filter 式
- Filter 変更関数
複数の filtersがある場合は、AND論理演算子を使用して評価されます。 つまり、all 条件は、同じ timeで TRUE
する必要があります。
ブール filter 式
ブール式 filter は、TRUE
orFALSE
に評価される式です。 次の規則に従う必要があります。
- 参照できる列は 1 つだけです。
- メジャーを参照することはできません。
- 入れ子になった CALCULATE 関数を使用することはできません。
Power BI Desktop の 2021 年 9 月リリース以降は、次のことも適用されます。
- 集計関数に引数として渡されない限り、スキャン or テーブルを返す関数は使用できません。
- スカラー
を返す集計関数 含めることができる 。
テーブル filter 式
テーブル式 filter テーブル オブジェクトを filterとして適用します。 これはモデル テーブルへの参照である可能性がありますが、テーブル オブジェクトを返す関数である可能性が高くなります。 FILTER 関数を使用すると、ブール filter 式で定義できない条件を含む、複雑な filter 条件を適用できます。
Filter 修飾子関数
Filter 修飾子関数を使用すると、単に filtersを追加する以上のことを行うことができます。 コンテキストを変更するときに、追加の制御 filter 提供されます。
機能 | 目的 |
---|---|
REMOVEFILTERS | 1 つのテーブル or 1 つの列から orfiltersallfilters、or、1 つのテーブルの all 列から削除します。 |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | 1 つの列 or 複数の列から filters を削除 or、1 つのテーブルの all 列から削除します。 |
KEEPFILTERS | 同じ列の既存の filters を削除せずに filter を追加します。 |
USERELATIONSHIP | related 列間に非アクティブなリレーションシップを適用します。その場合、アクティブなリレーションシップは自動的に非アクティブになります。 |
CROSSFILTER | リレーションシップ filter 無効に or 方向 (両方から単一、or の両方) を変更します。 |
1ALL 関数 and、そのバリアントは、テーブル オブジェクトを返す関数として andfilter 修飾子の両方として動作します。 REMOVEFILTERS 関数がツールでサポートされている If は、それを使用して filtersを削除することをお勧めします。
value を返す
valuesのテーブル。
備考
filter 式を指定すると、CALCULATETABLE 関数は filter コンテキストを変更して式を evaluate します。 filter 式ごとに、filter 式が KEEPFILTERS 関数でラップ not 場合、次の 2 つの標準的な結果が得られます。
- 列 (or テーブル) が filter コンテキストにない If、新しい filters が filter コンテキストに追加され、式が evaluate されます。
- 列 (or テーブル) が既に filter コンテキストにある If、既存の filters は新しい filters によって上書きされ、CALCULATETABLE 式が evaluate されます。
この関数は、行レベル セキュリティ (RLS) 規則 or 計算列で使用する場合に、DirectQuery モードで使用するためにサポート not。
例
次の例では、CALCULATETABLE 関数を使用して、2006 年のインターネット販売の sum を取得します。 この value は、後に、year 2006 年の all 売上と比較したインターネット売上の比率を calculate するために使用されます。
次の数式:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
結果は次の表のようになります。
行ラベル | インターネット SalesAmount_USD | CalculateTable 2006 インターネット販売 | 2006年のインターネット販売比率 |
---|---|---|---|
2005 | $2,627,031.40 | $5,681,440.58 | 0.46 |
2006 | $5,681,440.58 | $5,681,440.58 | 1.00 |
2007 | $8,705,066.67 | $5,681,440.58 | 1.53 |
2008 | $9,041,288.80 | $5,681,440.58 | 1.59 |
総計 | $26,054,827.45 | $5,681,440.58 | 4.59 |
コンテンツの Related
- コンテキスト を
する - CALCULATE 関数 (DAX)
- Filter 関数 (DAX)