提问者:小点点

尝试将ARRAYFORMULA()与COUNTIF()和SPLIT()结合起来


我试图找出我的每个同事正在处理多少个客户端,然后将用于其他计算。我的电子表格中有一列是每个同事的姓名首字母,用逗号分隔(这是我无法控制的),目前我可以点击并拖动公式

< code > = COUNTIF(SPLIT($B2,“,”,“name here”),

效果很好。然而,我需要把它转换成一个数组公式,这样做一切都会中断。出现的情况是,COUNTIF正在通过SPLIT(array,“,”)创建的整个2D数组进行计数,并给出单个总计,但我希望它通过每一行进行计数,一次一个,每一行都有一个总计。

我附上了一个电子表格,在单元格O2中尝试数组公式。

(顺便说一句,一个更简单的解决方案似乎是在首字母列中搜索同事的首字母,因为它们被设置为唯一的,但是一个同事有首字母“J”,因此会出现在“LJ”中,我看不出有通配符可以解决这个问题。)


共1个答案

匿名用户

示例文件

请尝试以下公式,粘贴到 C2 中:

=阵列方程((B2:B24)-LEN(替代(B2:B24,C1:M1,“”))/LEN(C1:M1))

笔记:

  • 它替换文本,计算替换前后的文本长度,并用搜索文本的长度除以差值
  • 我假设字符串不包含另一个字符串:没有像“bo”和“boo”这样的对

另一种方法是使用公式:

=数组公式(mmult(--(IFERROR(SPLIT($B$2:$B$24,“,”)=C1,false)),arrayformula(SIGN(ROW(INDIRECT(“a1:a”)

在C2中并将其复制到范围C2: M2

笔记:

  • 它使用逻辑比较和mmult技巧按行对范围求和
  • mmult公式将更好地工作,但它会减慢您的计算速度。

相关问题