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] 
    ) 
) 

这并不完全工作,由于总技术上没有被过滤的产品之列,所以它继续仍然显示错误的总数...

我不确定如何覆盖此.. ..?

我的实际计算不仅仅是一个简单的平均值,但我面临的主要问题是确保我可以在一个新谷物上重新计算数量......如果我能指出这一点,我可以修复我自己的问题问题..解决方案很可能也会将表格加载到订单颗粒的模型上! ;)

+0

我不太明白这个问题,什么是期望的结果?对于订单+产品,仅限订单,仅限产品和总计 –

+0

是的......我重新阅读并且有点不清楚..让我再说一遍!简短的答案是我想达到'新'总量的平均数量,当时现在有两条线I.e.产品过滤器被删除... – m1nkeh

+0

好的,编辑..谢谢! – m1nkeh

我也想过这最后的日子恐怕也没有办法解决这个,原因如下:

  • 存在DAX没有函数返回计算整个表作为行
  • 没有功能,告诉你什么是聚集有
  • 为单排,你可以找出哪些是使用复杂的级联ISFILTERED功能过滤,但是这是不是真的可行,也可靠
  • 最大的问题:当你在总或分总水平,有没有办法找出用于明细行因为没有像ISFILTERED,HASONEVALUE等现有功能将工作

所以DAX这不能得到解决从我的角度来看,

如果您使用MDX查询您的模型(例如一个数据透视表),你可以创建一个MDX度量,它使用AXIS()函数返回在行/列上使用的集合,并且它在COUNT()函数中

+0

格哈德,这是一个非常好的答案,非常明确。我很高兴你回来了,因为它证实了我自己的发现,我感谢你。我正在使用(很短的时间)数据透视表来验证我的工作,但后来切换到使用PowerBI矩阵控制,因为我实际上是在他们正在做的“下”,我们的报告层是PowerBI。 – m1nkeh