夜雨聆风学习资料网

ARTICLE · 1355313

Excel 一行公式套到整列,MAP 函数一次算完,还能和 SWITCH 搭伙

Excel 一行公式套到整列,MAP 函数一次算完,还能和 SWITCH 搭伙

QUOTE

一行公式套到一整列上,MAP 就是干这个的。

Excel 里经常要对一整列数据做同一件事——每人工资加 500、把部门代码换成中文名。老办法是写一个公式,双击填充柄往下拖一整列。表一长,拖得手酸,中间漏一行还不容易发现。

MAP 函数就是专门干这个的。你给它一列数据,再告诉它「每一行怎么算」,它就把每一行都算好,整整齐齐码成新的一列。先把单独用法看明白,再看它怎么跟别的函数搭伙。

— 原始工资表,C 列还空着 —

01

HOW TO WRITE

函数写法:一列数据,一条规则

完整公式就一行,写在 C2:

=MAP(B2:B6, LAMBDA(x, x+500))

语法结构:MAP(数组, LAMBDA(占位符, 规则))

STEP 01第一参数:要处理的那一列

B2:B6,就是 B 列的基本工资。它是原料,不能省。范围多大,MAP 就处理多少行。

STEP 02第二参数:定一条规则

LAMBDA(x, …),x 是个占位符,代表「当前这一行」,起啥名都行,叫 y、叫 n 都可以。

STEP 03规则内容:对每一行做什么

x+500,拿当前这一行的工资加 500。想加多少、想怎么算,都写在这一段。

— 公式拆解与结果,C 列自动填满 —

02

STEP BY STEP

逐行推演:每一行都加 500

公式只写在 C2,回车后结果往下溢出到 C2:C6。MAP 把每一行单独拎出来,套一遍 x+500:

1

张三 8000:8000 + 500 → 8500

2

李四 6500:6500 + 500 → 7000

3

王五 9200:9200 + 500 → 9700

4

赵六 7000:7000 + 500 → 7500

5

孙七 5800:5800 + 500 → 6300

一行不用多写,5 个结果全出来了。改个数字,比如 500 改成 800,整列跟着重新算,不用再拖一次。

03

WATCH OUT

注意事项:三个坑提前看

NOTE

① 参数要配对:给几个数组,LAMBDA 里就配几个参数。这里一个数组一个 x;要是两列一起算,就得写两个参数。

② 结果会溢出:公式只写在 C2,结果往下铺。下面要是先填了东西,会被挡住,报 #SPILL! 溢出错误。

③ 版本门槛:MAP 属于 LAMBDA 家族,老版本 Excel 没有,会报 #NAME?。得用 Microsoft 365、Excel 网页版,或较新的 WPS。

∞

MORE

💡 补充:版本、组合与替代

单独用已经能省不少事,但 MAP 真正的本事是跟别的函数搭伙。规则里想塞什么函数都行,看三个常见组合。

— 三个组合的处理前 → 处理后对照 —

组合 1MAP + SWITCH,代码转中文名

=MAP(B2:B6, LAMBDA(d, SWITCH(d,"A","销售部","B","技术部","C","财务部","其他")))

换个场景:假设 B 列是部门代码。SWITCH 是「对号入座」:d 是当前行的代码,A 给销售部,B 给技术部,C 给财务部;配不上的,走最后那个「其他」兜底。看上面配图,D 不在 A/B/C 里,就落进了「其他」。系统导出的代码表,一下就变成能看懂的中文名。

组合 2MAP + 多数组,两列逐行相加

=MAP(B2:B6, C2:C6, LAMBDA(d, t, d+t))

换个场景:假设 B 列是底薪、C 列是提成,MAP 一次吃进两列,LAMBDA 里写两个参数,一行行配对相加,一列出总额。

组合 3MAP + ROUND,顺手四舍五入

=MAP(B2:B6, LAMBDA(x, ROUND(x*1.08, 0)))

给工资涨 8% 再取整(比如 8000×1.08=8640),一层套一层,规则里想塞多少函数都行。

版本提醒:MAP、SWITCH 都得是新版函数,Microsoft 365、Excel 网页版或新版 WPS才能跑。没有 MAP 的旧版,基础例就在 C2 写 =B2+500 往下拖;代码转名称用 VLOOKUP 查一张对照表,结果一样,只是不能整列自动溢出。

END

如果大家在 Excel 函数使用过程中遇到任何问题,可以截图提问,欢迎转发。

觉得有用的话,点赞、在看、转发三连支持一下,我们下期见。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料