这是我认为最值得写的一篇。
因为绝大多数教程只教一种解法,然后你就以为只有这一种。但实际上,同一个需求,Excel 至少有 8 条路能走,每条路的路况不一样。
知道有几条路,你才能在遇到坑的时候换一条,而不是卡在那儿。
统一的问题:先定死需求
表:
| 工号 | 姓名 | 部门 | 工资 |
|---|---|---|---|
| A001 | 张三 | 技术部 | 12000 |
| A002 | 李四 | 市场部 | 9500 |
| A003 | 王五 | 技术部 | 15000 |
| A004 | 赵六 | 财务部 | 8800 |
需求:知道工号 `A003`,查出他的工资(15000)。
下面 8 种写法,都在解这一道题。
解法一:VLOOKUP(最主流)
优点:认知成本最低,所有人一看就懂。想系统学这个函数,见 VLOOKUP 怎么用。
缺点:数"第 4 列"容易数错;插列会静默出错;只能向右查。
适合:一次性小表、要给别人看的表。
解法二:INDEX + MATCH(最稳)
优点:方向不限、插列不乱、结构清晰。想看它和 VLOOKUP 的逐条对比,见 INDEX + MATCH 为什么比 VLOOKUP 好用。
缺点:写起来长一点,新人要理解两个函数。
适合:正式报表、长期维护的表。
解法三:LOOKUP(最短,但有前提)
优点:短,而且不需要框整个区域(只给两列就行),插列完全不受影响。
缺点:`0/(...)` 这个写法像黑魔法,别人看不懂;数据必须按升序……其实不用,这个技巧本身就绕过了排序要求,但很多人不知道这点而不敢用。
适合:自己用的报表,追求"短且稳"。
解法四:XLOOKUP(最新最好,但要看版本)
优点:一个函数搞定,不用数第几列,找不到可以自定义提示,还能向左查。这是微软官方认定的 VLOOKUP 继任者。
缺点:只有 Microsoft 365 和 Excel 2021 才有。 2019 及更早版本、以及大部分 WPS 老版本里都没有。
适合:确定所有人都用 365 的环境。
解法五:SUMIF(只适合数字,但极简)
优点:极短,而且如果你已经会 SUMIF,零学习成本。
缺点:只能取数字。 要查"部门"这种文字就返回 0。而且如果有多条同工号的记录,它会把它们加起来(这是隐患)。
适合:查数字、且确定键值唯一。
解法六:SUMPRODUCT(不用按 Ctrl+Shift+Enter 的数组公式)
优点:不用数组三键,任何版本都能跑;能做多条件(`(条件1)*(条件2)*求和列`)。
缺点:只能返回数字。
适合:多条件求和,且不想用 SUMIFS 的时候。
解法七:FILTER(365 专属,能返回一整行)
优点:能一次返回多个结果(如果有多条匹配),自动溢出到相邻单元格。
缺点:365 / 2021 才有。配合 `FILTER(A2:D5, A2:A5="A003")` 可以整行取出。
适合:365 环境下做动态报表。
解法八:OFFSET + MATCH(不推荐,但要知道)
优点:能"按偏移量取数",在动态图表里有特殊用途。
缺点:OFFSET 是易失性函数,任何单元格变动都会重算,大表里会明显拖慢速度。而且它是"数格子"的思路,极易错位。
适合:基本不用。列在这里是为了让你看到"这条路不好走"。
放到一张表里对比
| 解法 | 长度 | 能向左查 | 插列安全 | 版本要求 | 返回文字 | 推荐度 |
|---|---|---|---|---|---|---|
| VLOOKUP | 短 | ❌ | ❌ | 全版本 | ✅ | ⭐⭐⭐⭐ |
| INDEX+MATCH | 中 | ✅ | ✅ | 全版本 | ✅ | ⭐⭐⭐⭐⭐ |
| LOOKUP | 短 | ✅ | ✅ | 全版本 | ✅ | ⭐⭐⭐⭐ |
| XLOOKUP | 最短 | ✅ | ✅ | 365/2021 | ✅ | ⭐⭐⭐⭐⭐(限版本) |
| SUMIF | 短 | ✅ | ⚠️ | 全版本 | ❌ 仅数字 | ⭐⭐⭐ |
| SUMPRODUCT | 中 | ✅ | ⚠️ | 全版本 | ❌ 仅数字 | ⭐⭐⭐ |
| FILTER | 短 | ✅ | ✅ | 365/2021 | ✅ | ⭐⭐⭐⭐(限版本) |
| OFFSET+MATCH | 中 | ✅ | ❌ | 全版本 | ✅ | ⭐ |
我的实际选择顺序
不玩虚的,就按这个来:
- 自己用、版本确定是 365 → XLOOKUP,最省事
- 要给别人维护、或版本不确定 → INDEX + MATCH,最稳
- 临时查一下、就自己看 → VLOOKUP,最快
- 查数字、且键唯一 → SUMIF,最短
- 多条件 → SUMIFS(求和)或 SUMPRODUCT(任意)
- OFFSET → 除非你在做动态图表,否则别碰
评论 0