上下文为何物
1、Power Pivot 是什么?
Power Pivot 是一种数据建模技术,用于创建数据模型,建立关系,以及创建计算。
2、Power Pivot 与 上下文的关系是什么?
Power Pivot 中的公式受到在数据透视表中应用的筛选器、表之间对的关系以及公式中使用的筛选器的影响。它们之间运作的桥梁是上下文,通过上下文执行动态分析。
3、上下文有哪些?
DAX查询上下文
查询上下文是指为公式隐式检索的数据子集。 将度量值或其他值字段放入数据透视表中的单元格时, Power Pivot 引擎会检查行和列标题、切片器以及报表筛选器以确定上下文。 然后,Power Pivot 引擎会进行必要的计算,以填充透视数据表中的每个单元格。 检索的数据集是各单元格的查询上下文。
DAX行上下文
1、定义:
当再计算列中创建公式时,该公式的行上下文将包括来自当前行中所有列的值。 如果该表与其他表相关,则上下文还包括来自该其他表中与当前行相关的所有值。行上下文自动遵循表之间的关系,以便于确定相关表中哪些行与当前行相关联。
2、须知:
- 行上下文标识当前行,仅仅用于迭代,不会筛选任何数据,也不会自动利用关系。
- 在当前的行上下文中,可以通过RELATED 和 RELATEDTABLE函数利用关系,以获取相关联表中得数据。
- 行上下文存在于计算列或迭代函数中,没有其他方法可以创建行上下文,计算列和迭代函数会自动创建行上下文。
3、计算列的过程:
- DAX从表中的第一行开始迭代,首先创建了包含该行的行上下文并对表达式求值;
- 然后移到第二行,再次求出表达式;
- 有多少行需要被计算,行上下文就创建了多少次。
迭代函数执行过程
- 第一步:过滤数据,函数中的参数数据表受到筛选上下文的影响,只返回过滤之后的数据行,用于确定迭代(逐行扫描)的表的范围。
- 第二步:执行迭代计算,函数中的参数表达式处于行上下文中。
DAX筛选上下文
定义:创建的度量值再筛选上下文中执行公式的计算,筛选上下文是对表应用过滤之后,数据被筛选方向后的上下文。由三部分构成:关系、查询上下文中的单元格(每行对应的列值)以及报表元素之间的交互构成的过滤,外部切片器组成的显式过滤。
- 关系:数据模型中创建的关系,筛选上下文自动使用关系。
- 查询上下文:在当前查询的上下文中,每行的列值也会作为过滤器。
- 外部切片器:在报表中设置切片器,是在查询上下文外部设置的过滤器。
本文来自个人在官方博客的学习和总结,链接 DAX上下文 贴出来了哈~