如何在SUMIF中使用不连续范围

时间:2015-03-30 21:25:07

标签: excel vba excel-vba

我正在学习在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 个答案:

答案 0 :(得分:3)

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

但它不会起作用。

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

所以你必须作弊。你之前已经问过你的问题,正如我通过谷歌搜索所发现的那样#sumif不连续&#34;:

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

根据Oaktree的回答我们得到:

SUMIF()

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