网站首页 > 基础教程 正文
遍历多个数组传递参数!6个MAP函数高阶用法,EXCEL数据处理一招搞定!
场景1:A 列为带有美元符号的价格(如 $100, $200),需要批量转换为纯数字。
公式:
=MAP(A2:A10,LAMBDA(x,--(SUBSTITUTE(x,"#34;,""))))
解析:
SUBSTITUTE(x,"#34;,""):去除美元符号
--():将文本转换为数字
MAP 会逐行处理 A2:A10 的每个单元格,对应LAMBDA函数中的x。
也可以用SCAN处理:
=SCAN("",A2:A10,LAMBDA(x,y,VALUE(SUBSTITUTE(y,"#34;,""))))
SCAN与MAP计算都会返回每步计算结果,区别在于SCAN第一参数为初始值,而MAP无初始值,MAP还能传递多个参数。
结果都相当于公式:
=--(SUBSTITUTE(A2:A10,"#34;,""))。
场景2:根据A 列数据判断是否优秀(80及以上)。
公式:
=MAP(A1:A9,LAMBDA(x,IF(x>=80,"优秀","一般")))
解析:
IF(...),如果大于或等于80为"优秀",否则返回"一般";
MAP逐行传输递A1:A9进行计算。
场景3:A 列为数量,B 列为单价,需要计算每行的总金额。
公式:
=MAP(A2:A10,LAMBDA(a,a*OFFSET(a,,1)))
解析:
同时引用 A 列和 B 列作为输入数组
通过 LAMBDA(a, ...) 定义参数进行乘法运算,OFFSET(a,,1) 表示向右偏移1列;
相当于公式:
=A2:A10*B2:B10
场景4:将 A 列(姓名)、B 列(部门)、C 列(工号)合并为 姓名-部门(工号) 格式。
公式:
=MAP(A2:A10, B2:B10, C2:C10, LAMBDA(a,b,c, a & "-" & b & "(" & c & ")"))
解析:
LAMBDA(a,b,c, a & "-" & b & "(" & c & ")"),定义三个参数,“a & "-" & b & "(" & c & ")”为计算表达式;
MAP逐行进行处理。
场景5:根据销售数据(客户类型:金额),动态生成评级。
规则:
金额 ≥15000 且为 "VIP1" → "S级"
金额 ≥12000 且为 "VIP2" → "S级"
金额 ≥10000→ "A级"
其他情况→ "B级"
公式:
=MAP(TEXTBEFORE(A2:A9,":"),--TEXTAFTER(A2:A9,":"),LAMBDA(X,Y,IF(OR(AND(X="VIP1",Y>=15000),AND(X="VIP2",Y>=12000)),"S级",IF(Y>=10000,"A级","B级"))))
解析:
MAP逐行将拆分得到的数组“TEXTBEFORE(A2:A9,":")”、“--TEXTAFTER(A2:A9,":")”传递进行逻辑判断,返回评级。
场景6:A 列为混合文本(如 "质量:90;效率:85;创新:70"),需要解析每个维度的分数,并根据权重表(质量 40%,效率 30%,创新 30%)计算加权总分。
公式:
=MAP(A2:A10,LAMBDA(a,LET(X,REGEXP(a,"-?\d+\.?\d*",0),INDEX(X,,1)*0.4+INDEX(X,,2)*0.3+INDEX(X,,3)*0.3)))
解析:
REGEXP(...)提取出混合文本中的数据
INDEX(X,,1)*0.4表示第1列质量数据乘以权重0.4得到对应分数,再加上效率分数、创新分数,最终得到加权总分。
MAP逐行传递进行处理。
猜你喜欢
- 2025-06-08 js 如何定义map及赋值(js自定义map)
- 2025-06-08 MAP函数在WPS中的嵌套应用,倍数条件取值
- 2025-06-08 高阶用户必备:MAP函数+LAMBDA在WPS中的组合技实战!
- 2025-06-08 Excel初学小白说说循环遍历函数reduce、scan和map简单说
- 2025-06-08 python map函数的用法和特点(python中map函数功能)
- 2025-06-08 Excel新函数MAP函数基础应用篇(excel map函数)
- 2025-06-08 map函数是一个超级映射器,遍历数据就用它
- 2025-06-08 新函数MAP来了,Excel进入函数式编程,我越来越看不懂了
- 2024-07-24 【python】两分钟掌握map()函数的工作原理
- 2024-07-24 Python语言学习实战-内置函数map()的使用(附源码和实现效果)
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)