SWITCH和IN结合,使DAX代码更简洁
2019-05-29 本文已影响24人
PowerBI星球
来自于知识星球中星友的一个问题,
假设这样的表格中,如何根据属性列中不同的属性,执行不同的聚合运算:
比如,
流量、访客数、成交额,进行汇总计算;
而客单价和转化率,求其平均值。
这种需求,可以用个函数判断来判断,使用IF就可以,不过在DAX中,还有更简洁的SWITCH函数,编写如下:
度量值=
SWITCH(TRUE(),
SELECTEDVALUE(表[属性])="流量",SUM(表[值]),
SELECTEDVALUE(表[属性])="访客数",SUM(表[值]),
SELECTEDVALUE(表[属性])="成交额",SUM(表[值]),
SELECTEDVALUE(表[属性])="客单价",AVERAGE(表[值]),
SELECTEDVALUE(表[属性])="转化率",AVERAGE(表[值])
)
这种写法很直观,不过还可以结合IN来更加简化它,
度量值=
SWITCH(TRUE(),
SELECTEDVALUE(表[属性]) IN {"流量","访客数","成交额"},SUM(表[值]),
SELECTEDVALUE(表[属性]) IN {"客单价","转化率"},AVERAGE(表[值])
)
是不是简洁多了?
如果你刚开始学习PowerBI,可以在公众号“PowerBI星球”中,回复关键字“PowerBI",下载《七天入门PowerBI”电子书。
学习PowerBI遇到问题,欢迎来知识星球中提问。