如何在每一行动态返回每一列中出现的字符串的次数?

如何在每一行动态返回每一列中出现的字符串的次数?

H2:L我有介于H 为静态但 L 可以增长到新列之间的数据。

如何使用像 an 这样的动态东西arrayformula来根据行计算每列中某些字符串出现的次数?

我希望它是动态的,而不仅仅是简单的,countif因为行数是动态的。

例如,我想返回以下数字测试福巴

A C F G H J 大号
1 测试 福巴 标头 标头 标头 标头 标头
2 3 1 测试 福巴 测试 你好 测试
3 1 1 福巴 测试 那里
4 2 0 什么 测试 测试 谢谢
5 0 0 只是 A 非常 短的 线

答案1

我想分享我设法得出的结论,其中涉及多个公式:

  1. 在 A2 中,我手动定义搜索区域的起始单元格。
  2. 在B2中,我根据A2自动计算搜索的区域。
  3. 在 C2 中,我根据 A2 自动计算起始列。
  4. 最后,E2 根据 B2 和 C2 进行所需的计数。

我找不到扩展 E2 以查找 F1 中的内容的方法,所以唯一的解决方案是将其左右复制。原因是,IF(indirect($B2)=E1如果将其更改为,则无法使用,IF(indirect($B2)=E1:F1尽管有arrayformula

公式如下:

A C F
1 起点(手动) 范围(自动) 基线列(自动) 测试 福巴
2 氢气 =concat(concat(A2, ":"), index(split(address(ROW(indirect(A2)), column(indirect(A2))+COUNTA(INDIRECT(CONCATENATE(A2, ":", ROW(indirect(A2)))))-1, 2), "$"), 0, 1)) =CONCATENATE(A2, ":", REGEXEXTRACT(A2, "[a-zA-Z]+")) =ArrayFormula(IF(ISBLANK(间接($C2)),"",COUNTIF(IF(间接($B2)=E1,ROW(间接($B2))),ROW(间接($C2))))) =ArrayFormula(IF(ISBLANK(间接($C2)),"",COUNTIF(IF(间接($B2)=F1,ROW(间接($B2))),ROW(间接($C2)))))
3 1 1
4 2 0
5 0 0

翻译过来就是:

A C F
1 起点(手动) 范围(自动) 基线列(自动) 测试 福巴
2 氢气 H2:L H2:H 3 1
3 1 1
4 2 0
5 0 0

相关内容