东哥陪你学DAX

东哥陪你学DAX——上下文系列小讲堂(三)

2020-08-06  本文已影响0人  江苏东军
000b.png

初识筛选上下文

介绍过“行上下文”,我们再来看看“筛选上下文”

先来建个度量值“总销量 = SUM ( '销售表'[销量] )”,把它扔进“条形图”

024.png

当前没有任何筛选上下文,图里孤零零挂着一个汇总值。不过也确实体现了公式本意——SUM函数不就是汇总求和的意思么?上图显示完全没问题

接下来我们往图里放点其他东西——把“大类”拖进去

025.png

按理说,出现这种结果也是天经地义。不过,再回顾一下“总销量 = SUM('销售表'[销量])”,公式里明明没有限定按大类还是小类,可图中怎么会自动根据大类显示了汇总?

如果把“小类”再拖进去呢,会有什么结果

026.png

公式依旧未变,但数据子集继续变化。显然,这个度量值会根据矩阵环境的变化而对汇总进行自动匹配

同理,继续加入其他过滤条件,度量值的范围也会跟随条件越来越精细

027.png 028.png

还记不记得前文“行上下文”的时候,也提过这个问题

度量值不会创建“行上下文”,那必定存在另一种上下文——对,就是“筛选上下文”

不单单是上面这个汇总公式SUM,几乎所有的DAX公式,都会根据筛选上下文而给出不同的结果

034.png

这一点,粗看起来,跟Excel的透视表效果差不多,但背后原理却大相径庭。还记得第一篇《什么是上下文》里,那四个百分比指标吗(下图),如果换成Excel环境,这四个指标不把你搞到肾出血我不姓东

004.png

就当前展示来看,可以把“筛选上下文”暂且看作所有可视化元素筛选的叠加集合,如下图

029.png

由上图我们可以知道,一个单元格的筛选上下文由一系列筛选条件组成,上图矩阵中的数值“36”,就来源于六个筛选条件,如果继续往上图中加入可视化元素,添加其他维度——诸如产品颜色、尺寸、供应商、客户等属性,那么筛选上下文仍会继续变动,单元格内的值也会随之不同

所有的这些筛选决定了该单元格的“筛选上下文”,DAX公式在计算前,将先把筛选上下文应用到数据模型,得到筛选子集后,再进行计算

因此,筛选上下文是多个筛选的集合,这便是它的入门定义

如何创建“筛选上下文”


035.png

1)可视化图表指的是大部分可视化元素
2)筛选器,在可视化面板隔壁 3)Calculate函数(该函数语法结构很简单,但运算逻辑较为复杂,将在后续章节专门介绍)

037.png 038.png

筛选上下文在创建的初始状态是静态的,但由于报表具有交互操作功能,在用户与之互动过程中,筛选上下文随时都可以修改调整其范围。以下四种操作,可以达到调整筛选上下文的目的

036.png

至此,大家对两种上下文有了初步印象

在大部分业务场景下,两种上下文会同时作用于数据展示,概念不清基础不牢的同学,很容易被一些是似而非模棱两可的表象给带偏。还是那句老话,本系列看不懂理不清的地方,可以暂时搁置,经常回来翻看,每次必定会有新收获

牢记一点:筛选上下文不迭代,行上下文不筛选

039.png image

(未完待续)

上一篇下一篇

猜你喜欢

热点阅读