vlookup一次性匹配2列数据吗

所谓一对多查找,指的是一个查找值对应多个结果值的情况。在Excel中,如何使用vlookup函数完成这种一对多的查找引用,是我们需要深入学习的内容。
对于一对多查找,有两种常见的方法。第一种是通过创建辅助列来实现,第二种是嵌套其他函数进行组合公式引用。
在Excel表格中,一对多匹配引用是一个常见的场景,但这也成为许多使用者的难点。过去,通常需要利用多个函数的嵌套来形成数组公式以实现匹配效果。但随着Excel版本的更新,新的filter函数可以一步到位的提取所有符合条件的值,使得操作更为便捷。
让我们继续探讨如何通过创建辅助列来进行一对多的查询。
1. 创建辅助列
创建辅助列的目的是为了获取一个唯一不重复的查询列表。结合原始查询列表和countif函数的计数值,我们可以得到新的查询列。
公式为:=B2&COUNTIF($B$2:B2,B2)。通过这个公式,我们可以为每个值赋予一个独特的标识。
接下来,我们设置vlookup函数公式:=VLOOKUP($E$5&COLUMN(A1),$C:$D,2,0)。这里,第1参数查找值使用了column函数,它返回单元格的列序号。第2参数查找区域以辅助列为查询列,然后返回销量列对应的数据。
这个公式的特点是,通过查找值与column函数的结合,可以动态引用查找值对应的多个结果。
既然可以横向引用,自然也可以纵向引用,只需将column函数替换为引用行序号的row函数即可。公式为:=VLOOKUP($E$6&ROW(A1),$C:$D,2,0)。
通过这样一个案例,我们可以看到vlookup函数的一对多应用其实并不复杂,都是基础函数的常见用法。
接下来,我们要介绍第二种一对多的公式写法,这种方法相对繁琐,涉及多个函数的嵌套使用。
2. 组合公式引用
为了快速引用所有结果值,我们需要思考解题的思路。借鉴创建辅助列的经验,我们可以使用countif函数获取一个唯一值列表。然后通过一个复杂的公式,将这个唯一值列表与原始数据进行匹配,从而得到所有符合条件的结果值。
公式为:=VLOOKUP($D$5&COLUMN(A1),IF({1,0},$B$2:$B$29&COUNTIF(INDIRECT("b2:b"&ROW($2:$29)),$D$5),$C$2:$C$29),2,0)。这个公式结合了if数组、countif、indirect和row函数。其中,countif函数用于计数,然后与货号列进行合并,形成查询列表。然后通过if数组在vlookup函数中的应用,进行查询列和返回列的设置。结合column函数进行横向的动态引用。
