Excel VBA:匹配范围内的值并返回同一行上另一个单元格的值

时间:2016-11-12 19:39:14

标签: excel indexing match formula

我的表格看起来像这样:

+---+------------+-------------+
|   |     A      |      B      |
+---+------------+-------------+
| 1 | $12,345.67 | ABC inc.    |
| 2 | $23,456,78 | CDE Ltd.    |
| 3 | $34,567.89 | Sample LLC  |
+---+------------+-------------+

我已成功使用以下Excel公式在A列中搜索特定的美元金额,并从B列返回相应的值。例如,如果在A中找到$ 34,567.89,则公式返回“Sample LLC”:

=IFERROR(INDEX(B1:B3,MATCH(A3,A1:A3,0)),"")

我遇到的问题是我需要能够同时在4个工作表中运行这个公式,并且它不能正常工作。我尝试了以下语法无济于事:

=IFERROR(INDEX(CHOOSE({1,2,3,4},’Sheet1’!B1:B3,’Sheet2’!B1:B3,’Sheet3’!B1:B3,’Sheet4’!B1:B3),MATCH(A3,CHOOSE({1,2,3,4},’Sheet1’!A1:A3,’Sheet2’!A1:A3,’Sheet3’!A1:A3,’Sheet4’!A1:A3),0)),"")
=IFERROR(INDEX(’Sheet1’!B1:B3&’Sheet2’!B1:B3&’Sheet3’!B1:B3&’Sheet4’!B1:B3,MATCH(A3,’Sheet1’!B1:B3&’Sheet2’!B1:B3&’Sheet3’!B1:B3&’Sheet4’!B1:B3,0)),"")

我可以使用什么公式/ VBA子来达到预期效果?如果有人问,A列中的美元值是唯一的(从不重复)。

1 个答案:

答案 0 :(得分:0)

=IFERROR(INDEX(Sheet1!B1:B3,MATCH(A3,Sheet1!A1:A3,0)),"") & 
 IFERROR(INDEX(Sheet2!B1:B3,MATCH(A3,Sheet2!A1:A3,0)),"") &
 IFERROR(INDEX(Sheet3!B1:B3,MATCH(A3,Sheet3!A1:A3,0)),"") & 
 IFERROR(INDEX(Sheet4!B1:B3,MATCH(A3,Sheet4!A1:A3,0)),"")