暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PowerBI-上下文

BISeven 2021-06-09
2122

在PowerBI中上下文是一个非常重要的概念,因为Dax公式是在确定的上下文环境 中计算,所以对于上下文的理解关系着是否能正确理解Dax公式的运行逻辑,关系着是否能够写出高效的Dax公式等等



今天在这里我谈一谈我的理解。


在大部分文章中会提到两种上下文:行下文和筛选上下文,这种表述也是正确的,但是在这篇文章中,我不会严格按照这种表述方式来介绍。


PowerBI中共有三个不同类型的上下文:查询上下文,行上下文及筛选上下文。


查询上下文,为Dax公式返回计算所需要的数据集,查询上下文是在公式计算之前运行的,该上下文可以被切片器、增加或者减少字段改变。对于每一个改变,都会重新计算查询上下文。对于一个相同的公式,放在不同的查询上下文中其计算结果可能是不一致的。


行上下文,你可以把行上下文想象成“当前行”(哈哈,如果我想象不出来该咋办?)。对于行上下文本人的理解为一个数据集合中一个个的值。如果你学过其他计算机语言,回想一下,循环语句是怎么写的?(本人有python等其他语言的学习经历)

For I in dataset:
Sth.
复制


行上下文就是循环语句中的迭代变量,按照某种顺序一个一个去访问数据集(可能是列表也可能是数组)中的值。

那换到PowerBI中,对于表格中的每一列我们都可以看成一个列表/数组..,如果想要访问每一个值,是不是需要一个迭代变量,那这个迭代变量就是行上下文。


筛选上下文,是指每一列的子集,包括查询上下文和可通过filter 表达式在Dax公式中指定,比如filter, all, allexcept等。筛选上下文包括查询上下文,从这个角度理解的话,大部分文章中提到的外部筛选上下文应该就指的查询上下文。


根据上文,我们可以大致的概括出一个Dax公式的计算流程:

1.PowerBI会根据查询上下文确定公式计算所需要的数据集

2.再根据Dax公式中筛选上下文及行下文,重新计算上下文,并返回数据

3.计算结果

4.将计算结果展示到报表上


上述步骤,1和2有可能是合并的。


上下文的很重要,在某种程度上也比较难理解,一篇文章几百字是远远介绍不完的,但这是个开始吧!


好了,以上就是今天要介绍的内容。


我是BISeven,欢迎与我沟通。


参考文章:

https://docs.microsoft.com/en-us/dax/dax-overview

文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论