Ima*_*nRF 4 excel pivot dax powerbi
我是DAX的新手.
我目前正在使用Power BI并试图创建使用几个不同SKU(或ID)的总销售额
我可以使用它来过滤到1 sku("A1"):
Measure = CALCULATE([销售总和],表4 [SKU] ="A1")
但我想过滤到五个不同的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
Run Code Online (Sandbox Code Playgroud)
这可能吗?
小智 7
在这种情况下,最好的想法是在 DAX 中使用INOperator。性能比管道运算符 or 好得多,OR并且代码变得更具可读性。
仅最新版本的 DAX 支持此功能。
GroupingSales:=CALCULATE([Sum of Sales],Table[SKU] IN {"A1","A2","A3","AB"})
Run Code Online (Sandbox Code Playgroud)
您也可以使用CONTAINSROW.
更多信息: https: //www.sqlbi.com/articles/the-in-operator-in-dax/
CALCULATE定义为CALCULATE(<expression>,<filter1>,<filter2>…)这意味着您可以一次使用多个过滤器.然而,多个过滤器将作用在同一时间.这意味着数据必须满足这两个条件.
这样做BadSumOfSales:=CALCULATE([Sum of Sales],Table3[SKU]="A1",Table4[SKU]="AB")不会给你你需要的东西.由于SKU必须等于A1 和 AB,因此它将返回空白
由于您希望在过滤中包含五个项目,因此应使用SWITCH功能.这将允许您适应应该返回TRUE的多个条件,然后让您返回FALSE以获取其他任何条件
TotalsSumOfSales:=CALCULATE([Sum Of Sales],
SWITCH(Table4[SKU],
"A1",TRUE(),
"A2",TRUE(),
"A3",TRUE(),
"4" ,TRUE(),
"5" ,TRUE(),
"8" ,TRUE(),
FALSE()
))
Run Code Online (Sandbox Code Playgroud)
解决这个问题的另一种方法是使用OR函数.这是一个很好的选择,但只有在一次有两个过滤器时才能正常工作.如果你有两个以上,你将不得不做一些可能变得复杂的嵌套.所以对于你的情况我会坚持使用SWITCH,但这是一个如何看的例子:
OrTotalSumOfSales:=CALCULATE([Sum of Sales],
OR(
Table4[SKU]="A1",
Table4[SKU]="A2"
))
Run Code Online (Sandbox Code Playgroud)
好吧,我认为根据您过滤到 5 个不同 SKU 的请求,您实际上不应该使用 DAX 来解决您的问题。
如果您只是在 Excel 中插入数据透视表,则可以将 SKU 添加到行,将销售额添加到值。如果需要,您可以调整聚合(但我认为它默认为 SUM),这样您应该已经拥有正确的数据。剩下的唯一一件事就是将其过滤到您想要的 SKU。您只需创建一个表即可在 Power View 中执行相同的操作。然后您可以将 SKU 添加到过滤器窗格并选择您想要的 5 个 SKU。
感谢您使用 Power BI,-Lukasz
| 归档时间: |
|
| 查看次数: |
30646 次 |
| 最近记录: |