好的,高度简化的三列表,订单#,产品#和数量......
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]
)
)
由于该列的总数在技术上未被产品过滤,因此它仍然不能正常工作,因此它仍然显示不正确的总数......
我不确定如何覆盖这个......?
我的实际计算结果并不仅仅是一个简单的平均值,但我面临的主要问题是确保我可以在一粒新粒子上“重新计算”数量......如果我可以解决这个问题,我可以解决自己的问题..解决方案很可能也是将表加载到订单颗粒的模型!!! ;)
答案 0 :(得分:0)
我在最后几天也考虑过这个问题,我担心由于以下原因无法解决这个问题:
所以对于DAX来说,从我的观点来看,目前无法解决这个问题
如果您使用MDX查询模型(例如数据透视表),您可以创建一个MDX度量,它使用AXIS() - 函数返回行/列上使用的集合,它是否为COUNT ()函数