函数周期表丨信息丨值丨ISINSCOPE

2021-09-03 11:13:30 浏览数 (3)

ISINSCOPE函数

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

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

语法

代码语言:txt复制
DAX=
ISINSCOPE(<列>)

参数

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

返回结果

TRUE或者FALSE

例子

模拟数据:

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

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

例子1:对比ISFILTERED函数

代码1:

代码语言:txt复制
ISFILTERED =
ISFILTERED ( '产品表'[商品分类] )

代码2:

代码语言:txt复制
ISINSCOPE =
ISINSCOPE ( '产品表'[商品分类] )

结果:

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

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

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

例子2:计算层级占比

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

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

输入代码:

代码语言:txt复制
ISINSCOPE例子 =
SWITCH (
    TRUE (),
    ISINSCOPE ( '销售明细'[商品名称] ), DIVIDE ( [销售数量], CALCULATE ( [销售数量], ALLSELECTED ( '销售明细'[商品名称] ) ) ),
    IF (
        ISINSCOPE ( '产品表'[商品分类] ),
        DIVIDE ( [销售数量], CALCULATE ( [销售数量], ALLSELECTED ( '产品表'[商品分类] ) ) ),
        1
    )
)

结果如下:

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

传送门丨《利用CALCULATE函数求各类占比》

小伙伴们❤GET了么?

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

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

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

0 人点赞