Google sheets 在谷歌表单中,如何通过ArrayFormula()计算特定单词在行中的出现次数

Google sheets 在谷歌表单中,如何通过ArrayFormula()计算特定单词在行中的出现次数,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我无法通过ArrayFormula计算特定单词的行数 下面是我想要达到的目标 我曾尝试使用COUNTIFS()函数进行计数,但它计算整个数据集中的出现次数,而不是每行 在此示例中,列E应具有数组形式,以统计所有出现的“收件箱” 和 F列应具有ArrayFormula以计算所有“已发送”的出现次数 我已经求助于一个自定义函数来实现这一点,但是由于它不是一个内置函数,所以速度非常慢 为什么不使用 根据公式: =COUNTIF(A2:D2, "INBOX") 我想这回答了你的问题

我无法通过
ArrayFormula

计算特定单词的行数 下面是我想要达到的目标

我曾尝试使用
COUNTIFS()
函数进行计数,但它计算整个数据集中的出现次数,而不是每行

在此示例中,列E应具有
数组形式
,以统计所有出现的“收件箱”

F列应具有
ArrayFormula
以计算所有“已发送”的出现次数

我已经求助于一个自定义函数来实现这一点,但是由于它不是一个内置函数,所以速度非常慢

为什么不使用

根据公式:

=COUNTIF(A2:D2, "INBOX")

我想这回答了你的问题:

=数组公式(if(len(A2:A),countif(if(A2:D=“收件箱”,第(A2:A)行),第(A2:A)行),)

解释不是很明显,但这里是这样的:

  • 数组公式(if(something))
    :数组公式将为每一行运行if语句:
  • if(len(A2:A),something,)
    :将检查每行(
    A
    单元格)的第一个值是否为空,如果有值,请运行公式,如果没有,则不运行(请注意结尾处的逗号,在右括号
    ,)
    。一个可能的选择是:
    if(not)(isblank(A2:A)),something,)
  • countif(某物)
    :将根据条件计算出现的次数
  • 如果(A2:D=“收件箱”,行(A2:D))
    下面是有趣的部分,因为如果在其中发现任何文本“收件箱”,则此公式将分配其所在行的值。例如,如果我们从公式中删除了
    countif()
    ,结果将是: 可以看出,如果(A2:D=“收件箱”,行(A2:D))中的每个值都将被分配该行的值
当我们收集最后两个公式时,我们得到以下结果:

countif(if(A2:D=“收件箱”,行(A2:A)),行(A2:A))


这意味着我们将计算值2出现的次数(仅在第2行中存在)、值3出现的次数(仅在第3行中存在),依此类推

Hi Kessy,如果将公式复制到每个单元格/行中,这将起作用。任务是通过ArrayFormula实现同样的目标。所以COUNTIF应该在第一排的牢房里=ArrayFormula(COUNTIF(A2:D2,“收件箱”))但是这不起作用。太棒了,这很有效@nabais,你能解释一下在这个公式中按行分组是如何工作的吗?非常感谢。如果A单元格不是空的,它将在每行中查找单元格A到D,并对包含“收件箱”文本的单元格计数求和it@AlexanderBenjamin,更新了答案,给出了更详细的解释。该解释非常好。非常感谢你。现在我明白发生了什么。聪明的方法。再次感谢:)@marikamitsos,非常感谢,这些都是很好的例子。