EXCEL:由于名称差异很小,将SUMIFS与多个VLOOKUP相结合

时间:2012-12-04 10:18:52

标签: excel vlookup sumifs

好的,这将是一个难以回答的问题,但我会尝试一下。

我在一个工作表(工作表)中有三张(Sheet1,Sheet2,Sheet3)。

Sheet1 包含~100,000行,其中列公司(A)持有(B)产品(C)年(D)花费(E) Sheet2 包含100行,其中列公司(A)持有(B)特定年份的产品支出(C)
Sheet3 包含100行,其中列公司(A) ID(B) Variant1(C),< em> Variant2(D), Variant3(E)

我想要的是 Sheet2 来计算某些年份的产品花费。通过使用函数 SUMIFS ,我已经能够在 Sheet1 中进行测试。所以在 Sheet1 中我使用了:

=SUMIFS(E:E,A:A,"Fake Ltd",B:B,"Fake Holding",C:C,"Dog Food",D:D,"2011")

问题在于公司名称在所有工作表中都不相同。我试图通过FuzzyFind来解决它,但这不能很好地完成。所以我决定改变我的方法,这就是 Sheet3 存在的原因。此工作表包含一行中一个公司的所有不同名称变体(类似于关系数据库)。

现在我需要在 Sheet2 中使用此 SUMIFS 功能,其中公司名称与 Sheet3 中所有可能的其他公司名称相关,因此它可以将出现在 Sheet1 中的公司名称汇总,就像它是一个公司名称一样。 Sheet3 中的 Company 列是“已选择”的公司名称,也是 Sheet2 中使用的名称。这是 Sheet1 提出的问题。

所以我需要在 Sheet2 中将 SUMIFS VLOOKUP 结合起来,但我不知道如何。任何线索?我会尽力改善我的问题,我可以想象如果我没有做最好的解释。

2 个答案:

答案 0 :(得分:1)

除非Sheet1是只读的,否则只需在Sheet1中添加另一列,在其中从Sheet3中查找正确的公司名称。然后根据此列在Sheet2中构建SUMIFS。

如果您使用的是Excel 2010/13,请考虑安装Powerpivot作为替代方案。在这里,您只需要将Sheet1中的表与Sheet3中的表通过公司名称列链接 - 然后生成一个枢轴,为您提供所需的所有聚合!

答案 1 :(得分:0)

我认为你所追求的是excel的阵列功能。

http://office.microsoft.com/en-au/excel-help/introducing-array-formulas-in-excel-HA001087290.aspx

对于C表,我建议重复这个模式:   公司,Variant

这样,您可以交叉引用在C中匹配的任何和所有公司,而不尝试与偏移1,2,3 ... n

进行比较

然后,您可以将结果组合起来并使用它来匹配多个条件:

http://blog.contextures.com/archives/2012/07/12/check-multiple-criteria-with-excel-index-and-match/

(标准基本上是与公司名称和年份匹配的所有行的并集)。

一旦你得到匹配的行数组,你就可以在顶部应用你的sumif。