ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 978|回复: 3

[求助] 此Filter的详细计算流程?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-24 21:18 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
场景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的值很奇怪,与我预期的完全不同,尝试模拟数据又因为不知道错在哪里,无法复现这个错误,不能上传文件还请谅解!

TA的精华主题

TA的得分主题

发表于 2019-4-25 23:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
DAX语法简单,但逻辑相对复杂。目前学习资源很多,对其的解释总体相似,略有差异。
上述问题可看成你对筛选上下文的本质、上下文之间的计算、Filter函数以及ALL函数的用法等知识理解稍有不足,建议参考国外相对完整权威的学习资料:
The Definitive Guide to DAX Business intelligence with Microsoft Excel, SQL Server Analysis Services, and Power BI (Business Skills)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-26 16:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 shwangfeng 于 2019-4-26 16:39 编辑
张文洲 发表于 2019-4-25 23:28
DAX语法简单,但逻辑相对复杂。目前学习资源很多,对其的解释总体相似,略有差异。
上述问题可看成你对筛 ...

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

附上试验用的小附件,有兴趣的一起研究,共勉。
Test.rar (54.87 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-16 17:41 | 显示全部楼层
张文洲 发表于 2019-4-25 23:28
DAX语法简单,但逻辑相对复杂。目前学习资源很多,对其的解释总体相似,略有差异。
上述问题可看成你对筛 ...

大神你好,我重新整理了问题,请看此帖:
http://club.excelhome.net/thread-1477599-1-1.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-14 14:37 , Processed in 0.033142 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表