【问题标题】:Sum row values based on horizontal and vertical criteria根据水平和垂直标准对行值求和
【发布时间】:2018-06-21 13:51:15
【问题描述】:

我希望根据水平月份范围和垂直名称范围对一行中的值求和。

这是我想要实现的目标:

**Name**     1       2      3       4       5             
Michael  $24,000 $36,000 $24,567 $45,000 $36,900    
Jerry    $27,000 $39,090 $55,567 $85,000 $39,900    
Sandra   $24,000 $36,000 $24,567 $45,000 $36,900    
Michelle $24,000 $36,000 $24,567 $45,000 $36,900

我希望能够根据月份范围求和。

例如,如果我想知道 Sandra 在 3-5 个月内的价值是多少($24,567 + $45,000 + $36,900)

所以每次我使用范围时,它都应该给我这些值的总和。

我尝试了索引匹配匹配功能,但我只能在特定月份而不是范围内执行此操作。

这是我使用的公式:

=INDEX(Quota!$A$3:$P$29,MATCH('Summary by Rep'!A7,Quota!$A$3:$A$29,0),MATCH('Summary by Rep'!B4,Quota!$A$3:$P$3,0))

任何帮助将不胜感激!

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    使用这个数组公式:

    =SUM(INDEX(B2:F5,MATCH(I4,A2:A5,0),N(IF({1},ROW(INDIRECT(I2&":"&I3))))))
    

    退出编辑模式时使用 Ctrl-Shift-Enter 确认:


    或者这个可以正常输入的:

    =SUMPRODUCT(B2:F5*(A2:A5=I4)*(B1:F1>=I2)*(B1:F1<=I3))
    

    【讨论】:

      【解决方案2】:

      只是在 Scott Craner 的答案的基础上使用另一个不涉及数组或类似公式的数组的解决方案。

      INDEX 函数实际上返回的是单元格地址而不是值。因此,您可以使用 index 一次来定义要求和的范围的起始单元格,然后再次定义范围的结束单元格。

      =SUM(INDEX():INDEX())
      

      因此,根据上述公式,您只需要弄清楚您将如何确定起始单元格,然后对结束单元格重复该过程。我用 MATCH 函数做到了。并使用以下公式:

      =SUM(INDEX($B$2:$F$5,MATCH($H4,$A$2:$A$5,0),MATCH($I4,$B$1:$F$1,0)):INDEX($B$2:$F$5,MATCH($H4,$A$2:$A$5,0),MATCH($J4,$B$1:$F$1,0)))
      

      我没有测试过的一个小警告是,您的名单和月份列表可能需要按升序排序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-10
        • 2017-05-21
        • 1970-01-01
        • 2018-11-22
        • 2013-11-25
        • 2014-12-05
        • 1970-01-01
        相关资源
        最近更新 更多