首页 > 解决方案 > 有没有办法计算空白单元格,但前提是它们在具有值的单元格之间,在 Google 表格中?

问题描述

我正在尝试构建一个谷歌表格,允许用户输入太阳能电池板阵列的形状和大小,每个单元代表一个面板,并根据填充的单元输出所需的硬件。

例如,在两个面板之间,您需要两个 Widget A。在每行的末尾,或者面板之间有空白区域时,每个面板都需要两个 Widget B。当数组连续没有空格时,这很容易,因为我的公式是:

小部件 A=if(counta(b2:u2)=0, 0, (counta(b2:u2)-1)*2)

小部件 B=if(counta(b2:u2)=0, 0, 4)

但是,如果该行面板中有一个空白区域,这些公式看不到间隙,并认为 Widget A 应该是中间件,而不是实际需要 Widget B。

我找不到一种方法来查找填充单元格之间是否有空白单元格,并计算有多少。

我尝试了各种涉及filter, isblank, columns, countblank,index等的公式,但没有成功,因为它们可以告诉我第一个填充单元格的值和最后一个填充单元格的值,或者填充单元格的数量,但不能告诉我有多少空白单元格位于连续填充的单元格之间。

下面返回最后一个填充单元格的值:

=INDEX( FILTER( B2:U2 , NOT( ISBLANK( B2:U2 ) ) ) , COLUMNS( FILTER( B2:U2 , NOT( ISBLANK( B2:U2 ) ) ) ) ) 

下面找到第一个填充单元格的值:

=+filter(B2:U2,B2:U2<>"")

但两者都不允许我找到中间的空白单元格。

这是我正在做的工作的副本:

https://docs.google.com/spreadsheets/d/1wz3P5giVp0JlneYUZdW6zVPck5tkdohmbnnP_zIfptE/edit?usp=sharing

我希望小部件 A 的计数为 12,而小部件 B 的计数为 8,但相反,它是 14 和 4,因为它无法识别 H2 处的间隙。

标签: if-statementgoogle-sheetsmatchgoogle-sheets-formulaarray-formulas

解决方案


=ARRAYFORMULA(COUNTBLANK(INDIRECT(
 ADDRESS(ROW(A2), MATCH("x", A2:U2, 0))&":"&
 ADDRESS(ROW(A2), MAX(IF(A2:U2<>"", COLUMN(A2:U2), ))))))

0


推荐阅读