随笔分类 - PowerBI和数据分析 / Power BI DAX
摘要:ALLEXCEPT 函数的作用是除了参数中指定的列之外,移除表上其他列的筛选上下文,也就是说,只保留表中指定列上的筛选上下文,而把表中其他列上筛选上下文都移除。 ALLEXCEPT(<table>,<column>[,<column>[,…]]) ALLEXCEPT的两个用法: 当用作 CALCUL
阅读全文
摘要:关于计算上下文的规则: 筛选上下文用于筛选数据。 行上下文用于迭代。 注意:行上下文不用于筛选,也就是说行上下文对应的筛选上下文为空,而CALCULATE函数可以把行上下文转换为筛选上下文。 一,CALCULATE函数根据行上下文创建筛选上下文 CALCULATE函数的强大之处:根据行上下文创建筛选
阅读全文
摘要:表连接是指两张表根据关联字段,组合成一个数据集。表连接不仅可以利用数据模型中已有的关系,而且可以利用DAX表达式基于表的任意列定义连接条件。因此,在DAX中,实现表与表之间的连接,有两种方式: 第一种方式:利用数据模型中的现有关系,以便查询包含在不同表中的数据。 第二种方式:编写 DAX 表达式创建
阅读全文
摘要:SUMMARIZECOLUMNS是一个专门用于查询和计算表的函数,主要包含分组列和扩展列。 分组列是用于分组的列,只能来源于基础表中已有的列,分组列可以来源于同一个表,也可以来源于相关的列。 扩展列是由name和expression对构成的,name是字符串,expression是包含聚合函数的表达
阅读全文
摘要:迭代是指逐行遍历表,访问一行叫做一次迭代,而每一次迭代得到的结果会作为下一次迭代的初始值。迭代函数至少拥有两个参数: 第一个参数:要遍历的行集 第二个参数:对同一行的不同字段要执行计算的表达式。 一,迭代函数计算的过程 最常见的迭代函数是SUMX函数,第一个参数Sales是要迭代的表或表值表达式,第
阅读全文
摘要:CALCULATE()函数是DAX中最重要和最复杂的函数,用于计算处在筛选上下文中的表达式的值。 CALCULATE(<expression>,<filter1>,<filter2> … ) 第一个参数是用于计值的表达式,在计值之前,CALCULATE将首先计算<filter>参数,并与现有的外部筛
阅读全文
摘要:Visual上的任何一行或一列都是一个过滤上下文,切片器也是一个过滤上下文,或者报表上其他类型的过滤器,甚至Visual之间的交互,这些过滤上下文共同构成了一个单元格的过滤上下文。总的来说,报表的每个元素都可以创建过滤上下文,并且报表的每个单元格都有不同的过滤上下文。总结来说,筛选上下文是在报表中创
阅读全文
摘要:计算上下文是DAX表达式求值的环境,任何DAX表达式都是在上下文中求值的。行上下文和筛选上下文是DAX中仅有的上下文类型,把这两种上下文称为计算上下文。计算上下文用于限定公式计算的环境,当上下文变化时,相同的公式会计算出不同的结果。 在PowerBI中创建的计算列是在行上下文中执行计算,创建的度量(
阅读全文
摘要:DAX的全称是Data Analysis eXpression,直译过来就是数据分析表达式,是在Microsoft Power BI,SSAS和Power Pivoting for Excel中使用的查询语言。本文用Power BI来学习数据模型。 一,理解数据模型 数据模型是由一组表和关系构成的结
阅读全文
摘要:PowerBI的数据模型是表格模型,只能基于单个列创建关系,不支持基于多列的关系。但是,可以通过把相关的多个列组合成一个计算列,以它作为主键来创建关系。在数据模型中创建的关系,称作物理关系,物理关系会存储到数据模型中,虚拟关系只存在于DAX代码中,相比虚拟关系,利用物理关系的查询性能会更高。 一,使
阅读全文