【问题标题】:In Excel 2007, how can I SUMIFS indices of multiple columns from a named range?在 Excel 2007 中,如何对命名范围中的多列进行 SUMIFS 索引?
【发布时间】:2013-04-11 10:56:39
【问题描述】:

我正在分析与特定用户类别的借阅有关的图书馆统计数据。贷款数据形成命名范围 LoansToApril2013。 Excel 2007 很高兴我在 SUMIF 中使用索引范围作为总和范围:

=SUMIF(INDEX(LoansToApril2013,0,3),10,INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6))

这里的 10 表示一个特定的用户类别,它从三列中汇总了对该组的贷款。 “索引范围”指的是

INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6)  

sum_range 值。

但是,如果我切换到使用 SUMIFS 来添加更多条件,如果使用了索引范围,Excel 会返回 #VALUE 错误。它只接受一个索引。

=SUMIFS(INDEX(LoansToApril2013,0,4),INDEX(LoansToApril2013,0,3),1,INDEX(LoansToApril2013,0,1),"PTFBL") 

工作正常

=SUMIFS(INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6),INDEX(LoansToApril2013,0,3),1,INDEX(LoansToApril2013,0,1),"PTFBL")

返回#value,我不知道为什么。

有趣的是,

=SUMIFS(INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,4),INDEX(LoansToApril2013,0,3),1,INDEX(LoansToApril2013,0,1),"PTFBL")

也被接受并返回与第一个索引相同的结果。

我无法找到任何与此相关的文档或 cmets。有谁知道是否存在允许 SUMIFS 有条件地对三列中的索引值求和的替代结构?我宁愿不使用三个单独的公式并将它们加在一起,尽管这是可能的。

【问题讨论】:

    标签: excel indices named-ranges sumifs


    【解决方案1】:

    如果您想使用名称范围,您需要对索引命令使用 INDIRECT。

    我使用该公式检查两列中的条件,然后在一个包含 12 列月份的表中求和结果(该列由 1 到 12 [L4] 的辅助单元格选择)。

    所以你可以这样做:

    部门(1 列名称范围 [C6])= 销售 [D6]; 地区(1列名称范围[C3])=美国[D3]; 12 列每月命名范围表 [E7] 中的 SUM 数字对于那些人/产品/行项目的 1 个单月 [L4]

    只需将公式复制到包含月份的 1-12 列的报告页面上,您就会获得包含 2 个条件的每月摘要报告。

    =SUMPRODUCT( (INDEX(INDIRECT($C$6),0,1)=$D$6) * (INDEX(INDIRECT($C$3),0,1)=$D$3) * INDEX (间接($E7),0,L$4))

    【讨论】:

      【解决方案2】:

      上面的两个答案和一些搜索让我找到了一个有效的公式。我会把它放在这里以供后代使用,因为没有最终结果的问题对未来的读者来说是一种痛苦。

      =SUMPRODUCT( (INDEX(LoansToApril2013,0,3)=C4) * (INDEX(LoansToApril2013,0,1)="PTFBL") * INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6))
      

      这会将 LoansToApril2013 范围的第 4-6 列中的值相加,其中第 3 列中的值等于 C4 中的值(也就是“带有公式的该单元格左侧的单元格”)和第 1 列中的值是“PTFBL”。

      尽管看起来,它并没有将任何东西乘以其他任何东西。我在this page 上找到了解释,但基本上星号是在为函数添加标准。请注意,条件包含在自己的括号中,而范围不是。

      【讨论】:

        【解决方案3】:

        sumifs 不能这样做,但 sumproduct 可以

        例子:

        X 1 1 1
        是 2 2 2
        Z 3 3 3

        从 A1 开始

        公式=SUMPRODUCT((A1:A3="X")*B1:D3) 给出答案3,将公式中的值X 更改为YZ 会将返回值更改为适当的行总和。
        请注意,如果您在该区域中有文本,这将不起作用 - 它将返回 #VALUE!

        如果你不能避免文本,那么你需要一个数组公式。使用相同的示例,公式为=SUM(IF(A1:A3="X",B1:D3)),要将其作为数组公式输入,您需要使用 CTRL+SHIFT+ENTER kbd> 输入公式 - 您应该注意到 excel 将 { } 放在公式周围。它将任何文本视为零,因此即使您在其中一个框中有文本,它也会成功地将找到的数字相加(例如,将示例中的1 之一更改为blah,总数将为 2 - 公式将添加行中剩余的两个 1s)

        【讨论】:

          【解决方案4】:

          sumifs 公式是根据数组公式建模的,sumifs 中的比较需要具有相同的大小,最后一个模拟LoansToApril2013 数组列中的单个列 4:4 是第 4 列。

          倒数第二个是 3 列宽,比较列是 1 列宽导致错误。

          【讨论】:

          • 嗯。我从来没有想过 - 老实说,Excel 抱怨似乎是一件非常奇怪的事情,但感谢您的提示。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-03
          • 2018-05-19
          相关资源
          最近更新 更多