vlookup 函数本身只返回第一个匹配结果,但我们可以结合其他函数实现多结果查找。以下是一些小技巧,帮助你轻松搞定 vlookup 多结果查找,效率翻倍!
方法一:使用数组公式(适用于 excel 2019 及更早版本)
1. 假设:你有一个包含多个查找值的列表在 a 列,查找表在 b 列到 d 列,你想在 e 列返回与 a 列每个值对应的所有结果。
2. 步骤:
– 在 e2 单元格输入以下数组公式(输入完毕后按 `ctrl shift enter`):
“`excel
=iferror(index($b$2:$d$100, match($a2, $b$1:$d$1, 0)), “”) & “, ” & index($b$2:$d$100, match($a2, $b$1:$d$1, 0) 1) & “, ” & index($b$2:$d$100, match($a2, $b$1:$d$1, 0) 2)
“`
– 将公式向下拖动填充到其他单元格。
3. 解释:
– `match($a2, $b$1:$d$1, 0)` 找到第一个匹配值的行号。
– `index($b$2:$d$100, match($a2, $b$1:$d$1, 0))` 返回第一个匹配结果。
– 通过增加 1、2 等来获取后续匹配结果。
– `iferror` 处理找不到匹配值的情况。
方法二:使用“查找与替换”功能
1. 步骤:
– 选中查找表。
– 按 `ctrl h` 打开“查找和替换”对话框。
– 在“查找内容”框中输入查找值。
– 在“替换为”框中输入相同的内容,并添加分隔符(如逗号和空格)。
– 点击“全部替换”。
2. 优点:简单快捷,适合一次性处理。
方法三:使用动态数组函数(适用于 excel 365 及兼容版本)
1. 假设:同方法一。
2. 步骤:
– 在 e2 单元格输入以下公式:
“`excel
=iferror(let(
lookup_value, $a2,
lookup_range, $b$1:$d$1,
results_range, $b$2:$d$100,
match_row, match(lookup_value, lookup_range, 0),
if(match_row = n/a, “”, index(results_range, match_row)),
if(row(results_range) – row(results_range[1]) >= match_row, index(results_range, match_row row(results_range) – row(results_range[1])), “”)
), “”)
“`
– 将公式向下拖动填充到其他单元格。
3. 解释:
– `let` 函数简化变量计算。
– `match` 找到匹配行号。
– `index` 结合行号和相对行号返回所有匹配结果。
方法四:使用 power query
1. 步骤:
– 将数据加载到 power query 编辑器。
– 使用“合并查询”功能,将查找表与主表合并,选择“多个匹配”选项。
– 加载数据回 excel。
2. 优点:功能强大,可处理复杂查询。
总结
以上方法可以帮助你实现 vlookup 多结果查找,选择适合你的方法,提高工作效率!