我正在学习在 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"}))))
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何为整个专栏做到这一点?提前致谢!!!
使用不连续范围(也称为多区域范围)的聪明想法。
但它不会工作。
是的,您可以使用范围语法SUMIF((A1,C1,E1,G1),...)
命名范围(选择单元格,然后插入->范围->定义)、UNION()
函数或 来创建不连续范围INDIRECT()
,但它们都不起作用,因为SUMIF()
不支持不连续范围。
所以你必须作弊。正如我通过谷歌搜索“sumif不连续”发现的那样,之前已经问过您的问题:
http://www.mrexcel.com/forum/excel-questions/226429-sumif-discontinuous-cells.html
改编橡树的答案,我们得到:
=SUMPRODUCT(--(MOD(COLUMN($A1:$S1),2)=1),--($A1:$S1>V1),$B1:$T1)
Run Code Online (Sandbox Code Playgroud)
它是如何工作的?它创建三个列表,并找到每个列表中每个元素的值,然后将它们相乘。第一个参数对于奇数列是 1,对于偶数列是 0。如果大于 V1,则第二个参数为 1,否则为 0。第三个参数是超过一列的值。