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

问题描述 投票:0回答:1

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

=COUNTIF(SPLIT($B2, ", "), "NameHere")

这很好用。但是,我需要将其转换为数组形式,并且这样做会导致一切中断。似乎正在发生的事情是COUNTIF正在计算由SPLIT(ARRAY,“,”)创建的整个2D数组,并给出一个总和,但我希望它计算每一行,一次一个,每行的总和。

我附加了一个spreadsheet,尝试了阵列O2中的阵列式。

(顺便说一句,一个更简单的解决方案似乎是搜索姓名缩写的首字母列,因为它们被设置为唯一的,但是一个同事有最初的“J”,因此会出现在“LJ”中,并且我用通配符看不到这种方法。)

google-sheets array-formulas
1个回答
1
投票

Sample File

Text solution

请尝试这个公式,粘贴到C2:

=ArrayFormula((LEN(B2:B24)-LEN(SUBSTITUTE(B2:B24,C1:M1,"")))/LEN(C1:M1))

笔记:

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

Array solution

alternative way是使用公式:

=arrayformula(mmult( --(IFERROR(SPLIT($B$2:$B$24,",")=C1, false)), ARRAYFORMULA(SIGN(ROW(INDIRECT("a1:a"&MAX(LEN($B$2:$B$24)-len(SUBSTITUTE($B$2:$B$24,",","")))+1)))) ))

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

笔记:

© www.soinside.com 2019 - 2024. All rights reserved.