MAPX 聚合操作
阅读人数:
2711
MAPX
函数原型:MAPX(operation, mapvalue, mapfield, result_field)
函数说明: 当指定表单的map_field列的值为map_value时,返回result_field的所有值,然后根据指定的聚合操作operation得到对应的返回值。
- operation: 必需。聚合操作。
- map_value: 必需。条件字段值。即检索值
- map_field: 必需。条件字段名。即检索范围
- result_field:必需。字段返回值。
其中operation参数为字符串,可选值如下:
参数值 | 含义 |
---|---|
"first" | 获取返回值的第一个 |
"last" | 获取返回值的最后一个 |
"max" | 最大值 |
"min" | 最小值 |
"avg" | 平均值 |
"sum" | 求和 |
"count" | 获取返回值的个数 |
(1)跨表单含义
MAPX函数是一个“跨表单”函数。即其他所有函数都是在当前表单运算的函数,无法调用当前表单或者其他表单中已经提交的数据。MAPX函数可以在一定程度上弥补这样的不足。
跨表有两种情况:
(1)同1张表单,录入时调用之前已经提交的数据。
(2)2张表单。A表录入数据时,调用B表单已经录入的数据。
(2)函数格式
MAPX('聚合操作',检索值,检索范围,返回值) 整个计算过程为:在检索范围中,找到检索值对应的返回值,并对返回值进行聚合操作。
注意检索值来自当前表单中(蓝底),检索范围和返回值来自所有表单中同一表单的字段(绿底)。
MAPX("SUM", 当前表单字段, 所有表单字段,所有表单字段)
其中的SUM和sum是相同的,不区分大小写。
实际操作的方法如下所示:
更多应用见: 【MAPX 应用】。
(3)应用举例
有一张选课表,在选择课程时,需要计算出自己是第几个报名的,即计算出某一课程的已报名人数,再+1。
可以看出,此处的检索值为课程,选了哪门课程,就统计这门课程的已报名人数。则公式为 MAPX('COUNT',课程,课程,姓名)
对“我是第几个报名的”字段进行编辑函数:
对于这个例子,可理解为:在之前录入的数据里,寻找【课程】字段选择了“健身”的对应的姓名,并用COUNT函数统计一下对应姓名的个数,得到已经报名的人数;最后加1,得到“我是第几个报名的”。
看一下效果: