2016-10-11 28 views
0

我需要你的帮助来扭转代码。下面你可以找到我的工作表的一个例子。
我需要添加来自子集的总计值,并且结果需要在主块中的小计旁边的单元格中出现。但是这里有一个问题,潜艇的数量并不总是相同的。这也意味着细胞是可变的。低于这个主要是他的子类别的另一个主要。 这些潜艇被添加了另一个代码。在这个例子中,只有2个潜艇,但实际上真实的潜艇可以接近20个潜艇。作出可变单元格的总和

我希望你们明白我想问什么。 GRTS

enter image description here

+0

为什么不只是使用公式? K2 =“= sum(”K4:K1000000“)应该这样做(尽管当然如果1000会这样做,你不需要使用1000000) – Hrothgar

+0

我不能这样做,因为除了和数之外还要加上数值(例如main 1 total = sub1.1 + sub1.2 main 2 total = sub 2.2 + sub 2.3 + sub2.4 etc.) – Steelbox

+0

Ah,现在我明白了,主要行中没有数字,所以我没有意识到会有。 – Hrothgar

回答

0

我假设你的第一主模块是在第3行;如果不是,请根据情况进行修改:
=SUM(OFFSET($K4,0,0,MATCH("Main",$B4:$B1000,-1),1))

该公式将总和特定范围内的所有值; OFFSET函数构建范围。它从一个已定义的引用单元格开始 - 在本例中为K4 - 然后通过向下移动指定数量的行创建一个范围,然后向右指定数量的列 - 0行,0列,并返回指定范围高度和1列宽。

我们从MATCH函数获得高度。这个函数查找在接下来的1,000行任何地方以单词“Main”开头的第一个单元格。这里的1,000或多或少是任意的,它可以是你肯定会找到下一个“主”头的任何值。

该公式的缺点是,如果没有找到匹配项 - 比如说如果在最后一个“Main”块中使用了这个匹配项,并且它下面没有Main头 - 它将返回一个错误。我们可以通过添加IFERROR函数来控制:
=SUM(OFFSET($K4,0,0,IFERROR(MATCH("Main",$B$4:$B$1000,-1),50),1)),如果找不到匹配,它将假定50个单元格的范围。

+0

感谢它的工作原理 – Steelbox

相关问题