|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
这里牵涉到DAX语言中一个 最基本 也是 最最最... 重要的概念:估值上下文。这个Power Pivottable里的“合计”,并不是简单的将列数值简单的累计,而是独立的在现有筛选上下文中进行计算。以“净增加”列的“合计”为例:
在'日期'[年月]列上无筛选,沿着'日期'表和'增'表,也就无任何筛选,此时度量值[增加数量] = COUNTROWS('增')的结果就是156;同样的,度量值[减少数量] = COUNTROWS('减')也是在没有任何筛选上下文存在情况下计算得到247,度量值[净增加] = IF([增加数量]>[减少数量],[增加数量]-[减少数量])的计算就应该是空值。
至于你所希望得到结果,可以“强行”的写为:
- 净增加 := SUMX ( VALUES ( '日期'[年月] ), IF ( [增加数量] > [减少数量], [增加数量] - [减少数量] ) )
复制代码净减少 := SUMX ( VALUES ( '日期'[年月] ), IF ( [增加数量] < [减少数量], [减少数量] - [增加数量] ) )
为什么说是“强行”呢,因为这是为了配合以“年月”为颗粒度量身打造的度量值;当你把行标签换为“日期”时,每一天的计算结果的和与“合计”又会产生差异。有兴趣的话可以试一下。
题外话:如果有志于将自身EXCEL水平从复杂公式+VBA再提升到一个新境界的话,就必须要学习Power Query(M语言) + PowerPivot(DAX)。
|
评分
-
2
查看全部评分
-
|