对Excel单元格中的单元格序列执行某些操作?

时间:2012-10-22 06:09:02

标签: excel sum range sequence

我希望“A9和A54之间的第5行,”即

  

A(5x + 9)-A(54),

内。

这里还有一个子问题。是否可以使用函数或VBA对个单元格求和?

以下是一些基于答案的测试题:

  • =SUMPRODUCT(--(MOD(ROW(Range)-MIN(ROW(Range))+1,1)=0),A1:A50) - 对A1到A50行进行汇总?
  • =SUMPRODUCT(--(MOD(ROW(A50)-MIN(ROW(A50))+1,2)=0),A1:A50) - 每隔一行汇总一次,A1到A50
  • =SUMPRODUCT(--(MOD(ROW(A5:A50)-MIN(ROW(A1:A50))+1,5)=0),A1:A50) - 总结A5和A50之间的第5行?

基于:

  

替换A9:A54代表范围,5代表n代表您的特定查询。只要   这些部分更改即使删除行,答案也将保持不变   低于范围。

2 个答案:

答案 0 :(得分:4)

我会使用更强大的RocketDonkey版本的答案。他评论中的-8是因为该范围的第一行是9但是通常对于任何单个列范围,您可以使用此公式对每个第n行求和(从该范围的第一行开始)

=SUMPRODUCT(--(MOD(ROW(Range)-MIN(ROW(Range)),n)=0),Range)

替换A9:A54代表范围,5代表n代表您的特定查询。只有那些部分改变了

即使删除范围

下的行,答案仍将保持不变

<强>解释

部分ROW(Range)-MIN(ROW(Range))将返回一个整数数组,从0开始,整数个数对应于范围内的单元格数,所以

=ROW(A9:A54)-MIN(ROW(A9:A54))

生成此数组

{0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45}

当你使用除数5将其输入到MOD函数中时,显然MOD(0,5)= 0,所以在这种情况下,第一个单元格(A9)始终满足条件.....所以每隔5个(或第n个)细胞在这样的范围内

=SUMPRODUCT(--(MOD(ROW(A9:A54)-MIN(ROW(A9:A54)),5)=0),A9:A54)

将每个第5个单元格从该范围内的第一个单元格开始求和,即它总和A9,A14,A19,A24 ....等等。

显然你可以用9替换MIN(ROW(A9:A54))但是如果删除第9行下面的某些行,公式结果将会改变,所以使用这种结构会更加健壮

答案 1 :(得分:0)

我猜ROW(A9:A54)-MIN(ROW(A9:A54)中的MOD(ROW(A9:A54)-MIN(ROW(A9:A54)),5会产生数字-9。在此等式MOD中,-x中x的值是远离cell 0的数字行上的位置。因此,ROW(A9:A54)-MIN(ROW(A9:A54)-9的结果使A9成为我们运行MOD的数组中的第0个条目。这可能是=0的含义......

=SUMPRODUCT(--(MOD(-9,5)),A9:A54)显然具有相同的效果。出于某种原因,首选长版本,即:=SUMPRODUCT(--(MOD(ROW(Range)-MIN(ROW(Range)),n)=0),Range)。我没有看到优势,但它与移位或删除单元格有关。我想它正在转变,因为有一个空单元格并不重要。

我对使用=SUMPRODUCT而非SUM--而不是SUM的原因感到有点困惑。我想,--会添加,它还会将bool转换为数字。我不明白为什么这些事情中的任何一件都是必要的。也许这是一个只是在案件的事情。例如,可能每第15行是一个不需要的字符串常量,而不是所需的数字。我认为,在这种情况下,将一个系列放在另一个系列中更为普遍有用。但是,