Excel - SUMIF 索引和匹配

Excel - SUMIF INDEX and MATCH

我受困于求和公式。我想如果我混合使用索引和匹配,我可以让它工作,但在过去的一个小时里我一直无法这样做!

我需要根据门牌号和 2 个日期从 table 个数字中求和。例如,我需要对日期 08-05-17 和 13-05-17 之间的房屋 1 的数字求和。

我以前使用索引和匹配的经验是,我每次都只用它来获取一个特定的数字。

修改以下内容

=SUMIFS(OFFSET(B3:ZZ3,MATCH("house 1",E:E,0)-3,0),B3:ZZ3,">"&42863,B3:ZZ3,"<"&42868)

将 "house 1" 更改为引用。

将42863和42868分别改为开始日期和结束日期的引用。 (数字只是数字格式的日期。)

将范围中的 3 和匹配公式更改为包含日期的行号。

将B3:ZZ3更改为您日期的行范围。假设您正在连续更新数据,您可以通过增加范围来提供 space,如我在 ZZ 列中的示例。

假设:

  • 第一个 table 在工作表 1 上
  • 第一个 table 中的房屋 1 数据在第 4 行中
  • 第二个 table 单独 sheet
  • 房子 1 数据在第二 table 在第 4 行

Sheet2 单元格 AG4 中的这个公式应该有效:

SUM(INDIRECT("Sheet1!R4C"&22+MATCH(AD4,Sheet1!W3:AC3,0),FALSE):INDIRECT("Sheet1!R4C"&22+MATCH(AE4,Sheet1!W3:AC3,0),FALSE))

OFFSET 和 INDIRECT 是易变的,这可以用 INDEX/MATCH

=SUMIFS(INDEX(Sheet1!$W:$AC,MATCH("House " & B4,Sheet1!$A:$A,0),0),Sheet1!$W:$AC,"<=" & $AE4,Sheet1!$W:$AC,">=" & $AD4)

作为 INDEX 中第三个标准的 0 将 return MATCH 选择的行中的所有列。

这个公式是非易失和非数组的。

使用数组操作的 AI4 的公式(尽管是普通公式,不是 CSE):

=SUMPRODUCT(Sheet1!W4:XX100*
  (Sheet1!A4:A100 = "House " & A4)*
  (Sheet1!W3:XX3 >= AD4)*
  (Sheet1!W3:XX3 <= AE4))

p.s。 Index/Match 版本应该(据说)更快,但我喜欢这种形式的可读性...