PowerBI/DAX之表构造器

掌握PowerBI/DAX表构造器技巧

表构造器,顾名思义就是构造一张表,它是DAX中创建表的一种语法,应用范围非常广泛与灵活,常用于构建辅助表、简化布尔表达式、在查询中查看标量值等等,并且可以与TREATAS函数配合来实现自定义筛选。


表构造器的语法

表构造器的语法非常简单,只需要用大括号包围,并用小括号分隔多行,并且当要构造的表只有一列时,小括号还可以省略。示例写法如下:

{
	(1,"张三","男"),
	(2,"李四","男"),
	(3,"王五","女")
}

运行后的结果如下图所示,由于表构造器返回的是一张表,因此可以使用DAX查询或新建表功能来查看其返回的结果。

其中,每个小括号代表一行数据,并且每一行的值的数量必须要一致,即列数要一致,否则会报错,如下图所示:

此外,当要构造的表只有一列时,小括号还可以省略,如下图所示:

由表构造器创建的表无法指定列名,当构造的表只有单列时,列名为[Value],当构造的表有多个列时,则会以列顺序命名为[Value1]、[Value2]…等等。

当需要更改表构造器所构造的表的列名时,通常可以搭配使用SELECTCOLUMNS函数来修改列名,如下图所示:

表构造器的语法比较简单,因此就不再赘述,使用时注意保持每一行的列数一致即可。


表构造器的应用

1、简化布尔表达式

将表构造器与IN关键字搭配使用,可以将复杂的布尔表达式进行简化,具体可参考下面两个示例的等价写法。

示例一:

'Product'[Product Color] = "White" || 'Product'[Product Color] = "Red" || 'Product'[Product Color] = "Yellow"

等价于:

'Product'[Product Color] IN {"White","Red","Yellow"}

示例二:

('Product'[Product Color] = "White" && 'Product'[Product Code] = "P1001") ||
('Product'[Product Color] = "Red" && 'Product'[Product Code] = "P1002") ||
('Product'[Product Color] = "Yellow" && 'Product'[Product Code] = "P1003")

等价于:

('Product'[Product Color],'Product'[Product Code]) IN {("White","P1001"),("Red","P1002"),("Yellow","P1003")}

2、在查询中查看标量值

由于DAX查询只能返回表而不能返回标量值,因此有时想在DAX查询中输出查看某个中间变量或度量值时就会比较困难,如下图所示:

这时候,其实就可以使用表构造器,将要输出的标量值转换成单行单列的表,从而能够在DAX查询中正常输出,以便查看其具体的内容,如下图所示:

3、与TREATAS函数配合来实现自定义筛选

表构造器能够返回自定义的一张表,再使用TREATAS函数来更改数据沿袭,就可以实现任意形状的筛选器,从而得到更大的筛选自由度。如下图所示:


总结

表构造器的作用虽然只是构造一张表,但由于其能够在表达式里边进行表的构建,因此能够带来很大的应用灵活度。而且表构造器的语法简单易上手,是每个人都必须要掌握的一个语法。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PowerBI | 夕枫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值