对来自另一个工作表中的行的12个单元格的连续组进行SUM

时间:2015-04-18 21:24:46

标签: excel sum excel-formula

我有两张excel表:1表示每月费用,另一张是费用类型的年度夏季费用。

对于年度费用表,我想每12个月将其放入一个单元格中,然后在其旁边的单元格是接下来的12个月,依此类推。

因此,要了解我的工作表的设置方式:

标题为“营业费用”的工作表具有单元格B4:M4,即当月1月至12月的每月费用。

在标题为“资金的来源和使用”的表格中,我希望将D28称为B4:M4的总和,然后将单元格D29称为N4:Y4的总和,依此类推,直到我停止拖动公式跨越。

我尝试了Sum(offset())函数,但似乎无法弄明白。

1 个答案:

答案 0 :(得分:3)

放弃SUM(OFFSET(...))方法并坚持总结在第4行定义范围的一对INDEX function。如果速度更快,并且是非易失性功能。

=SUM(INDEX('Operating Expense'!$4:$4,1,2+(ROW(1:1)-1)*12):INDEX('Operating Expense'!$4:$4,1,13+(ROW(1:1)-1)*12))

在D28中,您可以填写B4:M4,N4:Y4等。

工作原理:

与其他查找函数(例如VLOOKUP functionHLOOKUP function等)不同,INDEX function可以返回一个可以直接使用的单元格地址引用,而不需要像{那样使用额外的开销。 {3}}。事实上,你可以将它们中的两个拼接在一起,而不仅仅是一个冒号,以创建一个可用的单元格范围。

语法:

  

INDEX(< array>,< row_num>,< column_num>)

示例:(这些都是相同的事情)

=SUM(INDEX(A:A, 1, 1):INDEX(B:B, 5, 1))
=SUM(A1:INDEX(B:B, 5, 1))
=SUM(INDEX(A:A, 1, 1):B5)
=SUM(A1:B5)

一旦我们控制了一个单元格区域的行和列(又名 array ),我们就可以用一点点数学来操作它们。

  

如果您将=ROW(1:1)放入任何单元格并填写下来,您将获得 1,2,3等。这就是我们在填写时如何排列交错。

您希望第一组12个月与B4:M4相加,因此第一部分使用 4:4 作为< array>。这代表第4行的全部。< row_num> 1 是因为只有一行需要考虑。

你想在B列开始总和范围,这是数字第2列。我们不想在第一次添加任何内容但我们想要在我们填充时添加 12 以便匹配为2 + (ROW(1:1)-1) × 122+(ROW(1:1)-1)*12,用于开始< column_num>分别为2,14,26等。

同样,你想要在M列结束总和范围,这样就是数字第13列。我们不想在第一次添加任何内容但我们想在我们填写时添加 12 所以匹配为13 + (ROW(1:1)-1) × 1213+(ROW(1:1)-1)*12,用于结尾< column_num> 13,25,37等。

当您填写时产生的细胞范围将是B4:M4,N4:Y4,Z4:AK4等。将这些填充到INDIRECT function将为您提供相应的总数。

如上所述,这是INDEX的特征。 VLOOKUP,HLOOKUP等仅返回值,而不是可用的单元格引用。