DAX平均各粒
好,三列,订单号,产品号和数量的高度简化的表...DAX平均各粒
Order | Product | Qty
1 | A | 10
1 | B | 20
2 | C | 30
我想计算数量的平均值,所以..这是在“默认粮”:
AvgQty = 60/3 = 20
简单,不过,我也那么想删除产品:
Order | Qty
1 | 30
2 | 30
现在的数量应该重新聚集[因为他们会用SUM(),现在我想AvgQty归还这些新线的平均...
AvgQty = 60/2 = 30
如果试图通过顺序分组明确,像这样做:
measure :=
IF (
ISFILTERED ('Table'[Product]),
AVERAGEX (
SUMMARIZE (
'Table',
'Table'[Order],
'Table'[Product],
"SumQty", SUM ('Table'[Qty])
),
[SumQty]
),
AVERAGEX (
SUMMARIZE (
'Table',
'Table'[Order],
"SumQty", SUM ('Table'[Qty])),
[SumQty]
)
)
这并不完全工作,由于总技术上没有被过滤的产品之列,所以它继续仍然显示错误的总数...
我不确定如何覆盖此.. ..?
我的实际计算不仅仅是一个简单的平均值,但我面临的主要问题是确保我可以在一个新谷物上重新计算数量......如果我能指出这一点,我可以修复我自己的问题问题..解决方案很可能也会将表格加载到订单颗粒的模型上! ;)
我也想过这最后的日子恐怕也没有办法解决这个,原因如下:
- 存在DAX没有函数返回计算整个表作为行
- 没有功能,告诉你什么是聚集有
- 为单排,你可以找出哪些是使用复杂的级联ISFILTERED功能过滤,但是这是不是真的可行,也可靠
- 最大的问题:当你在总或分总水平,有没有办法找出用于明细行因为没有像ISFILTERED,HASONEVALUE等现有功能将工作
所以DAX这不能得到解决从我的角度来看,
如果您使用MDX查询您的模型(例如一个数据透视表),你可以创建一个MDX度量,它使用AXIS()函数返回在行/列上使用的集合,并且它在COUNT()函数中
格哈德,这是一个非常好的答案,非常明确。我很高兴你回来了,因为它证实了我自己的发现,我感谢你。我正在使用(很短的时间)数据透视表来验证我的工作,但后来切换到使用PowerBI矩阵控制,因为我实际上是在他们正在做的“下”,我们的报告层是PowerBI。 – m1nkeh
我不太明白这个问题,什么是期望的结果?对于订单+产品,仅限订单,仅限产品和总计 –
是的......我重新阅读并且有点不清楚..让我再说一遍!简短的答案是我想达到'新'总量的平均数量,当时现在有两条线I.e.产品过滤器被删除... – m1nkeh
好的,编辑..谢谢! – m1nkeh