已是老生常谈了:源数据不要合并单元格,不要合并!不过工作就是这样的,团队的执行力总是跟理想相去甚远。
当拿到的数据表有合并单元格,还要求匹配出合并单元格的内容时,就只有磨练技术了。
案例:
下图 1 中左边的数据表中包含了员工及部门,请在右侧区域根据姓名查找出对应的部门。
效果如下图 2、3 所示。
解决方案:
先制作下拉菜单。
1. 选中 D2 单元格 --> 选择菜单栏的“数据”-->“数据验证”
2. 在弹出的对话框中选择“设置”选项卡 --> 按以下方式设置 --> 点击“确定”:
- 允许:选择“序列”
- 来源:选择 $A$2:$A$9 区域
“姓名”下拉菜单就制作好了。
接下来设置查找公式。
3. 在 E2 单元格中输入以下公式:
=LOOKUP("々",INDIRECT("B2:B"&MATCH(D2,A:A,0)))
为了便于大家更直观地理解公式,我会用 F9 分段显示公式结果来讲解。
公式释义:
- MATCH(D2,A:A,0):查找 D2 单元格的值在 A 列中的排位,结果为 6;
- "B2:B"&...:用 & 将分号中的内容和上一步骤中得出的行数连接在一起,结果为 B2:B6
- INDIRECT():上一步中得出的 "B2:B6" 是文本格式,而不是一个真正的单元格引用,所以需要用 INDIRECT 函数将其转变成单元格引用;最后得出一组数组,结果为 B2:B6 区域每个单元格的值。
indirect 引用单元格时加和不加 "",代表的含义和得出的结果完全不一样,加 "" 表示引用 "B2:B6" 区域的文本,不加则是把 B2:B6 当成了一个地址来看待。
有关 indirect 两种引用的详细区别,请参阅 Excel indirect 函数(1) - 将一列数据排列成m行*n列。
- LOOKUP("々",...):
- “々”在汉字中是一个编码很大的字符,比 lookup 公式中常用来替代的“座”还要大,可以通过小键盘的 Alt+41385 输入;
- 利用 lookup 函数可以模糊查找的特性,因为“々”编码足够大,当没有完全匹配的值,也没有比它更大的文本时,lookup 函数会在所选区域内查找直至最后一个文本单元格,从而实现本案例的需求
重新选择 D 列的姓名,E2 单元格会自动查找出对应的部门。
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。