最新历史版本 :CLEAN函数-清除所有过滤效果(只用于DEF类函数) 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

全部 CLEAN 视频课程请参考:CLEAN函数

[helpvideo]10572[/helpvideo]

1.1 版本

FineBI版本
功能变动
6.1-

1.2 语法

clean的对象是字段,效果是在当前 def 的计算中忽略该字段上的过滤效果。

语法

CLEAN(字段1,字段2,字段3....)

/CLEAN("ALL")

当前 分析函数 计算中忽略指定字段生成的所有过滤效果
参数字段1,字段2,字段3....

需要忽略过滤效果的字段

  • 支持任意类型的维度/指标字段,包括计算指标

  • 当CLEAN中的参数为“ALL”时,清除分析函数中所有字段生成的过滤效果

  • 参数不支持缺省 

2. 注意事项编辑

  • CLEAN函数只能用于 def/def_add/def_sub 中,作为一个独立的过滤条件。例如: DEF(SUM_AGG(指标),[省份,城市],[CLEAN(城市)])

3. 计算逻辑编辑

3.1 计算范围

1)clean(字段1,字段2,字段3....)

clean函数将清除掉字段所做的过滤。示例如下:

范围过滤条件组件的计算字段结果
组件

在过滤器添加「城市」字段

  • 过滤1:城市不等于无锡 

  • 过滤2:销售额>100  

def(sum_agg(销售额),[城市],[clean(城市)])

忽略城市字段的所有过滤条件

仪表板文本下拉过滤:城市=苏州、无锡、常州

2)clean(all)

当前 分析函数 运算的结果不受到任何过滤效果影响(不包括仪表板/组件外的过滤,如权限过滤和定时调度的过滤)

3)总结

因此,CLEAN函数作用范围如下:

范围字段过滤

CLEAN(字段1,字段2,字段3....)

CLEAN("ALL")
组件
  • 过滤器

  • 钻取

忽略字段过滤效果生效

忽略分析函数所有字段过滤效果
仪表板
  • 跳转

  • 过滤组件

  • 仅过滤组件忽略字段过滤效果生效

(不包括下拉树/列表树/树标签/复合过滤组件

  • 联动、跳转产生的过滤 CLEAN(字段1,字段2...)不生效

忽略分析函数所有字段过滤效果

3.2 在DEF计算中的逻辑

1)clean与内层def和同层def过滤条件的关系

因为def中的过滤仅影响当前def的计算,因此clean不会清除内层和外层def的过滤条件

例如:

层级
计算字段公式
1Adef(sum_agg(),[],销售额>100)
2Bdef(sum_agg(A),[],[clean(销售额)])
3Cdef(sum_agg(B),[],[销售额<300])

此时,clean 不会对1、3层级的销售额过滤产生影响。

2)clean与同层的过滤处于平级的状态

clean与同层的过滤处于平级的状态,即clean会把上面层级的过滤清掉,同层的过滤正常进行。

例如,def(sum_agg(订单金额),[],[ clean(月),=7]),过滤器绑定「月」过滤 ,此时,DEF 计算仅使用「月=7」进行过滤。

4. 案例应用编辑

4.1 示例

示例数据:产品销售情况.xlsx

1)上传数据并分析产品销售情况。拖入「订单金额」修改汇总方式为「最大值」得到单笔订单销售额最大值。如下图所示:

2024-05-08_14-02-40.png

2)只想分析 7 月的订单销售数据。在过滤器中拖入「订单日期」,年月过滤,选择「2022年7月」。如下图所示:

2024-05-08_14-08-53.png

此时,我们希望增加一列历史订单单笔最大金额和7月的数据进行对比。添加计算字段「历史单笔订单最大金额」。如下图所示:

2024-05-08_14-26-20.png

场景公式描述

计算结果不会受到订单日期过滤的影响

CLEAN(订单日期)组件过滤器、仪表板过滤组件对「订单日期」过滤都不会变化计算结果
求产品订单金额的历史最大值DEF_ADD(MAX_AGG(订单金额}),[],[CLEAN(订单日期)])

维度:产

指标:订单金额

条件:忽略订单日期过滤条件

组件中的如下图所示:

2024-05-08_14-27-07.png

仪表板中效果如下图所示:

2024-05-08_14-29-35.png


4.2 更多示例

公式
结果备注
DEF(SUM_AGG(指标),[省份,城市],[CLEAN(城市)])

在DEF计算中忽略「城市」字段产生的所有过滤效

忽略城市字段在过滤器/钻取/过滤组件产生的过滤(不包含树过滤组件以及复合过滤控件

DEF_ADD(SUM_AGG(指标),[维度1,维度2,...],[CLEAN("ALL")])在DEF_ADD计算中忽略全部的过滤效果忽略所有字段在过滤器/联动/钻取/跳转/过滤组件产生的过滤