上下文转换问题

Power Pivot wkbook ⋅ 于 2023-07-08 09:30:44 ⋅ 最后回复由 onlylike 2023-07-10 16:18:35 ⋅ 620 阅读

file
显示筛选器FILTER('花名册',SUM('成绩表'[分数])>250)在calculate外部坏境运算,由filter引入的行上下文中却筛选了模型,对人员进行聚合判断,与下方表达式效果一直
file
此表达式通过calculate对filter引入的行上下文转换为等效的筛选上下文,可以聚合求值判断,逻辑清晰我能明白,求大神讲解下第一个表达式的原理,多谢

成为第一个点赞的人吧 :bowtie:
回复数量: 1
  • onlylike
    2023-07-10 16:18:35

    我也不知道我的理解对不对哈,欢迎大家指正,一起探讨。
    我想的是外部筛选上下文先起作用,比如以第一张图第一行的“李四”为例,这时候外部筛选上下文是“李四”,然后到迭代函数Filter这里,此时一端表花名册筛选多端表成绩表中的姓名李四,所以Sum('成绩表'[分数])就是聚合李四分数的值,然后看聚合结果是否大于250分。符合条件就进行返回李四姓名,再进行Calculate求值。
    第一张图的总计,我的理解是,没有外部筛选上下文起作用的结果。首先Filter('花名册',Sum('成绩表'[分数])>250)返回的表是花名册的全部值,因为Sum('成绩表'[分数])没有办法进行筛选,所以返回的是成绩表[分数]列的聚合,结果是2365肯定是大于250的,所以返回表是花名册的全部。再加上没有外部筛选上下文起作用,所以返回2365。
    第二张图的总计,因为有Calculate将Sum('成绩表'[分数])转为筛选上下文,所以Filter('花名册',Calculate(Sum('成绩表'[分数]))>250)返回花名册中成绩分数聚合之后大于250的表。再加上没有外部筛选上下文起作用,所以返回1088。

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter