工坊实验室 | ISINSCOPE 函数的两个应用场景

微软官方文档中关于ISINSCOPE函数的介绍:
当指定的列是级别层次结构中的级别时,返回True

参考网址:
https://docs.microsoft.com/zh-cn/dax/isinscope-function-dax

对于官方文档中的解释,如果友友们有兴趣可以研究下,我们今天通过两个应用场景来了解一下ISINSCOPE函数。

01数据准备

准备如下数据:
file

以上数据为每种产品(Product)各个颜色系列(Color)的销售额。

02场景1 – 识别总计行

定义度量值销售额

Sales =
SUM ( Sale[SalesAmount])

定义度量值平均销售额

AverageSales =
AVERAGE ( Sale[SalesAmount])

在表格中按颜色系列呈现以上度量值
file

如果希望自定义某个度量值在总计行的呈现结果,如总计不显示等,可以使用ISINSCOPE函数,例如以下的表达式定义总计行不显示

AveSales_adjust =
IF ( ISINSCOPE( 'Sale'[Color] ), AVERAGE( Sale[SalesAmount] ), BLANK () )

结果如下:
file

03场景2 – 类别内计算排名

如果我们想得到销售前三的颜色系列,可以通过视觉级筛选器中的TopN筛选实现,
file

下面我们来看一下,如果将产品字段添加到矩阵中会发生什么。

file

以上结果并非按照每个产品计算产品类别内部排名前三的颜色系列,而是每个产品计算总销量排名前三的产品系列,我们可以通过ISINSCOPE函数实现在产品类别内容计算排名,如下:

SalesRankInscope =
IF (
    ISINSCOPE ( Sale[Product] ),//在同一产品类别内部
    RANKX (
        CALCULATETABLE( VALUES ( Sale[Color]), ALLSELECTED ( Sale[Color]) ),//读取产品类别内部所有颜色
        [Sales]
    )
)

在报表视图呈现结果如下:

04总结

今天我们一起了解了ISINSCOPE函数的两个应用场景:识别总计行和计算某一类别内部的子类别的排名,此函数理解起来有一定难度,宗琪没有对此函数形成系统的理解,希望大家可以通过今天的分享了解到此函数的两种应用场景,友友们如有更深入地见解,欢迎留言交流哦~

  • PowerPivot工坊原创文章,转载请注明出处!

    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

Power Pivot工坊