PowerBI/DAX之一些不常用但有用的函数

本篇文章将介绍一些使用频率较低但是作用又比较有用的函数。


1、FILTERS 函数

语法:

FILTERS ( <columnName> )

作用:

只考虑参数所指定列的直接筛选器,然后返回参数所指定列的可见数据去重后的单列表。

示例:

如下图所示 ,产品类别筛选器筛选了不存在的类别,那么产品表的可见数据应该为空才对,但因为FILTERS函数只考虑直接筛选,因此以下查询将忽略非产品名称字段上的筛选器,故最终返回了产品名称字段所筛选的两个产品。


2、GENERATESERIES 函数

语法:

GENERATESERIES ( <startValue>, <endValue>[, <incrementValue>] )

作用:

返回由第一参数与第二参数所指定范围的连续数值序列,并可以使用第三参数来控制增量,默认增量为1。

示例:

1、生成数字10到数字16的连续数值序列,如下图所示:

2、生成数字10到数字16的连续数值序列,但增量为2,如下图所示:


3、CONCATENATEX 函数

语法:

CONCATENATEX ( <table>, <expression>[, <delimiter> [, <orderBy_expression> [, <order>]]...] )

作用:

迭代第一参数的表的每一行,计算第二参数的表达式,然后将得到的结果串联到一个字符串中,由第三参数指定的分隔符进行分隔。其中,第四参数可以在串联成字符串前对第二参数的表达式结果进行排序,第五参数则用来控制升序(1/ASC)还是降序(0/DESC),省略时默认升序。

示例:

将所有产品名称合并成一个字符串,并用逗号分隔,如下图所示:


4、COALESCE 函数

语法:

COALESCE ( <expression>, <expression>[, <expression>]… )

作用:

返回第一个计算结果不为空(BLANK)的表达式的结果,若所有表达式的计算结果都为空,则返回空。

示例:

如下图所示,以下查询返回1,即第一个计算结果不为空的表达式。


5、ROW 函数

语法:

ROW ( <name>, <expression>[[,<name>, <expression>]…] )

作用:

返回一个单行表,其中包含由参数所定义的各个派生列。

示例:

1、使用ROW函数返回一行多列的表,如下图所示:

2、将ROW函数与GENERATE函数配合,在达到ADDCOLUMNS函数的效果的同时又能增加代码复用率,如下图所示:


6、CONTAINSSTRING 函数

语法:

CONTAINSSTRING ( <within_text>, <find_text> )

作用:

如果一个文本字符串中包含另一个文本字符串,则返回 TRUE,不区分大小写,支持通配符。

示例:

从一个文本字符串中查找是否包含关键词,如下图所示:


7、CONTAINSSTINGEXACT 函数

语法:

CONTAINSSTRINGEXACT ( <within_text>, <find_text> )

作用:

如果一个文本字符串中包含另一个文本字符串,则返回 TRUE,区分大小写,不支持通配符。

示例:

从一个文本字符串中查找是否包含关键词,如下图所示:


8、SAMPLE 函数

语法:

SAMPLE ( <n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…] )

作用:

从第二参数指定的表中进行抽样,返回第一参数指定的样本行数,如果样本行数小于等于 0 则返回空表。可以使用第三参数与第四参数进行排序,当进行排序后,此样本表将是稳定且确定性的,返回第一行、最后一行和它们之间均匀分布的行。 如果未指定顺序,此样本将是随机的、不稳定且不确定的。

示例:

对日期表进行抽样,返回每个月中的随机一行,如下图所示:


总结

以上函数虽然不常用,但它们的作用在某些场景下却是不可代替的,建议掌握,更多函数请参考官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PowerBI | 夕枫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值