首页 > 解决方案 > 如何计算具有特定第一个和最后一个字符的单元格组将这些组包裹在 Google 表格中?

问题描述

我正在尝试计算具有特定第一个和最后一个字符作为计数标准的特定单元格组中包含多少个单元格。

每组单独计数。

最终结果应该是这样的:

https://imgur.com/wnFbFz9

因此,对于以字符“#”作为第一个和最后一个字符开始和结束的每组单元格,结果应该从第一个单元格到该组的最后一个单元格的单元格/行求和。

因此,对于以字符“^”作为第一个和最后一个字符开始和结束的每组单元格,结果应该从第一个单元格到该组的最后一个单元格的单元格/行求和。

但是该公式应从计数中排除任何不以字符“^”或“#”作为第一个和最后一个字符开头和结尾的单元格。

理想情况下,将总和结果显示在左侧每个组的最后一个单元格上(如上面屏幕截图中的 B 列所示)。

到目前为止,我只提出了 =ROWS() 函数来手动计算这些组的单元格。但这很乏味。

例如,要处理屏幕截图示例,我会这样做:

=ROWS(C3:C5)   (with 3 as result in cell B5)

然后

=ROWS(C8:C10)  (with 3 as result in cell B10)

单元格 B15 中没有任何内容

然后

=ROWS(C23:C25)  (with 3 as result in cell B25)

等等。

如何在整个 B 列上使用单个公式获得这些结果?

标签: google-sheets

解决方案


与此同时,我发现了这篇文章:

垂直求和,直到谷歌表格上的空单元格

这部分回答了我帖子的计数部分。

它让我思考,我想出了这三个步骤。

第一步:用 len 计算所有单元格。

=IF(len(C2),1,"")

在此处输入图像描述

第二步:调整公式:

IF(C2="",SUM(C3:INDEX(C3:C,MATCH(TRUE,(C3:C=""),0))),"")

在上面的帖子中找到,对此(考虑到多个中间空白行(D1、D2、D3、D4 等):

=IFS(OR(AND(D1="",D2="",D3="",D4=""),AND(D1="",D2="",D3=""),AND(D1="",D2=""),D1=""),SUM(D2:INDEX(D2:D,MATCH(TRUE,(D2:D=""),0))),TRUE,"")

在此处输入图像描述

第 3 步:将第 2 步公式向下移动到单元格 F4 并从那里向下拖动以在每组的最后一个单元格中获得结果(而不是在每组上方的单元格上,如 E2 上的原始公式位置)

在此处输入图像描述

剩下的问题:

如何指定 sum 函数以对特定字符(示例中的“#”和“^”)而不是单元格条件的 len 函数进行操作?

如何将零单元格结果更改为空白?

如何将 2/3 步公式组合成单步公式?

如果需要,这是电子表格的副本:

4如何计算在 Google 表格中包含特定首尾字符的单元格组?

或者,按照@shawnrad 的这篇文章的回答:

计算非空值的行

我在这里使用了 LEFT 和 RIGHT 函数:

=IF((OR(LEFT(C1,1)="#",RIGHT(C1,1)="#",LEFT(C1,1)="^",RIGHT(C1,1)="^")),1,"")

得出这些结果:

在此处输入图像描述

=IF(OR(COUNTIF(C2,"#*"),COUNTIF(C2,"*#"),COUNTIF(C2,"^*"),COUNTIF(C2,"*^")),1,"")

在此处输入图像描述

然后如何应用 SUM 函数或任何其他函数来对最后一个函数的返回结果之间(包括)之间的每个间隔的单元格/行求和?


推荐阅读