Power BI----DAX 再复习(DAX基础、基础函数)

DAX基础

  • 一、数据模型
      • 模型
      • 关系
  • 二、基础函数
    • 1.时间日期函数
    • 2.关系函数
    • 3. 转换函数
    • 4.文本函数
    • 5.聚合函数
    • 6.逻辑函数
    • 7.三角函数和数学函数
    • 8.信息函数

  DAX 全称 Data Analysis eXpressions,是面向 Microsoft Power BI、Microsoft SQL Server Analysis Services (SSAS)和 Microsoft Power Pivot for Excel 的编程式数据分析语言。 上手很简单,但是要学通学精却相当复杂,尤其涉及到上下文这个概念。

  在此,借助Power BI 极客的讲解,在自己复习记录一遍。

一、数据模型

烂程序员关心的是代码,好程序员关心的是数据结构和他们之间的关系
                                      — Linux 创始人 Torvalds

模型

  模型,我之前的理解和学习中,一直认为模型就是算法模型,诸如回归、、决策树、朴素贝叶斯等模型;而现在在Power BI中说的模型更多的是指数据模型

  数据模型是现实世界的抽象。换句话说,数据模型就是表与表之间构成的各种关系。有了关系之后,就可以实现多表联动。

  模型又按其结构形状,分星型模型和雪花模型,不同的模型对业务的适应度也不相同。

关系

  前面也说了,模型就是表与表之间的关系构成。最简单模型的就是单个表;多个表之间的关系有三种,一对一、一对多、多对一,还有种特殊的多对对。都可以在Power BI的模型界面进行设计。

Power BI----DAX 再复习(DAX基础、基础函数)_第1张图片
  其中,*号代表多。

二、基础函数

  这里介绍的函数基本都是和Excel相对应的一些函数,只是对一些又特殊区别的做一点补充解释。

1.时间日期函数

函数 说明 示例 备注
date 返回时间格式 date(2023,2,28) /
day/month/year/QUARTER 返回相应的天/月/年/季度 DAY(“2022-2-23”) /
HOUR/MINUTE/SECOND 返回相应的小时/分钟/秒 SECOND(“2022-2-23 23:25:36”) /
now/today 返回当前时间 today() now返回时间;today只显示日期
EDATE 返回按指定月数平移后的日期 EDATE(today(),2) 第二个参数可以为负,表示前n月
EOMONTH 返回指定月数平移后的月份的最后一天 EOMONTH(today(),2) 它和edate的区别在于它返回该月的最后一天
DATEVALUE 将文本格式的日期转换为日期时间格式 DATEVALUE(“2022-2-23”) /
WEEKDAY 返回当前日期对应的星期数 WEEKDAY(today(),3) 第二个参数表示每周从星期几开始算,1代表周日

2.关系函数

  为了便于在公式内部操作模型关系,DAX 提供了两个非常有用的函数:RELATED 和 RELATEDTABLE
换句话说,就是当你在一个表想使用另一个表的列时,就需要这个两个函数的帮助,前提是两个表构建了数据关系。

  两者的区别是RELATED 返回列,RELATEDTABLE返回表

