我需要确定PowerPivot连接的数据透视表中每个已定义组的最大值和最小值。
请参考链接到相应PowerPivot表的以下基本Excel表格(通过ASCII发布):
-------------------------------------------------
Customer | Store | Transaction Sequence No |
-------------------------------------------------
A 1 1
A 1 2
A 1 3
A 2 1
A 2 2
B 1 1
B 1 2
B 2 1
如您所见,上面有两列唯一定义组
对于每个组,可以有一个或多个事务,每个事务都有一个关联 [交易顺序号] 值也如上所述。
在通过2 DAX Measures生成的数据透视表中,我想列出与每个唯一组关联的最小和最大[Transaction Sequence No] 值。
这将导致以下数据透视表:
----------------------------------------------------------------------------
Customer | Store | Transaction Sequence No | Max eq No | Min Seq No |
----------------------------------------------------------------------------
A 1 1 3 1
A 1 2 3 1
A 1 3 3 1
A 2 1 2 1
A 2 2 2 1
B 1 1 2 1
B 1 2 2 1
B 2 1 1 1
现在,如果用户通过切片器或过滤器决定对 [事务序列号] 列应用过滤器,则动态更新这两个新的DAX度量值非常重要。< / p>
在此示例中,如果用户通过应用的过滤器选择排除 [交易序列号] 值 3 ,则数据透视表应该更新其数据以反映新的最大值和最小值:
----------------------------------------------------------------------------
Customer | Store | Transaction Sequence No | Max eq No | Min Seq No |
----------------------------------------------------------------------------
A 1 1 2 1
A 1 2 2 1
A 2 1 2 1
A 2 2 2 1
B 1 1 2 1
B 1 2 2 1
B 2 1 1 1
我无法制定正确的DAX语法来完成此任务。
答案 0 :(得分:1)
MinTSeq:=
CALCULATE(
MIN('table'[Transaction Seq No])
ALLSELECTED('table'[Transaction Seq No])
)
应该让你到那儿。你可以用MAX()替换min。
reading上的更多ALLSELECTED()。
答案 1 :(得分:0)
简单来说,两项措施将提供正确的答案:
测量最小序列号:= CALCULATE(MIN('yourTable'[TransSeqNo]),VALUES('yourTable'[customer]))
测量最大序列号: = CALCULATE(MAX( 'yourTable'[TransSeqNo]),VALUES( 'yourTable'[顾客]))
当您将这些度量放在数据透视表的值字段中,并在Customers字段中显示Customers和Store时,您可以过滤并获得正确的结果。
修改强> 的
除非我误解了你想要做的事情,否则上述措施仍将是你问题的最后一个表格。
http://i43.tinypic.com/2j4eyaw.png
和
http://i44.tinypic.com/34fz5go.png
这不是你的想法吗?
答案 2 :(得分:0)
感谢aesthetic_a的回应。
不幸的是,你的DAX语句没有显示每个组的min()值,它显示了每个 [Transaction Sequence No] 值的min()值,这不是我想要的。
正如我原来的帖子(第3张表格)中所述,我需要重复与每个组相关联的min()值。
然而,你的解决方案指出了我正确的方向,我能够完成我所需要的。
仅供参考,我的目的是确定哪个 [交易序列号] 值包含最低值,然后仅与 [总成本] 值相关联最低 [交易顺序号] 值每组。
您指出了我正确的方向,并使用以下DAX语句来满足此要求:
=countrows(filter(allselected(Table1[Transaction Sequence No]),[Sum of Transaction Sequence No](values(Table1[Transaction Sequence No])) >[Transaction Sequence No])) + 1
即使通过切片器对此维度属性应用了过滤器,此DAX语句也会动态地为每个 [事务序列号] 值每组排名。
然后我创建另一个DAX度量,如果关联的Rank()值等于1,则仅返回 [总成本] 度量值。
最后,我 SUM 这个新创建的度量只会返回与第一个 [交易序列号] <相关的 [总成本] 值/ strong>基于当前在工作簿中应用的任何用户定义的过滤器(通过切片器或数据透视表过滤器)的值。
谢谢你,你指出了我正确的方向,我很感激!
小心