Excel - VLOOKUP搜索两列

时间:2017-06-29 21:06:10

标签: excel excel-formula

所以这就是我想要做的。在我的Backorder工作簿中,我有一个Item#(这可能是由制造商部件#或零售部件#组成)和部件描述。我没有手动输入每个部分的描述,而是希望根据Item#自动填充它。所以我有一个VLOOKUP方程,引用我的库存工作簿,在制造商零件号,零售零件号和零件描述之间进行搜索。然后在找到时返回零件描述。我的代码看起来像这样:

=VLOOKUP($G3, '[Finished Inventory.xlsx]Finish goods'!$E$2:$G$4000, 3, 0)

所以我让这个工作......但不是没有问题。返回的唯一具有适当值的行是包含Manufacturer Part#的行(这是搜索到的第一列)。但这里是奇怪的部分(至少对我来说):当我将VLOOKUP范围从3列(制造商零件号,零售零件号和零件描述)更改为2(零件零件号和零件描述)时,我有更好的结果具有较少的#N / A细胞。问题是,现在带有制造商零件号的零件是#N / A.看起来像VLOOKUP只搜索搜索范围的第一列。

因此在输入完全后我意识到VLOOKUP只搜索一列...可以制作一个解决方案,使其搜索两列并返回第三列吗?

1 个答案:

答案 0 :(得分:1)

因此,要模仿包含两个搜索列和一个结果列的=VLOOKUP,请使用以下内容:

=(IFERROR(INDIRECT("C" & MATCH($D$12,A:A,0)),INDIRECT("C" & MATCH($D$12,B:B,0))))
  

D12是您的输入单元格。

INDIRECT将采用文本字符串并将其转换为单元格引用,Match会在列中找到一行,其中该值的第一个实例是存在。

在此示例中,首先搜索列A,如果返回错误,则搜索列B,在任何一种情况下,结果都是列C中匹配的行

a - 1 - res1
b - 2 - res2
c - 3 - res3
d - 4 - res4

在上面的例子中," c"进入D12将给我们" res3"在我们的公式输出中,其中" 2"会给我们" res2"等等。