Vlookup数组函数

时间:2014-04-08 16:55:48

标签: arrays excel vlookup

我正在尝试这样的事情:

{=VLOOKUP(A13:D13,[data.xls]Sheet1!$A$162:$H$215,8,FALSE)}

如何查找在表/数组中查找完全匹配数组的值数组(A11:D13)?

因此需要按顺序匹配A13,B13,C13,D13,并且在表查找中需要完全匹配才能返回值。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

尝试此数组公式( Ctrl + Shift + Enter ):

=INDEX([data.xls]Sheet1!$H$162:$H$215,MATCH(1,1*ISNUMBER(MATCH([data.xls]Sheet1!$A$162:$A$215,A13:D13,0)),0))

离开最内心:

MATCH($A$162:$A$215,A13:D13,0)从您的表中获取您要查找的值中的值(反向查找的类型)。

这些内容将0转换为11*ISNUMBER(),然后MATCH(1, ... ,0)获取第一个1的行号。

INDEX只是使用它然后返回相应的值。

注意:这将获取首先出现在A13:D13范围内的值,这意味着它不会首先在列中查找A13,但它会查看表中的第一个单元格它匹配任何A13:D13


如果您想首先检查A13:

=VLOOKUP(INDEX(A13:D13,MATCH(1,1*ISNUMBER(MATCH(A13:D13,[data.xls]Sheet1!$A$162:$A$215,0)),0)),[data.xls]Sheet1!$A$162:$H$215,2,0)

它适用于类似的逻辑,但现在使用INDEX来获取A13:D13中表格数组中首先出现的值,然后将其用于vlookup。

答案 1 :(得分:0)

由于两张纸都是可编辑的,而不是制作更复杂的东西,我会在两张纸上添加一个“辅助列”。

因此,例如,在第一张表中添加一列BEFORE COLUMN A并将公式放入(这里假设您对第2行这样做,但显然根据需要更改行号):

= A2 & "|" & B2 & "|" & C2 & "|" & D2

对您的其他工作表执行相同操作,以便您可以匹配某些内容,现在您可以使用单个单元格值进行常规VLOOKUP()功能。

希望这是有道理的!

答案 2 :(得分:0)

你可以尝试这个公式,如果在A162中找到连续4行的4个A13:D13值,它只会返回一个匹配项:A215

=INDEX($H$162:$H$212;SUMPRODUCT(MATCH(A13&B13&C13&D13;$A$162:$A$212&$A$163:$A$213&$A$164:$A$214&$A$165:$A$215;0)))

根据您的区域设置,您可能需要更换arg separator";" by","