原副标题:该文掌控Power BI中的IN操作符,原本那么单纯
责任编辑来自学呵呵DAX中时常加进的IN,它并并非三个抒发式,而要三个方法论操作符,用作检查和抒发式与否归属于值条目,IN十分的好用,上面依照三个常用的情景上看呵呵它的用语。
IN的一般用语
以PowerBI地球常用的事例数学模型为例,倘若要排序“U盘”的营业额,测度值能这种写:
营业额 U盘=
CALCULATE(
[营业额],
商品表[主要参数]=”U盘”
)
其实还能用IN来抒发,读法如下表所示:
营业额 U盘 =
CALCULATE(
[营业额],
商品表[主要参数] IN { “U盘” }
)
上面三个测度值回到反之亦然的结论。
即使IN的前面要是三个表,对某一值,能用{ }括出来,将值强制性内部结构为表。
透过上面的范例,看上去IN 也没甚么不同之处,但假如你要排序数个商品,IN的竞争优势就会很显著。
比如说须要排序U盘、音箱和硬碟这四个商品的营业额:
一般的读法是这种的:
营业额 U盘音箱硬碟=
CALCULATE(
[营业额],
商品表[主要参数]=”U盘” ||
商品表[主要参数]=”音箱” ||
商品表[主要参数]=”硬碟”
)
假如用IN来抒发:
营业额 U盘音箱硬碟=
CALCULATE(
[营业额],
商品表[主要参数] IN { “U盘”, “音箱” ,”硬碟” }
)
是并非更简洁呢?
IN与NOT结合
IN还能与NOT一起使用,NOT表示否定,也是DAX中的操作符,NOT IN用以表示不在这个条目内的数据集合。
比如说排序除U盘、音箱和硬碟之外的,其他商品的营业额,
营业额 除U盘音箱硬碟 =
CALCULATE(
[营业额],
NOT 商品表[主要参数] IN { “U盘”, “音箱” ,”硬碟” }
)
这种就能把不在这个条目内的其他商品的营业额排序出来了。
IN用作多列
IN不仅用作一列,还能用作多列。
比如说要排序销往南京的U盘营业额,正常是那么写:
营业额 U盘南京 =
CALCULATE(
[营业额],
商品表[主要参数]=”U盘”,客户表[客户城市]=”南京市”
)
用IN 的读法如下表所示:
营业额 U盘南京 =
CALCULATE(
[营业额],
(订单表[主要参数],订单表[客户城市])
IN { (“U盘”,”南京市”) }
)
只有一列时,{ }中能直接输入文本,但对两列,同一行的两列须要用括号()括出来,每个括号代表一行。
再看个范例,排序销往南京的U盘营业额以及销往天津的音箱营业额合计:
销售额 U盘南京+音箱天津=
CALCULATE(
[营业额],
(订单表[主要参数],订单表[客户城市])
IN { (“U盘”,”南京市”) , (“音箱”,”天津市”) }
)
这个范例中,IN 前面的表就是两行两列的表。
用IN检索虚拟表
关于IN,除了检索用{ }内部结构的值条目,只不过更多的情景是在测度值中,直接用作检索虚拟表,比如说之前分享的动态回到表的事例:
Power BI如何动态展示表?送你两种方法
其中有这个测度值:
这段抒发式的最后一句,就是检查和当前用户与否在虚拟的表中,即使VAR 定义的customers_same本来就是三个表,所以能直接用在IN前面,并不须要加{ }。
关于用IN来检索虚拟表也可以参考这篇文章中测度值的读法:
PowerBI切片器,原本还能这种交互?
须要注意的是,假如检查和的值只有一列,则IN前面跟的虚拟表也要只有一列,前后要对应,否则会报错的。
透过以上三个应用情景,你是不是完全清楚了IN 的用语呢?
采悟 | PowerBI地球