【问题标题】:Excel formula to calculate joins between tablesExcel公式计算表之间的连接
【发布时间】:2017-03-21 19:20:47
【问题描述】:

我有两个表,我必须根据连接条件计算值。可以用公式来做吗?

表格如下

表1

RefT1 Value
A     7
B     2
C     5
D     4

表2

RefT2 Value
B     5
D     8
E     7

我需要计算:

两个表项的值之和

Table1 中的值的总和,而不是 Table2 中的值的总和

表 2 中的值的总和,而不是表 1 中的值的总和

我可以使用什么公式来实现这一点?

【问题讨论】:

  • VLOOKUP()INDEX()/MATCH()SUMIFS() 应该都能做到这一点。到目前为止,您尝试过什么?
  • 我用过vlookup & sumif,但不知道如何获取表之间的条件连接
  • 可以使用 ADO 生成表之间的真正 JOIN。添加一个 GROUP BY 子句,您应该能够对 hte 条件求和。

标签: excel join


【解决方案1】:

你需要三个公式

两者(一个数组公式):

=SUM(SUMIF(A2:A5,D2:D4,B2:B5),SUMIF(D2:D4,A2:A5,E2:E4))

使用 Ctrl-Shift-Enter 输入

表 1:

=SUMPRODUCT(--(ISERROR(MATCH(A2:A5,D2:D4,0))),B2:B5)

表 2:反转列:

=SUMPRODUCT(--(ISERROR(MATCH(D2:D4,A2:A5,0))),E2:E4)

【讨论】:

  • 完美。谢谢斯科特
【解决方案2】:

假设您必须列出名称为 Table1 和 Table2 以及您在示例中使用的列名称的对象/表,以下公式将为您提供在 Table1 中找到的项目的总和(也存在于 Table2 中):

=SUM(IF(ISERROR(MATCH(Table1[RefT1],Table2[RefT2],0)),0,Table1[Value]))

反之,为您提供表 2 中所有项目的总和(也存在于表 1 中):

=SUM(IF(ISERROR(MATCH(Table2[RefT2],Table1[RefT1],0)),0,Table2[Value]))

当然,两者的总和应该是项目的“加入”总和:

注意,所有公式都是数组公式,因此必须使用Ctrl + Shift + Enter 输入。有关数组公式的更多信息,请阅读:https://support.office.com/en-us/article/Guidelines-and-examples-of-array-formulas-7D94A64E-3FF3-4686-9372-ECFD5CAA57C7

【讨论】:

  • 我刚刚意识到我弄错了第一个和第二个公式。他们正在对另一张表中匹配的项目求和,而 OP 要求相反(另一张表中的 no 匹配)。然而,由于这很容易解决,特别是因为@ScottCrainer 在他的解决方案中得到了正确的解决方案,所以我将保留这个解决方案。
  • 短语“两个表中项目的值的总和”可能表示也可能不表示“项目的值总和找到 在两个表中'。 OP的叙述模棱两可;有人应该和提出这个家庭作业问题的老师说几句话。
猜你喜欢
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
相关资源
最近更新 更多