MAP 函数¶
函数概述¶
MAP 是 Excel 动态数组函数之一,用来对一个或多个数组逐元素执行同一个计算,并把每次计算的结果按原数组形状“映射”输出为一个新数组。
你可以把它理解成:
- 给定 1~N 个数组
- 按相同位置取出元素
- 交给 LAMBDA 做处理
- 把每个位置的结果拼回成数组
常见用途包括:逐行/逐列清洗、逐元素换算、批量生成标签、并行对齐多个字段做计算等。
基础语法¶
MAP 的最后一个参数必须是 LAMBDA;前面可以传 1 个或多个数组。
参数说明¶
| 参数 | 必填 | 说明 |
|---|---|---|
| array1 | 是 | 第一个参与映射的数组/区域 |
| array2… | 否 | 额外数组,可传多个;用于与 array1 按位置配对处理 |
| lambda | 是 | LAMBDA 函数,参数个数应与传入数组个数一致 |
补充规则(写公式时很实用):
- 传入多个数组时,MAP 会按位置“并行”取值:第1个数组的第i个元素 + 第2个数组的第i个元素…一起交给 LAMBDA。
- 输出是动态数组,会自动溢出到相邻单元格区域。
基础用法示范¶
下面示例默认数据在工作表中已经存在,你可以直接套用公式。
示例1:单数组逐元素处理¶
需求:把一列数值都乘以 1.06(比如含税价/涨幅)。
解释:MAP 逐个取出 A2:A11 的元素作为 x,计算 x*1.06,返回同等长度的新数组。
示例2:双数组并行计算¶
需求:单价 × 数量,计算每行金额。
解释:同一行位置的 price 与 qty 被一起送入 LAMBDA,输出每行金额。
示例3:生成条件标签¶
需求:成绩 ≥ 60 标记“及格”,否则“不及格”。
解释:MAP 很适合把“同一规则”批量套用到整列。
示例4:对文本逐元素清洗¶
需求:把姓名去掉首尾空格,并统一为大写(英文场景)。
解释:TRIM 清理空格,UPPER 统一大写,MAP 负责批量映射。
示例5:多数组合成描述文本¶
需求:把“部门-姓名”拼成标签,如“销售-张三”。
解释:多个数组并行取值,特别适合做拼接、口径统一的字段生成。
总结¶
- MAP 的核心价值是:把 LAMBDA 的单次计算,稳定地批量应用到数组的每个元素上。
- 适用场景:逐元素换算、清洗、打标签、拼接字段、多列并行计算。
-
写 MAP 时抓住两点就够用:
- 你传了几个数组,就在 LAMBDA 里写几个参数
- LAMBDA 返回什么,MAP 就把它按位置汇总成动态数组输出