web-dev-qa-db-ja.com

DAXで複数のフィルターを使用する

DAXは初めてです。

私は現在PowerBIを使用しており、いくつかの異なるSKU(またはID)を使用して売上の合計を作成しようとしています。

これを使用して、1 sku( "A1")までフィルタリングできます。

Measure = CALCULATE([Sum of Sales]、Table4 [SKU] = "A1")

ただし、5つの異なるSKUに絞り込みたいと思います。

データ例:

2      1,050.54
3     43,925.20
4      8,596.00
5      1,630.00
8      3,330.00
A1        45.24
A2       499.87
A3    53,567.05
A4       337.92
A5     4,265.00
AB    12,651.94
ACC    7,634.95
ADV   -1,769.95
ANT        1.60
AUTO   9,655.40
BOOT     268.00

これは可能ですか?

4
ImaginationRF

[〜#〜] calculate [〜#〜]CALCULATE(<expression>,<filter1>,<filter2>…)として定義されます。これは、一度に複数のフィルターを使用できることを意味します。ただし、複数のフィルターが同時に機能します。つまり、データは両方の条件を満たす必要があります。

したがって、BadSumOfSales:=CALCULATE([Sum of Sales],Table3[SKU]="A1",Table4[SKU]="AB")を実行しても、必要なものは得られません。 SKUはA1およびABと等しくなければならないため、blankを返します。

フィルタリングに含めたい項目が5つあるので、 [〜#〜] switch [〜#〜] 関数を利用する必要があります。これにより、 [〜#〜] true [〜#〜] を返す複数の条件に対応し、 [〜#〜] falseを返すことができます。 [〜#〜] その他の場合

TotalsSumOfSales:=CALCULATE([Sum Of Sales],
SWITCH(Table4[SKU],
    "A1",TRUE(),
    "A2",TRUE(),
    "A3",TRUE(),
    "4" ,TRUE(),
    "5" ,TRUE(),
    "8" ,TRUE(),
      FALSE()  
))

これを回避する別の方法は、 [〜#〜]または[〜#〜] 関数を使用することです。これは優れたオプションですが、一度に2つのフィルターがある場合にのみ実際にうまく機能します。 2つ以上ある場合は、複雑になる可能性のあるネストを行う必要があります。したがって、あなたの場合は、 [〜#〜] switch [〜#〜] を使用しますが、次のようになります。

OrTotalSumOfSales:=CALCULATE([Sum of Sales],
OR(
    Table4[SKU]="A1",
    Table4[SKU]="A2"
))
5
dotNetE

この場合の最良のアイデアは、DAXでIN演算子を使用することです。パフォーマンスはパイプ演算子やORよりもはるかに優れており、コードが読みやすくなります。

これは、DAXの最新バージョンでのみサポートされています。

GroupingSales:=CALCULATE([Sum of Sales],Table[SKU] IN {"A1","A2","A3","AB"})

CONTAINSROWを使用することもできます。

詳細: https://www.sqlbi.com/articles/the-in-operator-in-dax/

1
Bhavesh Patel

Orバージョンの3番目の方法です。ダブルパイプを使用できます '||'これは、フィルターでOrステートメントとして機能します。

Measure = CALCULATE([Sum of Sales],Table4[SKU]="A1" || Table4[SKU]="A2" || 
Table4[SKU]="A3" ||Table4[SKU]="A4" || Table4[SKU]="A5")  
1
Brandon

問題を解決するために実際にDAXを使用するべきではない5つの異なるSKUにフィルターをかけるというあなたの要求に基づいていると思います。

Excelにピボットテーブルを挿入するだけで、SKUを行に追加し、売上を値に追加できます。必要に応じて、集計を調整して(ただし、デフォルトではSUMになっていると思います)、適切なデータがすでにあるはずです。残っているのは、必要なSKUだけにフィルターすることだけです。テーブルを作成するだけで、PowerViewでも同じことができます。次に、SKUをフィルターペインに追加して、必要な5つのSKUを選択できます。

Power BI、-Lukaszの使用に感謝します

0
Lukasz P.