DAX从入门到精通 4-6 上下文概括总结
2019-07-15 本文已影响0人
PowerBI入门到实践
现在我们总结概括一下所学习的上下文知识。
- 上下文是当需要获取某列的值的时候,通过筛选数据模型,结合当前行的情况,而调整DAX表达式值的方式。
- 上下文包括两种:行上下文和筛选上下文。它们同时存在于所有的函数中。为了明白函数是如何工作的,你需要同时考虑它们两个,因为它们一起发挥了作用。
- 当创建计算列的时候,DAX会自动创建一个行上下文。你也可以使用迭代函数来创建行上下文。所有的迭代函数都会定义一个行上下文。
- 你可以嵌套行上下文,这时候,可以使用earlier函数来获取上次的行上下文。
- 当你在透视表中使用行,列,过滤器,切片器的时候,DAX自动创建了筛选上下文。另外也可以使用calculate函数来创建筛选上下文,但是目前我们还没有学习它。这里,我们希望你已经非常迫切的想知道关于calculate函数如何使用。
- 行上下文不会自动通过关系传递。传到需要手动使用related或者relatedtable函数。使用这两个函数需要注意使用时候所处的位置。related使用在多方,relatedtable函数使用在一方。
筛选上下文会通过关系自动传导。它总是从关系的一方流向多方。但是,你也有选项可以使得其从多方到一方。没有任何函数可以改变传导到规律:所有的行为都是在计算引擎中根据数据模型的关系自动运行的。
Valves函数返回一个单列的表,列中是所有当前筛选上下文情况下的所有可见的唯一值。你可以找个结果表用做任何迭代函数的参数。
至此,你已经学习了DAX语言的大部分基本概念。这些基本概念贯穿所有的DAX函数,它们是DAX运行的基础。如果你遇到了表达式的计算结果不是如你所希望的,那很有可能是因为你还没有完全的掌握这些基本的规则。
章节开始的时候,我们说了,这些概念第一眼看起来都很简单,的确,它们也真的是很好理解。但是,困难的地方是,当它们存在于复杂的表达式当中时,你可能会遇到多个上下文在函数的多个部分。通过不断的学习,你会逐渐掌握使用上下文的技巧,下个章节,我们会使用多个案例来帮助你理解学习。当你动手使用了DAX函数后,你会逐渐掌握哪个函数使用了什么上下文,它如何运行,最终你会完全的掌握DAX语言。