Vlookup函数只能查出第一个匹配的单元格,下方有多个符合值查不到怎么办,求大佬帮忙解决? | 您所在的位置:网站首页 › 怎么用两列数据匹配值 › Vlookup函数只能查出第一个匹配的单元格,下方有多个符合值查不到怎么办,求大佬帮忙解决? |
谢邀,辅助列+IF{1,0}数组公式可以解决,有多个符合值就代表着有“一对多”的关系,最终的展现要不然就是一个对象的多个符合值横着排,要不就是纵向排,而纵向排筛选或者排序就可以了,所以这里只说横向一一排开。 匹配出“一对多”的数据对应值,横向一一排开 例如原始数据左侧的两列,每个歌手分别对应着多首歌曲,只用最基础的VLOOKUP只能匹配第一个,现在需要以歌手为匹配对象,一次性匹配每个歌手所对应的每首歌曲。 思路为:一个歌手分别对应了多首歌曲,意味着“这个歌手在该列出现了多少次就等于他有多少首歌,也代表需要匹配的次数”,所以我们先统计出每个歌手的名字分别出现了多少次并记录下来。再使用VLOOKUP多条件查找,利用“歌手”列和“重复次数”列,两个条件去查找对应的歌曲名称。 第1步: 输入=COUNTIF(A$2:A2,A2),并向下自动填充,输入右引用符号“$”符号的目的是,让下拉自动填充的时候,统计重复次数的范围,自动选择第一行到当前行,这样统计出来的重复次数就是“当前该歌手名字的重复次数”,也就是当前该歌手的名字出现了第几次了。 (王菲-传奇的对应行,王菲出现了第4次) 第2步: 在如图的I2单元格输入=IFERROR(VLOOKUP($H2&COLUMN(A$1),IF({1,0},$A$2:$A$20&$C$2:$C$20,$B$2:$B$20),2,0),"") 按Ctrl+Shift+Enter键转换为数组公式计算结果,并向右向下填充,即可完成。 原理如下: 公式的主要部分为=VLOOKUP($H2&COLUMN(A$1),IF({1,0},$A$2:$A$20&$C$2:$C$20,$B$2:$B$20),2,0) VLOOKUP的查找对象是两个条件:第一个条件是歌手名称,即是单元格H2,按下两次F4向右不改变引用关系;第二个条件是重复次数,公式为COULUMN(A$1)——统计单元格对应的列数,这个是什么意思呢:周杰伦重复的第几次就代表了第几首歌,也就代表着“向右拉到第几列”,所以索性使用COULUMN(A$1),按一下F4向右改变引用关系,取A1单元格的列数为1,向右拉就代表了“周杰伦重复第二次”、“周杰伦重复第三次”的查找条件。 看,查找对象其实是“周杰伦1”也就意思周杰伦的第一首歌。 好了,VLOOKUP的第二组成部分是查找范围,这里的公式是IF({1,0},$A$2:$A$20&$C$2:$C$20,$B$2:$B$20),这下看着复杂了,其实这是EXCEL里经典的IF{1,0}数组公式,意思是,把A列歌手和C列重复次数列连接起来,当成一列,与歌曲名称B列是对应关系列。 这里有必要插入一下IF{1,0}的意思 前面的{1,0}是IF公式利用水平数组分别做逻辑判断,1代表TURE,0代表FALSE,具几个例子: =IF(1,哈哈,呵呵),返回为“哈哈” =IF(0,哈哈,呵呵),返回为“呵呵” =IF({1,0},哈哈,呵呵),返回为水平数组“{哈哈,呵呵}” 就是先判断数组里的第一个数字1结果为哈哈,第二个数字0结果为呵呵,输出的结果仍为数组{哈哈,呵呵}。 =IF({1,0},A2:A20,B2:B20),结果就是返回A列和B列两列数组,具体值为 {A2,B2; A3,B3; A4,B4; A5,B5; ……} 那么这里 IF({1,0},$A$2:$A$20&$C$2:$C$20,$B$2:$B$20),结果还是返回两列数组: {A2&C2,B2; A3&C3,B3; A4&C4,B4; A5&C5,B5; ……} 那对应查找对象A2&C2是不是就像常规的VLOOKUP一样了?只不过把两列数据当成一列了。 最后一个IFERROR只是美化公式,当单元格向右拉拉到错了就显示为空。 =IFERROR(VLOOKUP($H2&COLUMN(A$1),IF({1,0},$A$2:$A$20&$C$2:$C$20,$B$2:$B$20),2,0),"") 记得按下Ctrl+Shift+Enter键。 嗯,结束了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |