姓名 | 类别 | 项目 | 金额 |
---|---|---|---|
加里 | 食物 | 米饭 | 1 |
加里 | 食物 | 糖 | 5 |
加里 | 家具 | 椅子 | 8 |
加里 | 家具 | 桌子 | 4 |
约翰 | 食物 | 米饭 | 3 |
约翰 | 食物 | 糖 | 5 |
约翰 | 家具 | 椅子 | 6 |
约翰 | 家具 | 桌子 | 7 |
姓名 | 食物 | 家具 | 总计 |
---|---|---|---|
加里 | 12 | 36 | 48 |
约翰 | 16 | 39 | 55 |
大家好 尝试编写此 Dax,但 power bi 中的列总计给了我错误的总计。它给出的总数为 36 和 42,但事实并非如此。
Dax 应该按人名对类别进行分组,并将食品类别总数乘以 2,家具类别总数乘以 3。
这是我的达克斯:
SWITCH(
TRUE(),
MIN(Sheet1[Category]) = "Food", SUM(Sheet1[Amount]) * 2,
MIN(Sheet1[Category]) = "Furniture", SUM(Sheet1[Amount]) * 3
)
嗯,我想说结果完全符合你的测量结果。 DAX 公式的问题在于它无法正确处理总计。带有
SWITCH
的 SUM
语句逐行运行,但不会调整类别级别的总计。为了获得正确的总计,您可以尝试使用首先在类别级别进行分组和聚合的度量,然后应用乘数。
尝试以下方法:
Total Amount =
SUMX(
VALUES(Sheet1[Category]),
SWITCH(
TRUE(),
Sheet1[Category] = "Food", CALCULATE(SUM(Sheet1[Amount]) * 2),
Sheet1[Category] = "Furniture", CALCULATE(SUM(Sheet1[Amount]) * 3),
0
)
)