Power BI DAX语言简介1 - 基本构成

微软的Power BI使用了Data Analysis Expressions (DAX)语言对数据进行计算和分析。如果之前经常使用Excel,那么对DAX语言上手应该比较容易。它的使用方法与常规的Excel计算表达式有相似之处,可以对数据进行算术运算,关系运算或者逻辑运算。但是DAX与Excel使用的公式有本质区别,Excel的公式是针对某一区间进行运算的,例如指定计算A1到A10这区间内数字的总和。而DAX是针对表单和列进行计算的。在Power BI中,你无法直接指定只计算某几列数值之和,如果不用Filter(过滤)方法,要求和,就只能对整个列的数值求和。

虽然只要有数据,Power BI就可以创建Report,但是几乎没有任何原始数据导入到Power BI中就可以生成有实际应用意义的Report,因此使用DAX语言对Power BI中的数据进行计算整理基本是每次创建Report的必要步骤。

DAX语言的入门比较简单,特别是对于已经有用Excel整理数据经验的人。难点是后续如何将多个公式结合到一起进行整理运算。DAX语言主要包含三部分:Syntax(语法), Functions(函数), and Context (上下文)。

  • Syntax(语法)
    DAX中的语法主要定义了函数的组成部分,以及规范了函数应该如何进行书写。
  • Functions (函数)
    函数主要是DAX中预先设定好的一系列公式,通过带入特定参数来获取计算结果。主要支持的函数类型包括:
    – 日期和时间函数 (Data and Time Functions)
    主要作用是获取相关时间数据,类似于Excel表中的时间函数,常用于与时间相关的统计报表中。
    – 筛选器函数 (Filter Functions)
    开篇介绍过,由于DAX是针对表单和列进行计算的,无法直接对特点某些单元格内容进行计算,因此需要引用筛选器函数现将需要计算的单元格通过筛选器过滤出来,之后再应用其他类型的函数进行计算。
    – 信息函数 (Information Functions)
    信息函数主要功能是将某特定单元格或者行作为参数,来查找其他单元格或行看其是否与预期的类型相匹配。其中,很常用的LOOKUPVALUE就是一种信息函数。
    – 逻辑函数 (Logical Functions)
    主要负责进行逻辑运算的函数,常用的包括:AND,OR,NOT,IF,TRUE,SWITCH等。
    – 数学和三角函数
    与Excel中对应的函数功能极为相似,主要用来满足各种加减乘除,乘方开方,求导等数学和三角计算。
    – 统计函数 (Statistical Functions)
    主要用于统计学上的聚合操作。常用的函数包括:Count系列,Average系列,Max/Min系列等。
    – 文本函数
    可以返回部分字符串、搜索字符串中的文本或连接字符串。当需要对某一列内容进行提取时经常会用到文本函数,例如,FIND,LEFT/Right,LEN,MID,Replace以及Search等。
    – 时间智能函数 (Time Intelligence Functions )
    与主要目的是通过获取时间点来当做参数的Data and Time类型函数不同,时间智能函数主要用来构建时间段,然后生成和比较针对这些时间段的计算。例如,可以针对一个时间列获取最早日期和最新日期(FIRSTDATE函数和LASTDATE函数)。
  • 上下文(Context)
    上下文是DAX中一个重要概念,通过引入Context,DAX语言一定程度上实现了动态分析的功能。理解上下文概念对与在Power BI中构造数据以及排查问题很有帮助,但是理解这种概念稍微有点绕脑。上下文主要有两种类型,行上下文和筛选上下文,下面用一张学生成绩表来举个例子来说明上下文概念。
    这里写图片描述
    – 行上下文
    行上下文通俗的可以理解为对当前行信息的整理。例如在这张成绩表中可以创建一个计算列来求学生的总成绩。通过在这个列中的表达式计算,每一行都会对应的生成各自的数值,此时就形成了一个行上下文概念。
    这里写图片描述
    – 筛选上下文
    筛选上下文可以简单的按照字面意思来解释,记载某种筛选条件下获得的信息。筛选上下文并不单独存在,而是依附应用于行上下文之上。例如,在得到每个学生的总成绩之后,我们可以进一步的获取出每个班的平均分,在这一步的计算上我们需要以班级作为过滤条件来计算平均分。此时筛选上下文的概念就出现了。
    这里写图片描述
  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值