今天跟大家分享下我们如何在带有合并单元格的表格中进行数据查询,这样的问题相信很多人都遇到过,在带有合并单元格的表格中使用函数进行数据查询,往往是找不到正确的结果的,今天就跟大家分享会出现这种情况的原因以及解决方法。
一、合并单元格为什么无法使用函数
这个是因为函数公式看到的数据与我们看到的数据是不同的,如下图所示,右侧的就是函数公式看到的数据,它其实就是将合并单元格取消之后的格式,这样的话仅仅只有每个班级的第一个姓名会对应班级,其余的数据是没有对应班级的,所以就是造成函数识别错误,那么对于这样的情况我们应该如何解决呢?分为2种情况
二、数据源可以更改
如果你的数据源是可以更改的,最简单的方法就是将合并单元格取消掉,然后为每个姓名填充它们对应的班级,这个过程是可以批量设置的,操作也非常的简单
首先需要把合并单元格取消掉,然后按下【F5】调出定位点击【定位条件】选择【空值】点击确定,随后在编辑栏中输入等于=A2(就是第一个班级的位置)按下快捷键【Ctrl+回车】即可批量填充姓名
姓名填充完毕后,它就是一个简单的多条件查询了,在这里不建议使用vlookup,更建议大家使用index+match进行数据查询
公式为:=INDEX($C$2:$C$13,MATCH(F3&G3,$A$2:$A$13&$B$2:$B$14,0))
这个公式之前跟大家介绍过很多次了,在这里就不再多做介绍了,就是index+match多条件查询的常规用法
三、数据源不能更改
第二种情况是数据源不能更改,必须保持合并单元格的格式,这种情况就比较复杂了,我需要借助indirect函数,这个函数的使用方法前几天跟大家分享过,如果想要了解我会将文章链接放在最后。我们可以使用indirect函数来构建一个动态的数据查询区域,来达到数据查询的效果
公式为:=VLOOKUP(F4,INDIRECT("B"&MATCH(E4,A:A,0)&":C14"),2,0),跟大家简单的介绍下查询原理,先来了解下他的参数
第一参数:F4,查找表中姓名的位置
第二参数:"B"&MATCH(E4,A:A,0)&":C14"),数据查询区域,它是一个动态的区域
第三参数:2,查找的结果在第二参数的第二列
第四参数:0,表示精确匹配
关键是Vlookup函数的第二参数,如下图所示,在这里B就是列标号,MATCH(E4,A:A,0)它的作用是查找班级班A列的位置,C14是表格的结尾位置
如果班级是1班,Vlookup函数的第二参数为:B3: C14如果班级是2班,Vlookup函数的第二参数为:B8: C14如果班级是3班,Vlookup函数的第二参数为:B12: C14
这样的话就会定位到各自班级对应的姓名,并且这个班级的姓名永远是在最前面的,当我们将班级设置为2班,Vlookup就会以下图黄色区域为查找区域进行数据查询
以上就是今天分享的全部内容,对于合并单元格的数据查询,第二种方法是通用的,它适用于任何查找函数,不仅限于Vlookup函数,大家可以动手试一下,可能很多人都会觉得比较难,但是我觉得这个算是比较简单的方法了。