3. 转换函数

  DAX 根据运算符的需要执行数据类型的自动转换。但还是提供了一组函数用来执行显示的类型转换。

  • CURRENCY:将表达式结果转换为货币类型
  • INT:将表达式转换为整数(向下舍入)
  • TRUNC:通过删除数字的小数或小数部分将数字截断为整数(这里需要注意和int的区别
  • ROUND:将数字四舍五入为指定的数字
  • MROUND:返回一个四舍五入到所需倍数 的数字。若除以指定倍数后的余数大于或等于倍数的一半,则四舍五入。
  • VALUE:将字符串转换为数字格式(如不是数字,就会报错
  • FORMAT:将值转换为指定数字格式的文本(可以自己指定具体格式,需要注意的是,转换完的数据是字符串,不能当数值用

4.文本函数

  DAX 中的文本函数都与 Excel 差不多, 这里不在做详细解释,只列举函数:

  • CONCATENATE:拼接两个字符串/数据
  • EXACT:判断两个字符串/数字是否相等
  • FIND:查找
  • FIXED:调整数字格式,可指定小数位数
  • FORMAT:格式化
  • LEFT:从左截取字符串
  • RIGHT:从右截取字符串
  • LEN:计算字符串长度
  • UPPER:字符串大写
  • LOWER:字符串小写
  • MID:从指定位置截取指定数量的字符
  • REPLACE:替换
  • REPT:字符串重复
  • SEARCH:查找
  • SUBSTITUTE:替换(和replace的区别是,前者按是定位置替换,后者按指定字符替换)
  • TRIM:清空字符串两边的空格(中间的没法清空

5.聚合函数

  聚合函数在Excel中也是最常见的,这里不在赘述,常见的聚合函数有:SUM、AVERAGE、MIN、MAX、COUNT 、COUNTBLANK (返回列中空单元格的数量)、COUNTROWS (返回表中的行数)、DISTINCTCOUNT (返回列中非重复值的个数)等。

  除了上述的常规的聚合函数,Power BI中给还有一类X函数,例如:SUMX()、MAXX()等,这类函数叫迭代函数,它们的计算逻辑是先按行进行表达式的值,再按聚合方式求结果。

sumx(sales[price] * 0.9] :先对每行的价格打九折,然后计算打完折的合计值

6.逻辑函数

  同上,逻辑函数也和Excel一样,如 AND, FALSE, IF, IFERROR, NOT, TRUE 和 OR。

这里有个函数需要重点说明下:SWITCH函数
正如它的名字,它就相当于一个开关,通过不同的条件,执行不同的表达式,它在BI中有很强大的作用。

参数:
 表达式:可以是式子,也可以是值
 值1:条件
 结果1:满足条件1后执行的结果
 其他条件及对应结果

例如:

变化排名 = SWITCH(
SELECTEDVALUE(‘top’[变化]),
“TOP”,RANKX(all(‘产品名’),CALCULATE([变化量])),
“BOT”,RANKX(all(‘产品名’),CALCULATE([变化量]),ASC))

上述参数从参数中选择值,当选择的值是TOP时,按降序排名,如果选择的值是BOT时,按升序排名;以实现通过选择不同的按钮,获得不同的数据,再BI中效果展示如下图:
Power BI----DAX 再复习(DAX基础、基础函数)_第2张图片
Power BI----DAX 再复习(DAX基础、基础函数)_第3张图片

7.三角函数和数学函数

  三角函数就是数学中的三角函数,DAX 提供了丰富的三角函数,这些函数对于某些计算非常有用。因为它们的用法比较简单,这里不再深入介绍。

  常用的三角函数有:SIN、COS、TAN、SQRT等

  同样,数学函数这里不再深入介绍。

  常用的数学函数有:ABS(绝对值)、DIVIDE(除)、EXP(次幂)、FACT(阶乘)、LOG(对数)、PI(圆周率)、RAND(随机数)等

8.信息函数

  信息函数可以用来分析表达式的类型,所有这些函数都以 IS- 开头,返回一个 TRUE/FALSE 值,可以在任何逻辑表达式中使用,我一般把它们叫判断函数。

  • ISBLANK:检查值是否为空,并返回 TRUE 或 FALSE
  • ISERROR:检查值是否为错误,并返回 TRUE 或 FALSE
  • ISLOGICAL:检查值是否是逻辑值(TRUE 或 FALSE),并返回 TRUE 或 FALSE
  • ISTEXT:检查值是否为文本,并返回 TRUE 或 FALSE
  • ISNUMBER:检查值是否为数字,并返回 TRUE 或 FALSE
  • ISEMPTY:检查表或表表达式是否为空

你可能感兴趣的:(Power,BI,Power,BI)