Power BI中的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财务分析 告:如何恰当的运用 告设计元素?

PowerBI可视化技巧:切片器中增加”自定义”选项

PowerBI布局经典技巧:折叠切片器,节省宝贵空间

采悟 | PowerBI星球

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月1日
下一篇 2022年10月1日

相关推荐