Excel表格vlookup函数合并单元格查找
虽然一再强调原始数据不要合并单元格,但是实际应用中这种操作总是在所难免。
有关合并单元格的问题,之前讲过:
今天又有同学提出了新问题,合并单元格如何用 vlookup 查找?
来看示例。
案例 1:
根据 A 列的“姓名”,查找 H:I 列中对应的“底薪”,填入 C 列
案例 2:
根据 K:L 列的“姓名”和“月份”,查找 D 列中对应的“奖金”,填入 M 列
案例 1 解决方案:
1. 先来试一下最基础的 vlookup 公式,然后下拉,发现不行,每个人都只有“一月”的数据,其他月都查不到
2. 这是为什么呢?我们在 E 列加个公式 =A2 就清楚了:
- 因为合并单元格的值实际是写在合并区域的第一个单元格中
- 其他单元格的值都为 0
- 所以 2、3、4 月查不到,因为它们对应的姓名为 0
3. 利用合并单元格的这个特性,我们在 F 列增加一个辅助列,输入以下公式,下拉,这样所有 0 值都等于它上方最近的非 0 值:
=IF(A2=0,F1,A2)
4. 现在,我们只要在 C 列的公式中,将 vlookup 的第一个参数 A2 替换成 F2 就可以了
案例 2 解决方案:
1. 案例 2 需要根据左侧表格的“姓名”和“月份”,查找对应的奖金,多条件查找虽然 vlookup 也能实现,但我更推荐 index match 函数:
- 在 M2 单元格中输入以下公式,按 Ctrl Shift Enter 键使数组函数生效:=INDEX($D$2:$D$13,MATCH(K2&L2,$A$2:$A$13&$B$2:$B$13,0))
- $D$2:$D$13:表示需要查找的值区域
- MATCH(K2&L2,$A$2:$A$13&$B$2:$B$13,0):表示 K2 和 L2 分别与 $A$2:$A$13 和 $B$2:$B$13 的值绝对匹配
- 关于 index match 数组函数的详细解释,请参见 Excel 如何查询 3 个以上条件?
2. 然而,我们发现只有“李四”“一月”的奖金找到了,其他都找不到。为什么呢?跟案例 1 的原因一样,合并单元格惹的祸,忘记的同学再看一眼 E 列就想起原因了
3. 既然知道了原因,我们就利用现成的辅助列,把 M 的公式中 $A$2:$A$13 改成 $F$2:$F$13 就可以了,别忘了按 Ctrl Shift Enter 键:
赞 (0)