在Excel中将2个或更多VLOOKUP汇总在一起

时间:2016-09-01 11:12:49

标签: excel vba vlookup

我有一个单元需要将3个不同的值相加,但我不想使用相对/绝对单元格引用,因为源数据每年都会更改,因此单元格引用每年都需要重新指向。

我已经将VLOOKUP用于只需要显示1个值的单元格,并且一切正常,但我找不到将2个或更多VLOOKUP的结果加在一起的方法。此外,3个值中的每一个都有不同的标准,因此我认为我需要3个单独的VLOOKUP函数。

有没有办法做到这一点?

这是我使用的公式,它会返回“ #N / A ”错误:

= VLOOKUP( “10000”,数据表,如图3所示,假)+ VLOOKUP( “10001”,数据表,如图3所示,假)+ VLOOKUP( “10002”),数据表,如图3所示,假)+ ...等等等。

非常感谢提前 罗布

3 个答案:

答案 0 :(得分:1)

以下是对3个VLOOKUP进行求和的简单示例:

=SUM(VLOOKUP("A",A1:B3,2,FALSE),VLOOKUP("E",A5:B7,2,FALSE),VLOOKUP("I",A9:B11,2,FALSE))

我放了3个简单的表,每个3行和2列,并将查找值一起添加。所以我查找A并返回1E并返回5I并返回9。然后我总结它们并返回15。 : - )

答案 1 :(得分:0)

提供唯一的变化部分是 lookup_value (在您的情况下似乎是这样)然后,而不是写出多个不同的VLOOKUP子句,然后对它们求和(这可能会导致在确实非常长的构造中,您可以使用单个,等效的VLOOKUP设置。

因此,而不是,例如:

=VLOOKUP("X",DataTable,3,FALSE)+VLOOKUP("Y",DataTable,3,FALSE)+VLOOKUP("Z",DataTable,3,FALSE)

我们可以使用更短的内容:

=SUM(VLOOKUP(T(IF(1,{"X","Y","Z"})),DataTable,3,FALSE))

或者,为了更加灵活,如果我们在工作表内的某个连续范围内有“X”,“Y”和“Z”,例如H1:H3,然后:

=SUM(VLOOKUP(T(IF({1},H1:H3)),DataTable,3,FALSE))

如果条件不是文本字符串,而是数字,那么我们可以使用N代替T:例如,如果我们要查找,而不是“X”,“Y”和“ Z“,但是1,2和3,那么我们将使用:

=SUM(VLOOKUP(N(IF(1,{1,2,3})),DataTable,3,FALSE))

或:

=SUM(VLOOKUP(N(IF({1},H1:H3)),DataTable,3,FALSE))

如果我们的标准包含文本和数字的混合,例如“X”,2和“Z”,那么我们需要一种稍微不同的方法,不过我会把它留给另一篇文章!

参考文献:

https://excelxor.com/2014/09/05/index-returning-an-array-of-values/

此致

答案 2 :(得分:0)

天哪。每个人都停止使用VLOOKUPINDEXMATCH一起更干净,更整洁,更不容易出错。

现在,对于你正在做的事情,你也不需要。为什么不查看SUMIFS

在你的情况下,它看起来像这样

=SUMIFS(Sumcolumn;Criteriacolumn;10000;Criteriacolumn2;10001,...)

而且,即使你的sumcolumns彼此不同 - 总结几个sumifs比总结几个vlookup更容易,因为vlookup将抛出#N/A如果为空引用,而sumifs将返回{ {1}}。如果您只想使用一个公式来提高效率,请使用0 - 但这是一个需要一些练习才能编写的公式。

相关问题