【FineBI学习打卡】DAY84 CLEAN函数助力DEF摆脱过滤束缚!

楼主
我是社区第1095980位番薯,欢迎点我头像关注我哦~

第84天知识点:CLEAN函数

 

熟悉DEF函数的小伙伴应该都知道,DEF函数的最大优点就是它可以不受维度栏中指标的影响。

但是,仍然存在一个问题就是:它无法控制过滤条件对其的影响。

这是什么意思呢?

举个例子大家可能会更好理解。

现在有一张西红柿的销售额情况表,里面记录了2024年1月-8月每天西红柿的销售情况。

其中,销售额最高的一天是2024年5月28日,对应的销售额是42437.6元。

但是现在,我希望能看到筛选日期范围内每天的销售额以及对应的最大销售额。

也就是说,如果我筛选2024年8月1日-8月15日,那么就需要展示8月1日-8月15日这个日期区间里的最大销售额。

这个很简单,通过DEF函数即可以得到这样的效果。

然后,将过滤组件绑定【销售日期】字段,即可实现展示上述需求的内容。

结果如下:

可以看到,当筛选日期变化后,最大值是会根据筛选日期的变化而变化的。

但现在,问题来了。

我希望增加一列历史最大销售额,以便我能和筛选日期范围内的最大销售额进行对比。

当然历史最大销售额可以在数据集中进行处理,因为数据集的结果在组件中展示后是不会受到任何过滤组件影响的。

但数据集中处理数据,很多时候数据使用起来不够灵活,所以我们还是希望在组件中直接通过DEF函数的方式去实现。

怎么才能让过滤组件不对DEF函数的结果产生影响呢?

这就需要引出一个新的分析函数—CLEAN函数

CLEAN函数,顾名思义,起到清除的效果。

它与EARLIER函数一样,必须与DEF函数一起使用。

关于CLEAN函数的用法可以参考下方的函数卡片。

了解CLEAN函数之后,就简单了。

只需要在DEF函数的第三参数中输入需要摆脱的过滤组件对应的字段就可以了。

这里,我们需要摆脱【销售日期】的影响,所以DEF函数的第三参数,就写成[CLEAN(销售日期)]。

结果如下:

是不是非常方便?

但使用CLEAN函数需要注意的是:

1、当DEF函数的第三参数中的过滤条件不止CLEAN函数一个时,比如,我还添加了一个过滤条件:销售日期=2024/8/1,得到的结果会是什么样的呢?

结果如下:

可以看到,DEF+CLEAN函数+同级过滤条件这列的计算结果是2024/8/1的销售额,且该列的值不会随日期过滤组件的变化而变化。

这说明,CLEAN函数与同层的过滤处于平级的状态,即CLEAN会把上面层级的过滤清掉,但同层的过滤仍会正常生效

2、当DEF函数嵌套DEF函数时,CLEAN函数只会清除当前层的过滤条件,不会清除内层或外层DEF函数的过滤条件。

比如,我先使用DEF函数计算出8月15日之后的最大销售额,然后再嵌套一层DEF函数,并使用了CLEAN函数,排除销售日期的影响。

结果如下:

可以发现,计算结果是2024/8/15日及之后这个时间范围内的最大销售额,而非前面提到的所有时间范围内的最大销售额42437.6元即2024/5/28对应的最大销售额。

这说明,CLEAN函数是在第一层DEF函数计算的结果上进行计算的,先把日期范围锁定在2024/8/15日及之后,然后在这个日期范围内找出最大销售额

 

好了,今天关于CLEAN函数的内容就分享到这里。

感兴趣的小伙伴可以自己动手试试CLEAN函数的效果。

分享扩散:
参与人数 +1 F币 +40 理由
Nancy.Gu + 40 原创内容激励计划

查看全部评分

沙发
发表于 3 天前
感谢您的投稿!本文逻辑清晰、图文并茂,详细阐述了CLEAN函数在数据分析中的重要作用,提供了实用的操作指南和注意事项,对于数据分析师来说具有很高的参考价值。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1回帖数 1关注人数 294浏览人数
最后回复于:3 天前

返回顶部 返回列表