Power BI--DAX函数入门

目录

 

Power BI--DAX函数入门

概述

度量值

计算列

计算表

行级别安全性

数据类型

运算符

运算符书写规范

聚合函数

CALCULATE函数

ALL函数

ALLEXCEPT和ALLSELECTED函数

FILTER函数


Power BI--DAX函数入门

概述

DAX的全称是DATA ANALYSIS EXPRESSION,是一个公式表达式语言。

DAX公式包括函数、运算符和值,用于对表格数据模型中相关表和列中的数据执行高级计算和查询。

用在度量值、计算列、计算表和行级别安全性中使用。

度量值

度量值的作用在于解决数据并不包含解决某些重要问题所需的所有内容。

度量值是数据分析中的一个关键。度量值的计算结果也会始终随着你与报表的交互而改变,

以便进行快速和动态的临时数据浏览。

度量值在Power BI中的图标是这个计算器符号

可以将度量值理解为一个根据上下文自动改变计算范围,并按照规定的计算规则算出结果的计算器。

计算列

凭借计算列,可以将新数据添加到模型中已存在的表。但请勿从数据源查询值并将值加载到新列中,

而是创建用于定义列值的数据分析表达式DAX公式。

与使用查询编辑器中的“添加自定义列”创建查询中包含的自定义列不同,在“报表”视图或“数据”视图中创建的计算列

以你已加载到模型中的数据为基础(如示例,计算结果是所有数据的总和,而不是行累计的结果)。

计算表

大多数情况下,你都是通过将数据从外部数据源导入模型来创建表。但借助“计算表”,你可以根据已加载到模型中的数据添加新表。

你可以创建定义表的数据分析表达式DAX公式,而非从数据源中查询值,并将值加载到新表的列中。

计算表最适合于你希望将其作为模型的一部分而存储的中间计算和数据,而非在运行中计算的或作为查询结果而存储的中间计算和数据。

行级别安全性

使用行级别安全性时,DAX公式的计算结果必须为TRUE/FALSE布尔值条件,以定义特定角色成员的查询结果可以返回哪些行。

用于限制不同角色可以访问的数据范围。

数据类型

数据类型数据类型说明
小数64位(八字节)浮点数。表示的最大精度为15位数。
定点小数

小数分隔符的位置是固定的。小数分隔符右侧始终有四位数,并可表示有意义的19位数。

用在“小数”类型舍入可能会引发错误的情况下。货币类型

整数64位(八字节)整数值。支持19位数;在需要控制舍入的情况下,整数类型非常有用。
百分比显示乘以100的数字,并在右侧附加百分号(%);始终显示小数点分隔符右侧两位数。
日期/时间表示日期和时间值。这种类型实际上以整数存储,两种数据类型可以相互转换。
日期仅表示日期(没有时间部分)。转换为模型时,日期与表示分数值的带零日期/时间值相同。
时间仅表示时间(没有日期部分)。转换为模型时,时间值与小数位数左侧没有数字的日期/时间值相同。
日期/时间/时区带时区偏移量的UTC日期/时间。将这种数据类型加载到模型中时,它将被转换为日期/时间类型。
持续时间时间长度。加载到模型中时,它将被转换为整数类型,可以将其添加到日期/时间字段,或从日期/时间字段中减去。
文本Unicode字符数据字符串。
True/False布尔值
二进制用于表示具有二进制格式的任何其他数据。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

运算符

 

算术运算符含义示例
+3+3
-3-3
*3*4
/6/3
^求幂16^4
比较运算符含义示例
=等于'产品表'[咖啡类型]='拿铁‘
>大于'日历表'[日期]>"Jan 1 2005"
<小于'销售数据表'[数量]<5
>=大于等于[销售量]>=200
<=小于等于[销售量]<=100
文本运算符含义示例
&连接两个值生成一个连续的文本'产品表'[咖啡类型]&'产品表’[杯型]
逻辑运算符含义示例
&&和,同时满足几个条件 
||或,满足几个条件中的一个 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


运算符书写规范

度量值 = CALCULATE ([度量值],'表名'[列名] = ‘值’)

在DAX中度量值和本表中的列名可以直接用[]引用,而其他表中的列名必须通过'表名'[列名]引用。

聚合函数

聚合函数就是我们平时常说的统计函数,主要用来计算(求和,计数和平均值等)。

这里主要讲解一下几个函数:

函数名称函数说明示例
SUM求和
AVERAGE求均值
MAX求最大值
MIN求最小值
COUNTROWS求行个数
COUNTA计算列中单元格不为空的数目 
COUNTBLANK计算列中单元格为空白的数量 
DISTINCTCOUNT求不重复值计数

 

 

 

 

 

CALCULATE函数

CALCULATE函数被称作DAX语言中最强大的函数。

CALCULATE函数自带的筛选条件可以更改和覆盖初始的筛选条件。

语法:

CALCULATE(<expression>[,<filter1>[,<filter2>[,...]]])

expression    要进行求值的表达式

filter1,filter2      可选,定义筛选器或筛选器修饰符函数的布尔表达式或表表达式

返回值:

作为表达式结果的值

CALCULATE函数运算步骤:

step1:度量值会识别它的初始筛选条件。

step2:CALCULATE函数筛选自身条件,当自身条件与初始筛选条件冲突时,剔除初始筛选条件,以自身筛选条件为基础,进行计算。

举例:

例子中产品名称列为初始筛选条件,而美式中杯销售量中由于使用CALCULATE函数消除了初始筛选条件的影响,故会出现不同。

ALL函数

作用:

返回表中的所有行或列中的所有值,同时忽略可能已应用的任何筛选器。此函数对于清除表中的所有行的筛选器以及创建针对表中所有行的计算非常有用。

语法:

ALL([<table>|<column>[,<column>[,...]]]])

参数:

table     要清除筛选器的表

column   要清除筛选器的列

table或列必须时基表或基列。

此函数不能单独使用,而是用作中间函数。列必须是同一张表中的。

返回值:

已删除的带筛选器的表或列

举例:

ALLEXCEPT函数

作用:

删除表中所有上下文筛选器,已应用于指定列的筛选器除外。

语法:

ALLEXCEPT(<table>,<column>[,<column>[,...]])

参数:

table     要从中删除所有上下文筛选器的表,针对后续参数中指定的那些列的筛选器除外

column    必须保留上下文筛选器的列

返回值:

删除了所有筛选器(针对指定列的筛选器除外)的一个表。

此函数不单独使用,而是用作中间函数,可用于更改执行其他计算的结果集。

举例:

 

ALLSELECTED函数

作用:

删除当前查询的列和行中的上下文筛选器,同时保留所有其他上下文筛选器或显示筛选器。

语法:

ALLSELECTED([<table>|<column>[,<column[,...]]])

参数:

table       使用标准DAX语法的现有表的名称

column     使用标准DAX语法的现有列的名称

返回值:

不带任何列和行筛选器的查询的上下文。

举例:

FILTER函数

作用:

返回一个表,用于表示另一个表或表达式的子集。

语法:

FILTER(<table>,<filter>)

参数:

table    要筛选的表,也可以是结果为表的表达式

filter    要为表的每一行计算的布尔表达式

返回值:

只包含已筛选行的表

举例:

 

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习_程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值