Excel - SUMIF 索引和匹配

Posted

技术标签:

【中文标题】Excel - SUMIF 索引和匹配【英文标题】:Excel - SUMIF INDEX and MATCH 【发布时间】:2017-10-28 05:25:49 【问题描述】:

我坚持使用 sumif 公式。我想如果我使用一些索引和匹配的组合,我可以让它工作,但在过去的一个小时里我一直无法这样做!

我需要根据门牌号和 2 个日期从一个数字表中求和。例如,我需要将日期 08-05-17 和 13-05-17 之间的房子 1 的数字相加。

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

【问题讨论】:

【参考方案1】:

修改如下

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

将“house 1”更改为引用。

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

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

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

【讨论】:

【参考方案2】:

假设:

第一个表在 Sheet1 上 第一个表中的 House 1 数据在第 4 行中 第二张表在单独的纸上 第二个表中的房屋 1 数据在第 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))

【讨论】:

【参考方案3】:

OFFSET 和 INDIRECT 是可变的,这可以通过 INDEX/MATCH 实现

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

0 作为 INDEX 中的第三个条件将返回 MATCH 选择的行中的所有列。

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

【讨论】:

顺便说一句,我建议将 1 到 6 放入 A4:A9 并将单元格格式化为\Hou\s\e 0。这将消除 MATCH 中的字符串连接。 我想我给了你四个小时的先机。 :) @Jeeped 这个答案很完美!我想坚持使用索引和匹配,而不是偏移和间接。干杯【参考方案4】:

AI4 使用数组操作的公式(虽然是普通公式,而不是 CSE):

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

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

【讨论】:

以上是关于Excel - SUMIF 索引和匹配的主要内容,如果未能解决你的问题,请参考以下文章

R中Excel中索引匹配的等价物

Excel 2010 索引匹配 VBA

Pandas Merge 中未捕获 Excel 中的“索引匹配”功能(或者是吗?)

在每个单元格 Excel 中使用 VBA 而不是使用公式(索引和匹配)

在索引(匹配)数组中查找最小值 [EXCEL]

excel vba索引匹配数组以分隔文件