[已解决] 此Filter的详细计算流程?

  [复制链接]
查看108210 | 回复118 | 2020-9-16 05:14:04 | 显示全部楼层 |阅读模式
场景PowerBI,单Data表模型,外部可视化切片包含Data[Time]和Data[Type]="B",求问以下两种度量值在计算流程上有何不同:
  1. Correct = CALCULATE(DISTINCTCOUNT(Data[Name]),FILTER(Data,Data[Type]="A"))
复制代码
  1. Wrong = CALCULATE(DISTINCTCOUNT(Data[Name]),FILTER(ALL(Data[Type]),Data[Type]="A"))
复制代码
我理解的Correct流程:

1.Calculate计算外部筛选上下文,得到Data子集1(筛选Time与Type="B");

2.代入外部上下文,计算Filter,此时Filter拿到的Data就是子集1,在此基础上叠加Type="A"(维持Time筛选,将Type改为同时筛选"B"和"A"),由于Type有且仅有一种,Filter返回空集;
3.Calculate在空集中计算参数一,得到Blank()。

我理解的Wrong流程:
1.Calculate计算外部筛选上下文,得到Data子集1(筛选Time与Type="B");

2.代入外部上下文,计算Filter,由于参数一的写法是ALL(单列),此时的参数一是所有Type的去重复集合,同时ALL清除了Type="B"的筛选,改为Type="A",由于各列独立筛选,因而Time筛选没有变化(即此时筛选Time与Type="A"),得到子集2;
3.Calculate在子集2中计算结果,得到同时满足Time与Type="A"的不重复Name个数。

PS:筛选Time是通过切片器选择的时间段,筛选Type则是通过在可视化中点击图形完成。

求问以上两种理解有什么问题,尤其是Wrong实际的计算流程如何,百思不得其解,求指点。
问的原因是我发现在某些情况下Wrong的值很奇怪,与我预期的完全不同,尝试模拟数据又因为不知道错在哪里,无法复现这个错误,不能上传文件还请谅解!
回复

使用道具 举报

昭靈 | 2020-9-16 05:21:05 | 显示全部楼层
DAX语法简单,但逻辑相对复杂。目前学习资源很多,对其的解释总体相似,略有差异。
上述问题可看成你对筛选上下文的本质、上下文之间的计算、Filter函数以及ALL函数的用法等知识理解稍有不足,建议参考国外相对完整权威的学习资料:
The Definitive Guide to DAX Business intelligence with Microsoft Excel, SQL Server Analysis Services, and Power BI (Business Skills)
回复

使用道具 举报

dk77 | 2020-9-16 05:26:05 | 显示全部楼层
DAX语法简单,但逻辑相对复杂。目前学习资源很多,对其的解释总体相似,略有差异。
上述问题可看成你对筛 ...


感谢大佬指点,我现在就是觉得自己一知半解,想对DAX的本质有深入彻底的了解。
目前我的学习资料只有看了一半的《Definitive Guide》,由于偶然间(那时读到第七章)遇到了这个解不开的问题,现在我从第三章开始逐句重读,觉得字里行间的描述还是有些模糊不清的地方,希望读完第十章可以自己探索解决这个问题。

附上试验用的小附件,有兴趣的一起研究,共勉。
9867012101471.html (19.53 KB, 下载次数: 0)
回复

使用道具 举报

wzfwzf | 2020-9-16 05:31:05 | 显示全部楼层
DAX语法简单,但逻辑相对复杂。目前学习资源很多,对其的解释总体相似,略有差异。
上述问题可看成你对筛 ...

大神你好,我重新整理了问题,请看此帖:
https://www.yunfa.vip/thread-7002-1-1.html?_dsign=323e7ae6
回复

使用道具 举报

1606 | 2021-6-19 15:34:15 来自手机 | 显示全部楼层
我也是坐沙发的
回复

使用道具 举报

emimei | 2021-7-22 09:35:17 | 显示全部楼层
忙完了,来看看视频
回复

使用道具 举报

清水TOTO | 2021-7-29 13:51:04 来自手机 | 显示全部楼层
不错不错.,..我一直很喜欢
回复

使用道具 举报

汗马I9 | 2021-8-16 21:15:08 | 显示全部楼层
好,很好,非常好!
回复

使用道具 举报

阿豪 | 2021-8-28 21:25:10 | 显示全部楼层
高手云集 果断围观
回复

使用道具 举报

峰磊 | 2021-8-31 09:32:37 | 显示全部楼层
说的不错,学习了
回复

使用道具 举报

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

本版积分规则