计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
wps-vlookup【效率与协作】VLOOKUP助手。帮你写VLOOKUP/INDEX-MATCH/XLOOKUP公式, 排查#N/A等常见错误,选择最合适的查找方案。 用于帮助用户解决表格查找匹配问题。当用户提到VLOOKUP、查找、匹配、#N/A时触发。 VLOOKUP formula assistant.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
解决WPS表格中最高频的痛点 — 数据查找与匹配。
据统计,VLOOKUP相关问题占WPS求助帖的35%以上。
wps-formulawps-pivot需求:根据工号查姓名
公式:=VLOOKUP(A2, 员工表!A:C, 3, FALSE)
参数解释:
A2 → 要查找的值(工号)
员工表!A:C → 查找范围(工号在第1列)
3 → 返回第3列(姓名)
FALSE → 精确匹配(99%的情况用FALSE)
需求:根据姓名查工号(姓名在右边,工号在左边)
方案A - INDEX+MATCH(推荐):
=INDEX(A:A, MATCH(D2, C:C, 0))
方案B - XLOOKUP(WPS 2021+):
=XLOOKUP(D2, C:C, A:A)
需求:根据"部门+姓名"查找工资
方案 - INDEX+MATCH+数组:
=INDEX(C:C, MATCH(1, (A:A=E2)*(B:B=F2), 0))
(Ctrl+Shift+Enter 数组公式)
方案 - 辅助列:
辅助列公式:=A2&"|"&B2
然后VLOOKUP查找 E2&"|"&F2
需求:根据成绩查等级(60→及格,80→良好,90→优秀)
公式:=VLOOKUP(A2, 等级表, 2, TRUE)
注意:等级表第一列必须升序排列!
等级表:
0 不及格
60 及格
80 良好
90 优秀
=VLOOKUP(A2, '[数据源.xlsx]Sheet1'!A:D, 3, FALSE)
注意:源文件必须打开,否则需要写完整路径
需求:查找后返回多个字段
方案 - VLOOKUP+COLUMN:
=VLOOKUP($A2, 数据!$A:$F, COLUMN(B1), FALSE)
向右拖动自动递增列号
方案 - XLOOKUP返回数组(WPS 2021+):
=XLOOKUP(A2, 数据!A:A, 数据!B:F)
一次返回B到F所有列
VLOOKUP返回#N/A?按这个顺序排查:
1️⃣ 数据类型不一致(最常见!)
症状:明明有这个值但就是找不到
原因:查找值是文本"001",表里是数字1
修复:=VLOOKUP(VALUE(A2), ...) 或 =VLOOKUP(TEXT(A2,"000"), ...)
2️⃣ 有隐藏空格
症状:肉眼看一样但匹配不上
检测:=LEN(A2) 看长度是否异常
修复:=VLOOKUP(TRIM(CLEAN(A2)), ...)
3️⃣ 查找列不在第一列
症状:范围选错了
修复:调整范围让查找值在第一列,或改用INDEX+MATCH
4️⃣ 第4参数写了TRUE或省略
症状:返回错误的值
修复:改为FALSE(精确匹配)
5️⃣ 查找范围有合并单元格
症状:只有合并区域第一行能匹配
修复:先取消合并 → 填充空值 → 再查找
确认以下信息:
┌─ 正向查找(查找列在最左)
│ └─ 单条件 → VLOOKUP
│ └─ 多条件 → 辅助列+VLOOKUP 或 INDEX+MATCH
│
├─ 反向查找(查找列在右侧)
│ └─ INDEX+MATCH 或 XLOOKUP
│
├─ 多列返回
│ └─ VLOOKUP+COLUMN 或 XLOOKUP
│
└─ 近似/区间匹配
└─ VLOOKUP(TRUE) 或 IFS
提供:
如果查找量大或需要自动化:
// JSA: 批量VLOOKUP填充
function BatchLookup() {
var ws = Application.ActiveSheet;
var lookupSheet = Application.Sheets("数据源");
var lastRow = ws.Cells(ws.Rows.Count, 1).End(-4162).Row; // xlUp
for (var i = 2; i <= lastRow; i++) {
var key = ws.Cells(i, 1).Value2; // A列查找值
// 在数据源A列查找,返回C列
var found = lookupSheet.Range("A:A").Find(key, undefined,
-4163, 1); // xlValues, xlWhole
if (found) {
ws.Cells(i, 5).Value2 = lookupSheet.Cells(found.Row, 3).Value2;
} else {
ws.Cells(i, 5).Value2 = "未找到";
}
}
Application.alert("批量查找完成!共处理 " + (lastRow - 1) + " 行");
}
| 特性 | VLOOKUP | INDEX+MATCH | XLOOKUP |
|---|---|---|---|
| 反向查找 | 不支持 | 支持 | 支持 |
| 插入列不影响 | 会错位 | 不受影响 | 不受影响 |
| 多条件 | 需辅助列 | 原生支持 | 原生支持 |
| 默认匹配 | 近似(TRUE) | 精确(0) | 精确 |
| WPS兼容 | 所有版本 | 所有版本 | 2021+ |
| 性能 | 一般 | 较好 | 最好 |
| 学习难度 | 简单 | 中等 | 简单 |
# 基础查找
/wps-vlookup 我有两张表,A表有工号和姓名,B表有工号和工资,怎么把工资匹配到A表
# 错误修复
/wps-vlookup VLOOKUP老是返回#N/A,明明数据都有
# 多条件
/wps-vlookup 根据部门和月份两个条件查找销售额