代码之家  ›  专栏  ›  技术社区  ›  Ryan Laker

如何计算子字符串在一系列单元格中出现的次数?

  •  0
  • Ryan Laker  · 技术社区  · 8 月前

    每个单元格包含 Top, Top , Top, Bottom Bottom, Bottom

    我目前正在使用 =COUNTIF(B3:E3,"*"&"Top"&"*") 这只计算1。

    我该如何让它计算单元格中两个单独的“顶部”?

    1 回复  |  直到 8 月前
        1
  •  0
  •   PatrickdC    8 月前

    添加SPLIT和JOIN函数

    对于单行输入,您可以使用:

    =COUNTIF(SPLIT(join(",",B3:E3),","),"*top*")
    

    对于多行输入,您可以使用:

    =MAP(B3:B5,C3:C5,D3:D5,E3:E5,LAMBDA(b,c,d,e, COUNTIF(SPLIT(join(",",b,c,d,e),","),"*top*")))
    

    输出(如果计算“顶部”):

    顶部,顶部 顶部,顶部 顶部,顶部 顶部,顶部 8.
    顶部、底部 顶部,顶部 顶部、底部 顶部,顶部 6.
    顶部,顶部 底部,底部 顶部,顶部 底部,底部 4.

    欧盟等效公式:

    公式1:

    =COUNTIF(SPLIT(join(",";B3:E3);",");"*top*")
    

    公式2:

    =MAP(B3:B5;C3:C5;D3:D5;E3:E5;LAMBDA(b;c;d;e; COUNTIF(SPLIT(join(",";b;c;d;e);",");"*top*")))