什么是DAX函数?DAX 是一种编程式数据分析语言,它创建于 2010 年,随着时间的推移,DAX 已经在商业智能和 Excel 社区中逐渐流行起来。微软在官方的介绍中称 DAX 是一种简单的语言,它可以让没有任何 IT 背景的普通人借助 Excel 这样的工具就可以处理几百万、上千万行的数据。
我们知道PowerBI的核心功能就是数据建模,如果要做数据建模,必然缺少不了构建函数间的关系,这时候就需要大量的DAX函数来构建这种关系,学习DAX函数,你需要学习它的理论,并通过案例分析来反复实践,以此来更好地理解,本文将常用的DAX函数总结如下,下面一起学习。
PowerBI中常用的DAX函数
一、聚合函数
SUM
对某个列中的所有数值求和。
SUM(<column>)
AVERAGE
返回列中所有数字的平均值(算术平均值)。
AVERAGE(<column>)
MIN
返回列中或两个标量表达式之间的最小值。
MIN(<column>)
MIN(<expression1>, <expression2>)
MAX
返回列中或两个标量表达式之间的最大值。
MAX(<column>)
MAX(<expression1>, <expression2>)
SUMX
返回为表中的每一行计算的表达式的和。
SUMX(<table>, <expression>)
二、计数函数
COUNT
对包含非空值的列的单元格数目进行计数。
COUNT(<column>)
COUNTA
对不为空的列中的单元格数目进行计数。
COUNTA(<column>)
COUNTBLANK
对列中的空白单元格数目进行计数。
COUNTBLANK(<column>)
COUNTROWS
对指定表或表达式定义的表中的行数目进行计数。
COUNTROWS(<table>)
DISTINCTCOUNT
对列中的非重复值数目进行计数。
DISTINCTCOUNT(<column>)
三、逻辑函数
AND
检查两个参数是否均为 TRUE,如果两个参数都是 TRUE,则返回 TRUE。否则返回 False。
AND(<logical1>,<logical2>)
OR
检查某一个参数是否为 TRUE,如果是,则返回 TRUE。如果两个参数均为 FALSE,此函数则返回 FALSE。
OR(<logical1>,<logical2>)
NOT
将 FALSE 更改为 TRUE,或者将 TRUE 更改为 FALSE。
NOT(<logical>)
IF
检查条件,如果为 TRUE,则返回一个值,否则返回第二个值。
IF(<logical_test>, <value_if_true>[, <value_if_false>])
IFERROR
如果表达式返回错误,则会对表达式进行求值并返回指定的值;否则会返回表达式本身的值。
IFERROR(value, value_if_error)
SWITCH
针对值列表计算表达式,并返回多个可能的结果表达式之一。
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
四、信息函数
ISBLANK
检查值是否为空白,并返回 TRUE 或 FALSE。
ISBLANK(<value>)
ISNUMBER
检查值是否为数值,并返回 TRUE 或 FALSE。
ISNUMBER(<value>)
ISTEXT
检查值是否为文本,并返回 TRUE 或 FALSE。
ISTEXT(<value>)
ISNONTEXT
检查值是否为非文本(空单元格为非文本),并返回 TRUE 或 FALSE。
ISNONTEXT(<value>)
ISERROR
检查值是否错误,并返回 TRUE 或 FALSE。
ISERROR(<value>)
五、文本函数
CONVERT
将一种数据类型的表达式转换为另一种。
CONVERT(<Expression>, <Datatype>)
CONCATENTATE
将两个文本字符串联接成一个文本字符串。
CONCATENATE(<text1>, <text2>)
SUBSTITUTE
在文本字符串中将现有文本替换为新文本。
SUBSTITUTE(<text>, <old_text>, <new_text>, <instance_num>)
REPLACE
根据指定的字符数,将部分文本字符串替换为不同的文本字符串。
REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)
FIND
返回一个文本字符串在另一个文本字符串中的起始位置。FIND 区分大小写。
FIND(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
SEARCH
返回按从左向右的读取顺序首次找到特定字符或文本字符串的字符编号。搜索不区分大小写,会区分音调。
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
UPPER
将文本字符串转换为全大写字母。
UPPER (<text>)
FIXED
将数值舍入到指定的小数位数并将结果返回为文本。可以指定返回的结果带有或不带逗号。
FIXED(<number>, <decimals>, <no_commas>)
六、日期函数
DATE
以日期/时间格式返回指定的日期 。
DATE(<year>, <month>, <day>)
HOUR
以数字形式返回小时值,0 (12:00 A.M.) 到 23 (11:00 P.M.) 之间的数字。
HOUR(<datetime>)
NOW
以日期/时间格式返回当前日期和时间 。
NOW()
EOMONTH
以日期/时间格式返回指定月份数之前或之后的月份的最后一天的日期 。使用 EOMONTH 来计算适逢当月最后一天的到期日期或截止日期。
EOMONTH(<start_date>, <months>)
WEEKDAY
返回指示日期属于星期几的数字,1 到 7 之间的数字。默认情况下,日期范围是 1(星期日)到 7(星期六)。
WEEKDAY(<date>, <return_type>)
七、表函数
FILTER
返回一个表,用于表示另一个表或表达式的子集。
FILTER(<table>,<filter>)
CALCULATE
在已修改的筛选器上下文中计算表达式。
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
CALCULATETABLE
在已修改的筛选器上下文中计算表表达式。
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
ALL
返回表中的所有行或列中的所有值,同时忽略可能已应用的任何筛选器。此函数对于清除表中所有行的筛选器以及创建针对表中所有行的计算非常有用。
ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )
VALUES
将表示数值的文本字符串转换为数值。
VALUE(<text>)
DISTINCT
返回由一列组成的表,其中包含与指定列不同的值。换言之,会删除重复值并且仅返回唯一的值。通过删除另一个表或表达式中的重复行返回表。
DISTINCT(<column>)
DISTINCT(<table>)
RELATEDTABLE
在给定筛选器修改的上下文中计算表表达式。
RELATEDTABLE(<tableName>)
后台回复数据分析入门,获取数据分析入门资料
三年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路。