web-dev-qa-db-ja.com

COUNTAXとFILTERを使用したPowerBIでのTRUE()とFalse()のカウント

ブール(0 | 1)値を含むテーブル(Table_Name)に列(Column_Name)があります。各値のカウントを取得しようとしています。たとえば、合計1500行あり、700がTrueで800がFalseであることを示す2つのメジャーが必要です。

私は以下を試しましたが、それぞれが行の総数(1500)を示しています。

False_Measure = COUNTAX(FILTER('Table_Name','Table_Name'[Column_Name]=FALSE()),FALSE())

True_Measure = COUNTAX(FILTER('Table_Name','Table_Name'[Column_Name]=FALSE()),TRUE())

私は完全に混乱しています...

この時点で正しいDAX関数を使用しているかどうかさえわかりません。

2
g_sexton

問題は、COUNTAX()関数の2番目のパラメーターにあります。これは、リストされている同じフィルター項目ではなく、カウントする列/項目である必要があります。

したがって、これらの関数は、必要な結果を提供するはずです。

False_Measure = COUNTAX(FILTER('Table_Name', 'Table_Name'[Column_Name]=FALSE()), [Column_Name])

True_Measure = COUNTAX(FILTER('Table_Name', 'Table_Name'[Column_Name]=TRUE()), [Column_Name])

この関数のドキュメントはリストされています ここ

2
Karl

いくつかの可能性があります:

True_Measure = SUMX(Table_Name, 1*Table_Name[Column_Name])
True_Measure = SUMX(Table_Name, 1*(Table_Name[Column_Name] = TRUE()))

False_Measure = SUMX(Table_Name, 1*(Table_Name[Column_Name] = FALSE()))
False_Measure = COUNTROWS(Table_Name) - [True_Measure]

これらのほとんどでは、1*を使用してTrue/Falseブール値を数値0または1に強制変換しています。


フィルタリングされたテーブルでもCOUNTROWSを使用できます。

True_Measure  = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()))
False_Measure = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()))

本当にCOUNTAXを使用したい場合は、次のようになります。

True_Measure  = COUNTAX(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()), 1)
False_Measure = COUNTAX(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()), 1)
3
Alexis Olson