Google sheets GoogleSheets查询总计列

Google sheets GoogleSheets查询总计列,google-sheets,google-sheets-formula,array-formulas,Google Sheets,Google Sheets Formula,Array Formulas,我正在尝试计算所有与正则表达式模式匹配的单元格。到目前为止,我已经提出了一个解决方案,使用每列查询,然后使用SUM对不同列的计数求和 这相当笨拙,查询中的更改意味着我需要更改许多单元格和部分公式。理想情况下,我有一个解决方案,可以对查询中的计数求和,或者其他更好维护的方法 我现在所拥有的: =sum( query(I10:I19,"select count(I) where I matches '^[A-Za-z\s]{4,64}$' label count(I) ''"

我正在尝试计算所有与正则表达式模式匹配的单元格。到目前为止,我已经提出了一个解决方案,使用每列查询,然后使用SUM对不同列的计数求和

这相当笨拙,查询中的更改意味着我需要更改许多单元格和部分公式。理想情况下,我有一个解决方案,可以对查询中的计数求和,或者其他更好维护的方法

我现在所拥有的:

=sum(
  query(I10:I19,"select count(I) where I matches '^[A-Za-z\s]{4,64}$' label count(I) ''"),
  query(J10:J19,"select count(J) where J matches '^[A-Za-z\s]{4,64}$' label count(J) ''"),
  query(K10:K19,"select count(K) where K matches '^[A-Za-z\s]{4,64}$' label count(K) ''"),
  [etc. etc.]
)
我理想的情况是:

=query(I10:L19,"select sum(count(J),count(K),count(L)) where L matches '^[A-Za-z0-9\s\-]{4,64}$' OR J matches '^[A-Za-z0-9\s\-]{4,64}$' OR K matches '^[A-Za-z0-9\s\-]{4,64}$' label sum(*) ''")
但总的来说,嵌套计数似乎不受支持

有没有办法做到这一点


请注意,label countX用于删除任何标签和标题,并将结果放在第一个单元格中。

您可能会用完全不同的公式替换查询

请试试下面的

如果您确实坚持使用查询,请尝试以下方法

=query(flatten(I10:K19),"select count(Col1) where Col1 matches '^[A-Za-z\s]{4,64}$' label count(Col1) ''")
正则表达式只是您共享的正则表达式的副本。如果仍然需要,请共享测试表

使用的功能:

无证件的
您可能会用完全不同的公式替换查询

请试试下面的

如果您确实坚持使用查询,请尝试以下方法

=query(flatten(I10:K19),"select count(Col1) where Col1 matches '^[A-Za-z\s]{4,64}$' label count(Col1) ''")
正则表达式只是您共享的正则表达式的副本。如果仍然需要,请共享测试表

使用的功能:

无证件的 可以使用字符串连接 查询只是一个字符串,因此可以将regex查询放在一个单独的单元格中,如果regex位于一个名为regex的工作表中,并且位于值为“^[a-Za-z\s]{4,64}$”的单元格A1中,则会使公式看起来像这样

参考 查询的值必须用引号括起来,或者是对包含适当文本的单元格的引用

可以使用字符串连接 查询只是一个字符串,因此可以将regex查询放在一个单独的单元格中,如果regex位于一个名为regex的工作表中,并且位于值为“^[a-Za-z\s]{4,64}$”的单元格A1中,则会使公式看起来像这样

参考 查询的值必须用引号括起来,或者是对包含适当文本的单元格的引用

出于好奇。ArrayFormula公式是否如预期那样适用于您?出于好奇。ArrayFormula公式是否如预期那样适用于您?
=sum(
  query(I10:I19,"select count(I) where I matches" & Regex!A1 & "label count(I) ''"),
  query(J10:J19,"select count(J) where J matches" & Regex!A1 & "label count(J) ''"),
  query(K10:K19,"select count(K) where K matches" & Regex!A1 & "label count(K) ''"),
  [etc. etc.]
)