CASE 1
逐个给金额打折
★★★要求:逐个给金额打折fx公式示例
=MAP($I$8:$I$13,LAMBDA(金额,金额*0.9))
解释:MAP 会逐个处理金额列里的每个值。LAMBDA 中的“金额”代表当前这个单元格的值。
=MAP(数组1, [数组2], ..., LAMBDA(参数1, [参数2], ..., 计算式))
| # | 参数 | 要求 | 怎么理解 / 怎么填 |
|---|---|---|---|
| 1 | 数组1 | 必填 | 要参与计算或返回结果的单元格区域/数组。 |
| 2 | 数组2 | 选填 | 要参与计算或返回结果的单元格区域/数组。 |
| 3 | LAMBDA(参数1, 参数2, ..., 计算式) | 选填 | MAP 会把前面数组中对应位置的值传给 LAMBDA,再返回计算结果。 |
① 找到数据区域
先确认条件列和结果列在哪,注意固定区域加 $
② 按顺序填参数
依次填 数组1
③ 回车并向下填充
双击填充柄,整列公式自动套用
=MAP($I$8:$I$13,LAMBDA(金额,金额*0.9))
解释:MAP 会逐个处理金额列里的每个值。LAMBDA 中的“金额”代表当前这个单元格的值。
=MAP($H$8:$H$13,$I$8:$I$13,LAMBDA(数量,金额,数量*金额))
解释:MAP 可以同时接收两个数组。每一行的数量和金额会一起传入 LAMBDA,再计算乘积。
=MAP($E$8:$E$13,LAMBDA(项目,"项目:"&项目))
解释:逐个处理项目列文本,在每个项目名前加上“项目:”。适合批量加工文本。
上面案例里的 日期、项目 等列,就来自这张表
| 行 | 日期 | 项目 | 部门 | 区域 | 数量 | 金额 |
|---|---|---|---|---|---|---|
| 8 | 2024-01-05 | 笔记本电脑 | 销售部 | 华东 | 12 | 72,000 |
| 9 | 2024-01-12 | 显示器 | 销售部 | 华南 | 20 | 36,000 |
| 10 | 2024-02-03 | 键盘 | 市场部 | 华东 | 35 | 17,500 |
| 11 | 2024-02-18 | 鼠标 | 销售部 | 华北 | 48 | 14,400 |
| 12 | 2024-03-09 | 移动硬盘 | 市场部 | 华南 | 16 | 12,800 |
| 13 | 2024-03-21 | 打印机 | 财务部 | 华东 | 8 | 16,000 |