DAX语言.docx
- 文档编号:8820357
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:218.51KB
DAX语言.docx
《DAX语言.docx》由会员分享,可在线阅读,更多相关《DAX语言.docx(12页珍藏版)》请在冰豆网上搜索。
DAX语言
DAX语言
DAX语言简介
DAX公式常用的数据类型
整数、小数、文本、日期。
文本:
不能做加减乘除运算,否则公式报错。
1简介
是一门函数语言,全称DataAnalysisExpressions,即数据分析表达式,以公式的方法来完成计算,也叫公式语言。
允许用户在PowerPivot表(“计算列”)和Excel数据透视表(“度量值”)中定义自定义计算。
DAX包含一些在Excel公式中使用的函数,此外还包含其他设计用于处理关系数据和执行动态聚合的函数。
2特点
●易于使用:
DAX函数使用标准Excel公式语法,并且共用一部分函数;
●处理关系数据:
基于表格、列和关系建立的关系型数据模型;
●透视表交互:
通过基于数据库建立的透视表进行分析
3注意事项
●DAX函数始终引用完整的列或表。
如果想要仅使用表或列中的特定值,则可以向公式中添加筛选器。
●如果想要逐行自定义计算,PowerPivot可提供允许您使用当前行值或相关值执行计算(因上下文而异)的函数。
●DAX包含一种函数,此类函数返回表作为其结果,而不是返回单个值。
这些函数可用于向其他函数提供输入,以便计算整个表或列的值。
●一些DAX函数提供“时间智能”,通过该功能,您可以使用有效日期范围创建计算,并比较并行时间段内的结果。
4公式使用位置
可以在PowerPivot表中或者Excel的数据透视表中使用DAX公式:
●可以通过添加列,然后在公式栏中键入一个表达式,在“计算列”中使用公式。
您在PowerPivot窗口中创建这些公式。
有关详细信息,请参阅创建计算列。
●可以在“度量值”中使用公式。
可以通过在现有PowerPivot数据透视表或数据透视图中单击“添加度量值”,在Excel中创建这些公式。
有关详细信息,请参阅创建度量值。
5使用公式栏创建公式
与Excel类似,PowerPivot提供了公式栏和记忆式键入功能,前者使用户可以更方便地创建和编辑公式,后者可以尽量减少键入和语法错误。
输入表名称开始键入表名称。
公式记忆式键入功能会提供一个下拉列表,其中包含以这些字母开头的有效名称。
输入列名称键入括号,然后从当前表的列清单中选择列。
对于其他表中的列,首先键入表名称的前几个字母,然后从记忆式键入下拉列表中选择该列。
6DAX计算类型
●计算列
●计算度量值
6.1DAX表名和列名语法
创建新的列或度量值,表名的一般格式:
'TableName'[ColumnName]
如果表名中有空格,那么表名周围的单引号则是必需的。
如果表名没有空格,则可以省略单引号,语法如下:
TableName[ColumnName]
也可以完全省略表名而只使用列名,但这对于清晰的函数来说不是一个好的做法。
列名称必须始终包含方括号。
最佳做法是执行以下操作:
●表名中无空格;
●始终在公式中包含表名(不要将其省略掉,即使DAX允许)。
6.2创建计算列
当需要划分或筛选值,或者要对表中的每一行进行计算时,计算列非常有用。
计算列所需元素:
●新的列名
●至少一个函数或表达式
如果在计算列公式中引用一个表或列,则无需再表中指定行——PowerBI会为每个计算的当前行计算列。
6.3创建计算度量值
当计算百分比或比率,或者需要复杂的聚合时,使用计算度量值。
计算度量值的必需元素与计算列的必需元素是相同的:
●新的度量值名称
●至少一个函数或表达式
7DAX函数
DAX拥有许多可用于成形、组织或分析数据的函数。
●聚合函数
●计数函数
●逻辑函数
●信息函数
●文本函数
●日期函数
●…
7.1聚合函数
DAX提供多种聚合函数,包括以下常用函数:
●SUM
●AVERAGE
●MIN
●MAX
●SUMX(以及其他X函数)
这些函数仅适用于数字列,并通常一次只能聚合一列。
但是以X结尾的特殊聚合函数(例如SUMX则可同时处理多列。
这些函数循环访问表,并为每一行计算表达式)。
(1)求销售的咖啡杯数:
[销售量]=Sum(‘销售数量表’[数量])
(2)求数量列的平均值:
[平均销售量]=Average(‘销售数据表’[销售量])
(3)将每一行数据视为一位顾客购买的订单,求订单中最大的杯数:
[最大杯数]=Max(‘销售数据表’[数量])
7.2计数函数
DAX中经常使用的计数函数包括:
●COUNT
●COUNTA:
计算列中单元格不为空的数目
●COUNTBLANK:
计算列中单元格为空白的数量
●COUNTROWS:
求表中行的个数
●DISTINCTCOUNT:
对列中不重复值计数
这些函数用来计数不同的元素,如非重复值、非空值和表行。
(1)数据表中的每一行都是一笔订单,求行的个数就是求订单数量
[订单数量]=Countrows(‘销售数据表’)
(2)创建一个门店数量的度量值:
[门店数量]=Distinctcount(‘销售数据表’[门店])
7.3逻辑函数
DAX的逻辑函数包括:
●AND
●OR
●NOT
●IF
●IFERROR
这些特殊函数还可以用运算符表达。
例如,在DAX公式中AND可以输入为&&。
如果公式中存在两个以上条件,则可以使用运算符(如&&),但在其他情况最好使用函数名本身(如AND),以增强DAX代码可读性。
7.4信息函数
DAX中的信息函数包括:
●ISBLANK
●ISNUMBER
●ISTEXT
●ISNONTEXT
●ISERROR
尽管这些函数在具体情况下有用,但提前知道列的数据类型,而不依赖这些函数来提供数据类型仍很有价值。
DAX使用MAX和MIN函数来聚合和比较值。
7.5文本函数
DAX中的文本函数包括:
●CONCATENTATE
●REPLACE
●SEARCH
●UPPER
●FIXED
这些文本函数与同名的Excel函数工作方式类似。
7.6日期函数
DAX包含以下日期函数:
●DATE
●HOUR
●NOW
●EOMONTH
●WEEKDAY
尽管这些函数对于从日期值中计算和提取信息很有用,但它们并不适用于使用日期表的时间智能。
7.7Calculate函数
计算由指定筛选器修改的上下文中的表达式。
语法:
CALCULATE(
参数:
术语
定义
expression
要进行计算的表达式
filter1,filter2,…
(可选)定义筛选器的布尔表达式或表达式的逗号分隔的列表
Eg:
Calculate销售量=calculate([销售量],’产品表’[咖啡种类]=”拿铁”,’产品表’[杯型]=”中”)
7.8All函数
返回表中的所有行或返回列中的所有值,同时忽略可能已应用的任何筛选器。
可用于清楚筛选器并对表中的所有行创建计算。
语法:
ALL({