做一个可变单元格的总和

时间:2016-10-11 11:52:09

标签: excel excel-vba vba

我需要你的帮助来扭动代码。您可以在下面找到我的工作表示例 我需要从subs中添加总计的值,结果需要在主块中的subtotaal旁边的单元格中。但这里有捕获,潜艇的数量并不总是相同。这也意味着细胞是可变的。在这个主要的下面是他的子类别的另一个主要。 subs添加了另一个代码。在这个例子中只有2个子,但实际上真正的表可以接近20个子。

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

enter image description here

1 个答案:

答案 0 :(得分:0)

我假设您的第一个主要街区位于第3行;如果没有,请根据需要进行修改:
=SUM(OFFSET($K4,0,0,MATCH("Main",$B4:$B1000,-1),1))

此公式将对特定范围内的所有值求和; OFFSET函数构建范围。它从定义的引用单元格开始 - 在这种情况下为K4 - 然后通过向下移动指定数量的行来创建范围,然后向右移动指定数量的列 - 0行,0列用于我们 - 并返回指定的范围高度和1列宽。

我们从MATCH函数获得高度。此函数查找以单词" Main"开头的第一个单元格。接下来的1000行中的任何地方。这里的1000或多或少是任意的,它可以是您确定会找到下一个" Main"报头中。

这个公式的缺点是,如果没有找到匹配 - 比如说这是在最后一个" Main"阻止它下方没有主标题 - 它将返回错误。我们可以通过添加IFERROR函数来控制它,以获得:
=SUM(OFFSET($K4,0,0,IFERROR(MATCH("Main",$B$4:$B$1000,-1),50),1)),如果找不到匹配项,则会假定50个单元格的范围。