MAPX多条件应用

1. 简介

1.1 案例简介

很多情况下,我们在表单中要统计的值对应着多个条件,在检索条件不止一个的情况下,就需要先添加一个辅助字段,将多个检索条件合并成一个字段;再把辅助字段作为检索值和检索范围,写到 MAPX 函数 中。


1.2 应用场景

课程管理中,统计同一班级、同一课程的报名人数,此时的检索条件就是班级 + 课程;

订单管理中,检索同一店铺、同一销售员的最新一个订单编号,此时的检索条件就是店铺名称 + 销售;

销售管理中,计算同一销售员、同一月份的销售额之和,此时的检索条件就是销售员姓名 + 月份。

综上,当我们的场景中涉及到多个检索条件的情况,都可以通过这个案例的方法来进行实现。


下面通过一个案例来介绍一下操作步骤。

2. 操作步骤

「销售上报」表单记录了销售员的每日销售数据:

注:表单中计算销售额可以使用子表单合并计算,操作详情参见:子表单的应用示例


「提成表」由财务月底填写,计算出某一销售员、某一月份的销售额之和,以便计算出每个人的提成数据:


注:本示例中姓名字段和辅助字段使用了 单行文本 字段,其他金额数量类的字段使用了 数字字段

在这种情况下,检索条件就是销售员姓名+月份

(1)在「销售上报」表单中添加一个 单行文本 作为辅助字段,编辑函数为:

CONCATENATE(姓名,TEXT(DATE(销售日期),'yyyyMM'))

表示该字段的值为销售员姓名+销售日期对应的年月

DATE 函数:将时间戳转换为日期对象。

TEXT 函数:将数字转换成特定格式的文本。

CONCATENATE(A,B,C):将多个文本字符串合并成一个文本字符串 ABC。


在录入数据时,辅助字段也会通过公式得到值,以供「提成表」中的MAPX函数调用。


(2)在「提成表」中同样也需要添加一个 单行文本 作为另一个辅助字段,编辑函数为:

CONCATENATE(姓名,TEXT(DATE(统计月份),'yyyyMM'))

同样表示该字段的值为销售员姓名+销售日期对应的年月


(3)应用 MAPX 函数 设置「提成表」中的销售总额,编辑公式为:

MAPX('SUM',辅助字段,辅助字段,销售额)

MAPX 函数的使用方法为:MAPX(“聚合操作”,检索值,检索范围,返回值)


其中第一个辅助字段为当前表单即「提成表」表单中的字段:


第二个辅助字段和销售额为所有表单中「销售上报」表单中的字段:


(4)应用 IF 函数 设置「提成表」中的提成计算,编辑公式为:

IF(销售总额<1000,销售总额*0.1,销售总额*0.2)

表示当销售总额低于 1000 时,提成比例为 0.1;当销售总额超过 1000 时提成比例为 0.2:


3. 效果演示

下图为「销售上报」表单中录入的已有销售数据:

在「提成表」表单中输入销售员姓名和日期,任意选择统计月份中的任意一天即可,公式会自动提取出年月,然后计算出该销售员当月的销售总额和提成:

根据演示可得:

员工甲在 2021 年 5 月的销售总额为 2400( 2000 + 400 )

员工乙在 2021 年 5 月的销售总额为 2800( 2400 + 400 )

其他月份计算同理。


4. 注意事项

  • 注:操作步骤中的公式复制后不可直接使用,字段调用处需进行手动替换。
  • 如果辅助字段需要设置为不可见,则一定要在表单属性中修改「不可见字段赋值」属性为「始终重新计算」


本文是否对您有帮助?
 有帮助
 没帮助
您是否遇到了以下问题?
如需获取即时帮助,请联系技术支持