【问题标题】:How to sumif the vlookup value of a range?如何总结一个范围的vlookup值?
【发布时间】:2016-04-12 19:07:21
【问题描述】:

我不确定如何解释我想要实现的目标,所以我将从我正在使用的数据开始:

1) 列出与游戏对应的 ID 的表格。每个游戏都有多个 ID。

2) 列出 ID 和这些 ID 赚取的美元的表格。

在另一个表中,我有游戏列表,并希望返回这些游戏的收入总和:

Tables 1,2,3

我试图通过结合使用 SUMIF 和 VLOOKUP 公式来做到这一点,但我似乎无法找到一种方法来做到这一点,因为 VLOOKUP 返回一个值而不是一个范围。如果范围的查找值(与代码对应的游戏)匹配,我想要做的是求和 sum_range(获得的美元)。

我可以简单地在第二个表中添加一列,它使用 VLOOKUP 返回该代码的游戏。但问题是这需要在大量工作表中完成,并且每次接收到新数据。

希望这是有道理的,并提前感谢您为我提供的任何帮助!

干杯, 玛丽亚

【问题讨论】:

  • 如何填充“游戏”值?该列中有公式还是手动输入的?这些是实际的表格、命名范围还是只是一组单元格?如果前两位叫什么名字?如果后者比它们都在同一张纸上,还是在不同的纸上?编辑:表格的行数是否相同?
  • 必须通过公式完成还是允许使用 VBA 代码?
  • 表 1 是始终按升序排序还是随机列表?
  • 您可以使用数组公式,例如:=SUM((SUBSTITUTE(TRANSPOSE(Table2!A2:A10),Table1!A2:A9,Table1!B2:B9)=Table3!A2)*TRANSPOSE(Table1!B2:B10))... 但这不是更大范围的最佳方法:/
  • 您可以轻松使用 UDF,但如果 2 个数据表每次都带有相同的第一列(两个表的代码列相同,但每次下载不同),那么更容易构建的公式

标签: excel range vlookup sumifs


【解决方案1】:

嗯,这可能有点作弊。如果您查看游戏代码,您正在寻找篮球或棒球。因此,如果代码中包含其中一个词,我们就可以求和。

If case sensitivity is important
=SUMPRODUCT(--(ISNUMBER(FIND("Basketball",B2:B16)))*C2:C16)

or if case sensitivity is not important 
=SUMPRODUCT(--(ISNUMBER(SEARCH("Basketball",B2:B16)))*C2:C16)

B2:B16 would be your code in table 2
C2:C16 would be your $ earned column in C2
The formula would be placed where the ? cell is beside big win Basketball.

更新了关键字选项

因此,如果您不仅要查找棒球或篮球,而是要查找总关键字的整个字符串,则可以使用以下内容,前提是表 3 中的单词构成代码的一部分空格被删除。

=SUMPRODUCT(--(ISNUMBER(FIND(SUBSTITUTE(B19," ",""),B2:B16)))*C2:C16)
or
=SUMPRODUCT(--(ISNUMBER(SEARCH(SUBSTITUTE(B19," ",""),B2:B16)))*C2:C16)

这假定您在代码中查找的关键字在 B19 中。替换函数会删除空格以匹配您的代码。

【讨论】:

  • 谢谢,但不幸的是,这只是代码的快照,此实例不是其余数据的规则。我不相信代码中有任何唯一标识符。
【解决方案2】:

在第二个表中添加一个(隐藏)列,在代码的第一个表中执行VLOOKUP,检索游戏名称。

现在您的SUMIF 有了一些基础:附加的隐藏列中的值应该与您在摘要中的游戏相匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2020-06-05
    • 2022-11-04
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多