【问题标题】:How to use discontinuous range in SUMIF如何在 SUMIF 中使用不连续范围
【发布时间】:2015-03-31 05:46:34
【问题描述】:

我正在学习在 Excel 中使用 SUMIF。通常在这个公式的第一个参数中是一个连续的范围(像这样的 A1:F1)。但是现在我真的需要选择这样的东西:A1,C1,E1 由于数据集格式。我可以在 Excel 中做这样的事情吗?甚至VBA。我也尝试使用 INDIRECT 但它只允许我填写一行。如果我执行自动填充,行号将不会更改。这是我使用的公式:

   SUM((SUMIF(INDIRECT({"A1","C1","E1","G1","I1","K1","M1","O1","Q1","S1"}),"<"&V1,INDIRECT({"B1","D1","F1","H1","J1","L1","N1","P1","R1","T1"}))))

任何人都知道如何为整个专栏做到这一点?先谢谢了!!!

【问题讨论】:

  • 你在这些单元格中有什么样的值?我知道该示例在第 1 行中显示数据,但这是您拥有的真实设置 - 如果您有任何可用于区分相关列的标题行,那么可能有一种更简单的方法.......
  • 顺便说一句,我不认为这是一个非常明智的解决方案,但您可以使用此版本使公式“可拖动” - =SUM(SUMIF(INDIRECT({"A","C","E","G","I","K","M","O","Q","S"}&amp;ROWS(A$1:A1)),"&lt;"&amp;V1,INDIRECT({"B","D","F","H","J","L","N","P","R","T"}&amp;ROWS(A$1:A1)))) - 使用 CTRL+SHIFT+ENTER 确认
  • @barryhoudini 我在 A、C、E 中有日期值....在 B、D、F 中有数值。我在这个例子中组成了这些数据,所以真正的有列名日期和数字。感谢您给我这个绝妙的解决方案。也许我应该使用 A2、C2..作为一个更好的例子。
  • 如果第 1 行的所有日期列中都有“日期”,您可以使用更简单的公式,如下所示:=SUMIFS(B2:T2,A2:S2,"&lt;"&amp;V2,A$1:S$1,"Date")

标签: vba excel


【解决方案1】:

使用不连续范围(也称为多区域范围)的巧妙想法。

但它不会起作用。

是的,您可以使用范围语法SUMIF((A1,C1,E1,G1),...) 命名范围(选择单元格然后插入->范围->定义)、UNION() 函数或INDIRECT() 创建一个不连续范围会起作用,因为SUMIF() 不支持不连续范围。

所以你必须作弊。正如我通过谷歌搜索“sumif discontinuous”发现的那样,您的问题之前已被问过:

http://www.mrexcel.com/forum/excel-questions/226429-sumif-discontinuous-cells.html

改编 Oaktree 得到的答案:

=SUMPRODUCT(--(MOD(COLUMN($A1:$S1),2)=1),--($A1:$S1>V1),$B1:$T1)

它是如何工作的?它创建三个列表,并找到每个列表中每个元素的值,然后将它们相乘。第一个参数对于奇数列是 1,对于偶数列是 0。第二个参数如果大于V1则为1,否则为0。第三个参数是超过一列的值。

【讨论】:

  • 谢谢,这是一次非常棒的作弊。一切都排序
  • @AnotherParker 我同意这是一种更好的方法,但不能说公式中引用的公式不起作用 - 如果“输入数组” - INDIRECT 不起作用真的在这里创建了一个不连续的范围,它创建了一个范围数组
  • @AnotherParker BTW 公式中的 -- 是什么?谢谢
  • -- 是我使用SUMPRODUCT() 的一项关键创新:它允许您使用布尔值(TRUEFALSE),分别将它们转换为10 ,因此当它将所有内容相乘时,它们会按照您的意愿行事。
  • @barryhoudini 是的,您是对的,我忘记了许多 Excel 内置工作表函数如果您将它们作为数组公式输入(Control-Shift-Enter 或简称 CSE)会更加努力。原因是我真的更喜欢SUMPRODUCT,因为它似乎同样灵活,而且不会使函数难以编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-13
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 2023-02-09
相关资源
最近更新 更多