重点函数 | ISCROSSFILTERED 用法介绍

本期重点:
1.ISCROSSFILTERED函数 和 ISFILTERED函数 的区别
2.用ISCROSSFILTERED实现“选中某一个月,可以观察到之前N个月份的情况”

近来我遇到了一个问题,如果我们在使用Power BI分析企业销售额的时候想要选中某一个月,然后可以观察到之前N个月份的情况,应该怎么做呢?
冥思苦想外加高人指点之后终于得到了答案,在工坊昨天的文章中:
工作技巧 | 展示某指定年月之前12个月份的销售额
我们已经对这个问题进行了探讨,今天介绍的这个函数则提供了另外一种解决问题的方式,读者可以将两篇文章结合在一起看,用以拓宽思路。

一、函数介绍

首先介绍一下我们要用到的函数:ISCROSSFILTERED,提到这个函数可能很多小伙伴会一脸的问号:这是啥?能干啥?怎么用?但提起他的兄弟ISFILTERED大家可能会有些印象,让我们先来看一下ISFILTERED函数的介绍:

ISFILTERED

ISFILTERED()

当直接筛选 columnName 时,返回 TRUE。 如果列没有筛选器,或由于正在筛选同一个表或相关表中的不同列而发生筛选,则函数返回 FALSE

ISFILTERED函数用于判断某一字段是否有筛选关系,ISCROSSFILTERED与它相近,它用于判断某一个表中是否含有筛选字段,下面是ISCROSSFILTERED函数的介绍:

ISCROSSFILTERED

ISCROSSFILTERED()

当正在筛选 columnName 或相同表或相关表中的其他列时,返回 TRUE

比如我们将某个表中的某一个字段当做筛选器,这个函数的返回值则为TRUE。仅用语言描述其功能似乎有些难懂,接下来让我们用一个例子来了解一下。

二、数据准备

首先我们要建一个日期表,包含日期列,年月列,接下来看我们的函数,为了更直观的观察ISCROSSFILTERED和ISFILTERED的区别,先摆上我们的度量值。
首先是先是ISCROSSFILTERED函数:

ISCROSSFILTERED =
ISCROSSFILTERED ( '日期表'[Date])

之后是ISFILTERED函数:

ISFILTERED =
ISFILTERED ( '日期表'[Date])

在函数中我们把 '日期表' [Date]列作为判断筛选,在切片器中把年月列作为筛选,一起来看下效果。

可以看到,当我们把年月作为筛选的时候ISCROSSFILTERED和ISFILTERED会展现出两种截然不同的结果,为了更直观的看到两者的区别,我们再将日期表中的Date列作为筛选列来看一下效果。

当我们将Date列作为筛选时与上面的操作又有了不同的效果,这样我们就可以明确的理解ISFILTERED和ISCROSSFILTERED的区别了。

三、实际操作

介绍完ISCROSSFILTERED的用法之后很多小伙伴应该有了一个大致的了解,接下来就该步入正题了。
首先在日期表上我们还需要加一列年月序号,此外我们还需要一个销售的表,这个表里需要日期列,年月列,年月序号列,销售列,如下图(部分)。

file

接下来有请我们的度量值登场,可以看到我们在最外层用了一个IF语句,将日期表中有无筛选作为了判断依据,如果含筛选的话就返回后面的CALCULATE函数,否则返回1。

 前12个月销售额 =
IF (
    ISCROSSFILTERED ( '日期表'[年月序号] ),
    CALCULATE (
        VALUES ( '销售'[年月] ),
        FILTER (
            '销售',
            '销售'[年月序号] <= MAX ( '日期表'[年月序号] )
                && '销售'[年月序号]
                    > MAX ( '日期表'[年月序号] ) - 12
        )
    ),
    1
)

然后我们在Power BI页面将日期表中的年月作为切片器,再将销售表里面的年月列拖到表格中,最后把我们写好的度量值放到销售额表的筛选中,设置为不为空。

file

最后让我们来一起看下效果吧,可以看到不做筛选的时候会显示全部的销售额,为了更直观的看到变化,我在最后加了一列计数,在选定年月201908后会自动出现201809-201908总计十二个月的销售额。

在结束之际我要向大家安利为我解答这个问题的同事,本公众号的作者之一——他山之石,并向他表达我最诚挚的感谢。
好了,本篇到这里就要和大家说再见了,各位读者朋友们,我们下期再见,么么哒!

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

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


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

Power Pivot工坊