查找excel数组中的文本的完全匹配(来自另一个工作表),并显示同一行中的特定单元格值

时间:2016-02-05 00:59:45

标签: excel vba excel-vba

我正在比较两个单独的电子表格。我需要编写一个公式,在其他工作表中找到确切的文本(如果存在),然后在相应的行中只显示一个值,只有5个单元格。

我尝试过多次索引匹配迭代无济于事。任何帮助将不胜感激。工作表的格式大致相同。

如果我不够清楚,请告诉我。

我使用了这个公式,但无论单元格数据是否与另一张表格中的数据匹配,它都会显示数据。

= IF(ISERROR(INDEX(product_performance $ A $ 2:$ E $ 850,SMALL(IF(product_performance $ A $ 2:$ A $三十四万五千○五十零= $ A $ 13 ROW(product_performance $ A $ 2:$ A $ 3450) ),ROW(1:!1)),8)),"",INDEX(product_performance $ A $ 2:$ H $ 3450 SMALL(IF(product_performance $ A $ 2:$ A $ 3450 = $甲$ 13 ROW(product_performance $ A $ 2:$ A $ 3450)),ROW(1:1)),8))

1 个答案:

答案 0 :(得分:1)

你不能要求$ A $ 2中的8 th 列:$ E $ 850,因为它只引用了5列。您使用的公式似乎是用于返回第一,第二,第三等匹配值,但您的叙述没有提及多个返回。对于单次退货,VLOOKUP functionINDEX / MATCH功能对最佳。

'vlookup
=IFERROR(VLOOKUP($A13, product_performance!$A$2:$H$3450, 8, FALSE), "")
'index/match
=IFERROR(INDEX(product_performance!$A$2:$H$3450, MATCH($A13, product_performance!$A$2:$A$3450, 0), 8), "")
=IFERROR(INDEX(product_performance!$H$2:$H$3450, MATCH($A13, product_performance!$A$2:$A$3450, 0)), "")

对于多次退货,请抛弃SMALL function,转而使用较新的AGGREGATE¹ function。作为标准(非数组)公式,

=IFERROR(INDEX(product_performance!$H:$H, AGGREGATE(15, 6, ROW($1:$3450)/(product_performance!$A$1:$A$3450=$A$13), ROW(1:1))), "")

填写后续退货。

IFERROR function围绕着sinbce xl2007,大大减少了IF(ISERROR(...错误控制所需的公式。