分享一个PowerBI星球中的一个常见问题,顺便学习一个常见DAX的用法
问题:
假设这样的表格中,如何根据属性列中不同的属性,执行不同的聚合运算:
比如,流量、访客数、成交额,进行汇总计算;
而客单价和转化率,求其平均值。
应该怎么做呢?
这种需求,可以用个函数判断来判断,使用IF就可以,不过在DAX中,还有更简洁的SWITCH函数,编写如下:
度量值=
SWITCH(TRUE(),
SELECTEDVALUE(表[属性])="流量",SUM(表[值]),
SELECTEDVALUE(表[属性])="访客数",SUM(表[值]),
SELECTEDVALUE(表[属性])="成交额",SUM(表[值]),
SELECTEDVALUE(表[属性])="客单价",AVERAGE(表[值]),
SELECTEDVALUE(表[属性])="转化率",AVERAGE(表[值])
)
这种写法很直观,不过还可以结合IN来更加简化它,
度量值=
SWITCH(TRUE(),
SELECTEDVALUE(表[属性]) IN {"流量","访客数","成交额"},SUM(表[值]),
SELECTEDVALUE(表[属性]) IN {"客单价","转化率"},AVERAGE(表[值])
)
是不是简洁多了。
利用这个例子,你是不是掌握了DAX中的IN运算呢?
-精彩推荐-
Power BI星球 ,帮你轻松上手PowerBI
采悟
网友评论