函数周期表丨信息丨值丨ISINSCOPE - 知乎

2020/12/28 07:25
阅读数 53

ISINSCOPE函数

ISINSCOPE函数隶属于“信息”类函数,适用于层次结构中的计算。

用途:适用于计算分层占比。

语法

DAX=
ISINSCOPE(<列>)

参数

列:只能是现有列,不能是表达式。

返回结果

TRUE或者FALSE

例子

模拟数据:

这是白茶随机模拟的一份数据,一份销售明细,一份产品表。

将其导入到PowerBI中,模型关系如下:

例子1:对比ISFILTERED函数

代码1:

ISFILTERED =
ISFILTERED ( '产品表'[商品分类] )

代码2:

ISINSCOPE =
ISINSCOPE ( '产品表'[商品分类] )

结果:

从这个图中,我们看不出来什么区别,点击切片器。

可以看得出来,当我们进行筛选时,ISFILTERED函数的总计栏显示TRUE,而ISINSCOPE的结果依然是FALSE。

ISFILTERED函数与ISINSCOPE函数非常的类似,但是后者相对于前者多一层运算判断。
前者在上图中受到筛选器影响,结果产生变动;而后者考虑总计栏未出现[商品分类],因此结果不受影响。
这是二者之间的区别,因此计算层级占比的时候,我们可以使用后者。

例子2:计算层级占比

有时候,我们需要知道每个分类下单个产品的占比,例如下图。

但是每个类别的占比其实我们也是需要知道的,那么这种情况就可以使用ISINSCOPE函数进行计算。

输入代码:

ISINSCOPE例子 =
SWITCH (
    TRUE (),
    ISINSCOPE ( '销售明细'[商品名称] ), DIVIDE ( [销售数量], CALCULATE ( [销售数量], ALLSELECTED ( '销售明细'[商品名称] ) ) ),
    IF (
        ISINSCOPE ( '产品表'[商品分类] ),
        DIVIDE ( [销售数量], CALCULATE ( [销售数量], ALLSELECTED ( '产品表'[商品分类] ) ) ),
        1
    )
)

结果如下:

解释:
首先是利用ISINSCOPE进行第一层级的判断,如果是靠枕、腰带这类的具体商品,则进行占比计算;
然后对层级进行判断,如果是床品、男装这种类别的层级,则进行类别占比计算;
最后,白茶偷懒了,因为考虑到无论怎么筛选,我们所要呈现的总计栏都是100%,因此直接懒得计算了,输入1就OK了。


传送门丨

https://zhuanlan.zhihu.com/p/88838709zhuanlan.zhihu.com图标

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部