Google sheets 计数空单元格,直到下一个已填充单元格

Google sheets 计数空单元格,直到下一个已填充单元格,google-sheets,sum,google-sheets-formula,array-formulas,gs-vlookup,Google Sheets,Sum,Google Sheets Formula,Array Formulas,Gs Vlookup,我有一个类似于下面的表,并且喜欢自动计算总和列。每天的行数各不相同。我正在寻找一种方法来查找当前行之后日期列中的空单元格数。然后可以使用此数字填充“总和”列 不管下面的解决方案如何,是否有一种方法可以计算日期之间的空单元格数 Date |Value|Sum ----------+-----+--- 16/07/2020| 2| 5 | 3| 17/07/2020| 2| 10 | 3| | 5|

我有一个类似于下面的表,并且喜欢自动计算总和列。每天的行数各不相同。我正在寻找一种方法来查找当前行之后日期列中的空单元格数。然后可以使用此数字填充“总和”列

不管下面的解决方案如何,是否有一种方法可以计算日期之间的空单元格数

Date      |Value|Sum
----------+-----+---
16/07/2020|    2|  5
          |    3|
17/07/2020|    2| 10
          |    3|
          |    5|
18/07/2020|    2| 11
          |    3|
          |    5|
          |    1|

我认为你不需要第一个问题的答案就可以算出总数

在整个C列空白的情况下,在C1中尝试以下操作:

=数组公式({“Sum”;如果(A2:A=”、VLOOKUP(A2:A、查询({VLOOKUP(行(A2:A)、过滤器({ROW(A2:A)、A2:A}、A2:A“”)、2)、B2:B},“选择Col1,按Col1对Sum(Col2)分组”),2,0)))

如果这不起作用,那么在样本表上演示这个想法可能会更容易。

安德烈,试试这个:

1.)完全删除C:C(包括标题)

2.)将以下公式放入单元格C1中:

=ArrayFormula({"Sum";IF(A2:A="","",VLOOKUP(A2:A,QUERY({VLOOKUP(ROW(A2:A),FILTER({ROW(A2:A),A2:A},A2:A<>"",B2:B<>""),2,TRUE),B2:B},"Select Col1, SUM(Col2) Group By Col1"),2,FALSE))})
=ArrayFormula({“Sum”;IF(A2:A=”“,“”),VLOOKUP(A2:A,查询({VLOOKUP(行(A2:A)),FILTER({ROW(A2:A),A2:A“”,B2:B“”),2,TRUE),B2:B},“选择Col1,Sum(Col2)按Col1分组”,2,FALSE)))
更新:

您的帖子示例显示了标题。然后,我建议的公式解释了这些标题。由于您的实际样本表不同,并且不像原始帖子那样使用标题,因此您应该使用以下版本:

=ArrayFormula(IF(A:A="","",VLOOKUP(A:A,QUERY({VLOOKUP(ROW(A:A),FILTER({ROW(A:A),A:A},A:A<>"",B:B<>""),2,TRUE),B:B},"Select Col1, SUM(Col2) Group By Col1"),2,FALSE)))
=ArrayFormula(如果(A:A=“”,”,VLOOKUP(A:A,查询({VLOOKUP(行(A:A)),过滤器({ROW(A:A),A:A},A:A“”,B:B“”),2,TRUE),B:B},“选择Col1,按Col1求和(Col2)分组”,2,FALSE)

如果从第1行开始,请使用:

=ARRAYFORMULA(IF(A:A="",,VLOOKUP(A:A, QUERY({VLOOKUP(ROW(A:A), 
 FILTER({ROW(A:A), A:A}, A:A<>""), 2), B:B},
 "select Col1,sum(Col2) group by Col1"), 2, 0)))
=ARRAYFORMULA(如果(A:A=“”,VLOOKUP(A:A),查询({VLOOKUP(A:A)行),
过滤器({ROW(A:A),A:A},A:A“”),2),B:B},
“选择Col1,按Col1求和(Col2)分组”(2,0)))


=数组公式,
如果(A:A“”{ROW(A:A),A:A}),2,1)),
“选择列1,计数(列1)
其中Col1不为null
Col1分组
标签计数(Col1'”),2,0)

Matt,有趣的是:您发布的内容与我发布的内容相同,我们的想法完全相同。@ErikTyler这将发生:)不幸的是,它不起作用,导致解析公式时出错。我创建了一个简单的示例表:我提供的公式(以及Matt提供的公式)假设您的数据列有一个标题,这是标准的。没有。我编辑了我的帖子,以显示没有标题的版本,效果很好。我真正的问题是有标题,而且要复杂得多。我简化了问题和示例表。Matt和我唯一的问题是文章中的示例(带标题)与表中的示例(不带标题)不匹配。这就是为什么原始公式不起作用的原因:因为它们是为标题编写的。但最终,你解决了问题。这是主要目标。非常感谢。不管这种解决方案如何,是否有一种方法可以计算日期之间的空单元格数?非常感谢。这是可行的,但是为什么第二个公式中的“B”列很重要呢?它很重要,因为否则您将得到电子表格中所有行的计数。参见F1和注意事项F19-
=ARRAYFORMULA(IFNA(VLOOKUP(A:A, QUERY(IF(B:B="",,VLOOKUP(ROW(A:A), 
 IF(A:A<>"", {ROW(A:A), A:A}), 2, 1)),
 "select Col1,count(Col1) 
  where Col1 is not null 
  group by Col1 
  label count(Col1)''"), 2, 0)))