[已解决] [PowerBI疑难]Calculate结果错误

  [复制链接]
查看120820 | 回复125 | 2020-9-16 05:39:26 | 显示全部楼层 |阅读模式
计算环境:单表模型Data,只有四列:
9869012115231.png

报表视图中添加amount柱形图(以Type作图例),根据Datetime做切片器,点击图例B查看以下度量值效果:


  1. Wrong =

  2. CALCULATE (

  3.   DISTINCTCOUNT ( Data[Name] ),

  4. Data[Type] = "A"

  5. )
复制代码



我认为的计算流程:
1.外部没有行上下文;
2.外部筛选上下文包括Type="B"和时间段选择,即一共两列存在筛选;
3.Calculate清除Type列筛选,并修改为Type="A";
4.在Type="A"以及选定时间段中,计算不重复Name值个数。

如果是这样,那么无论选择什么图例,都应该显示同样的值(因为Calculate清除了原始的Type列筛选),但实际只有选择A才有值,选择其他通通显示空白。
请问为什么?

这个问题我原来发过,当时我认为是对原理理解不够,现在圣经看到第十章,扩展表也可以理解了,还是不能解释这个问题,真的被难住了。
请看附件:
9869012115232.rar (58.5 KB, 下载次数: 0)
回复

使用道具 举报

天山村夫 | 2020-9-16 05:47:27 | 显示全部楼层
你把datetime范围全选,再看你的结果
回复

使用道具 举报

云少 | 2020-9-16 05:50:27 | 显示全部楼层
你把datetime范围全选,再看你的结果


其实不只是Datetime,在amount上切片也一样会出错,只要有别的筛选存在就会不对
我就是想知道为什么不对呀,结果不应该像全选时间那样是“时间段内Type为A的不重复Name个数"吗?
回复

使用道具 举报

比卡丘 | 2020-9-16 05:57:27 | 显示全部楼层
你把datetime范围全选,再看你的结果


我找到答案了,原因是对同一个表的arbitrarily shaped filters做了overwrite,《DAX圣经》第十章439页开始的小节有完整解释。
其中引用的例子在前面Keepfilter里也举过,当时只觉得这个例子挺有趣,还去dax.guide上查了相关文章,只是没想到影响这么深远!
过了这么久终于搞清楚了,很开心!

附上简单解释给后来者(权威解释请参照书本):
点击柱子中图例为"B",再使用切片器选择时间段,本来是对两列的单独筛选,但因为发生在同一个表中,一个表本身就代表了其中各列之间有关系(不然也不能组合成一个表),因此最后这两列的有效值会被合并成一个个不可分割的数组作为筛选条件(可以分别给两列的有效值涂绿色,而最终的筛选结果是两列都为绿色的值的"组合",每个组合包含一个Type元素和一个同行的Datetime元素,同一组合的两个元素不可分割),如果到此为止结果没什么问题——“时间段内Type为B的不重复Name个数”。
问题就在于,Calculate在这个筛选基础之上,又添加了Type="A"作为筛选上下文,这个条件是和原本算好的筛选组合冲突的,而Calculate会强制用新人换旧人,新筛选上下文只含Type列,因而Calculate强制拆散了原本的组合,清空Type="B"的设定,改为"A"——注意此时的Datetime筛选条件并没有变,还是之前"选择时间段中同行为B"的那些时间作为有效值!所以如果这些时间当中没有"A"的行,那么结果就是空集!
验证:将之前任意一组标为绿色的组合所在行复制,改其中Type为"A",刷新可见度量值计算结果为1。


我的天,终于弄清楚了!
回复

使用道具 举报

天真的创伤 | 2020-9-16 06:02:27 | 显示全部楼层
我找到答案了,原因是对同一个表的arbitrarily shaped filters做了overwrite,《DAX圣经》第十章439页开 ...


DAX逻辑比较复杂,每个人阅读DAX GUIDE都会有不同的理解和表述,但核心原理是相对固定的。
当你选择了特定日期范围,即便在度量值内部设置Type字段条件,依然要受日期范围的限制。
回复

使用道具 举报

前徐K神 | 2021-4-24 16:03:13 | 显示全部楼层
支持,一直很喜欢老师的课程
回复

使用道具 举报

野仔 | 2021-5-2 20:18:43 | 显示全部楼层
谢谢,一直在学习云发教育课程!
回复

使用道具 举报

鬼鬼 | 2021-5-17 21:26:52 来自手机 | 显示全部楼层
谢谢网站确实不错,超值
回复

使用道具 举报

SilverPOLO | 2021-7-8 10:05:43 来自手机 | 显示全部楼层
沙发???
回复

使用道具 举报

LXQ | 2021-7-26 23:58:38 来自手机 | 显示全部楼层
学习下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则