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

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

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

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

【问题讨论】:

    标签: excel indexing excel-formula match between


    【解决方案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 版本应该(据说)更快,但我喜欢这种形式的可读性...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-02
          • 2018-07-24
          • 2018-11-10
          • 1970-01-01
          • 2019-05-07
          • 1970-01-01
          • 2014-09-20
          • 2017-06-26
          相关资源
          最近更新 更多