抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Power BI 的主要对象是数据,而对数据进行各种运算是数据分析的基本工作。

运算符

运算符含义
+加法
-减法
*乘法
/除法
^乘幂
=等于(包括判断等号和赋值等号)
>大于
<小于
>=大于等于
<=小于等于
<>不等于
&&
||
not
&字符串拼接
in包含
not in不包含
  • 对能够转换为数值的文本进行数值运算时,系统会尝试将其当做数值进行运算
  • 不论是数值还是能够转换为数值的文本,字符串拼接都会将它们当做文本进行拼接
  • 数据元素集合使用 {} 定义,元素间使用 , 分隔

新建数据

数据的组织形式主要有三种:

  • 数据表
  • 数据列
  • 度量值

度量值和数据列不能脱离数据表单独存在,但数据列和度量值之间不一定必须包含某种关系。

即使是只包含一个数据列或一个度量值的表,形式上也是一个数据表

取用数据

使用表中数据的方法为'表名'[数据列名]'表名'[度量值名]。在同张表的状况下,表名项可以省略。

从其他表获取数据主要分为两种:

  • 从多端获取一端:RELATED 函数
  • 从一端获取多端:RELATEDTABLE 函数

数据筛选计算

LOOKUPVALUE

当两个表之间具有部分相同的数据列时,可以通过 LOOKUPVALUE 函数来筛选具有相同数据列的指定数据。例如在表 A 的新建列中输入 P = LOOKUPVALUE('B'[X],'B'[Y],'A'[Z]) 会在表 A 中新生成列 P ,列 P 中的值为表 A 列 Z 的值与表 B 列 Y 的值相同的行的列 X 的值。

LOOKUPVALUE 的参数不一定只有三个,例如在这三个后面继续附加 B[M] 和 A[N] ,会在筛选过程中再附加一个限制,即筛选行还要满足表 A 列 N 与表 B 列 M 相同

CALCULATE

当想对度量值内具有某些特性的数值进行计算时,可以使用 CALCULATE 函数来筛选出度量值内符合指定要求的行进行原有运算。例如表达式 CALCULATE(a,'A'[X]=x) 会将度量值 a 中符合“ A 表的 X 列的值为 x ”的行提取出来,再进行度量值 a 原本定义的计算。

  • CALCULATE 函数不仅能处理度量值,而且还能处理除它之外的其它筛选器上下文
  • CALCULATE 函数的筛选项可以是定义筛选器或筛选器修饰符函数的布尔表达式或表表达式,并且不限制数量
  • 如果想在报表中实现筛选显示,那么就要求视觉对象的行或列的来源表与筛选条件中的表不一致

CALCULATETABLE

类似地,当想对数据表内具有某些特性的数值进行计算时,可以使用 CALCULATETABLE 函数来筛选出表内符合指定要求的行。例如表达式 CALCULATETABLE('A','B'[X]=x) 会将表 A 中符合“ B 表的 X 列的值为 x ”的行提取出来,将这些行相关联的 A 表的对应行抽取副本,构成新表。为简化说明,将第一参数的表称为样式表,其他参数的表称为筛选表。

  • CALCULATETABLE 函数不仅能处理表,而且还能处理表函数等值为表的内容
  • CALCULATETABLE 函数的筛选项可以是定义筛选器或筛选器修饰符函数的布尔表达式或表表达式,并且不限制数量
  • 作为筛选项的表可以是样式表(如示例中的表 A),也可以是与之在模型中有关系的表(如示例中的表 B),但不能是与样式表无关系的表
  • 样式表必须是筛选表的事实表,或者两者是同一张表,即“只能由维度表筛选事实表”

FILTER

若想对数据表中具有某些特性的行进行筛选,可以使用 FILTER 函数。例如表达式 FILTER('A','A'[X]=x) 会提取出满足 A 表 X 列值为 x 的行,重组成新表返回。

  • FILTER 函数只能处理表,不能处理表达式
  • FILTER 函数只能处理维度表,不能处理事实表
  • FILTER 函数可以使用一些 CALCULATE 函数不能使用的表筛选表达式

FILTER 函数与 CALCULATE 函数在表达情况相同的表筛选表达式时,表现出的结果在形式上会有些许不同

ALL

由于某些函数或度量值具有筛选器上下文特性,因此在某些需要去除掉筛选功能的状况下,可以使用 ALL 函数来返回表中的所有行或列中的所有值,同时忽略可能已应用的任何筛选器。

  • 当参数为表的时候,该函数会忽略所有的筛选条件,不论是图表还是切片器
  • 当参数为列的时候,该函数只会忽略针对该列的所有筛选条件,而表的其他列和表本身的筛选条件不受影响

ALLSELECT

该函数整体用法与 ALL 函数相似,区别在于 ALLSELECT 函数会删除当前查询的列和行中的上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器。

ALLEXCEPT

该函数的整体用法与 ALL 函数的列用法相近,区别在于该函数列出的列是指不忽略筛选条件的数据列,其他部分与 ALL 函数的列参数用法一致。

数据统计计算

COUNTROWS

可以使用 COUNTROWS 函数来计算表中行的数量。例如 COUNTROWS(A) 会计算表 A 中行的数量。

COUNTROWS 函数最常见的用法是结合行上下文、新表或表函数等进行计数

表操作

VALUES

可以使用 VALUES 函数来从事实表中创建一个(临时或长期)维度表。例如 VALUES('A'[X]) 可以返回一个以表 A 列 X 为基准的维度表,虽然结果只有一列,但仍算作一个表。

VALUES 函数最常见的用法是嵌套在公式中作为中间函数以获取一个非重复值的列表,这些值可进行计数或用于筛选其他值/对其他值进行求和

评论



This is a picture without description

This is a picture without description This is a picture without description This is a picture without description