我试图找出我的同事正在处理多少客户,然后将其用于其他计算。我的电子表格有一个列,其中每个同事的首字母用逗号分隔(我没有任何控制权),目前我可以点击并拖动公式
=COUNTIF(SPLIT($B2, ", "), "NameHere")
,
这很好用。但是,我需要将其转换为数组形式,并且这样做会导致一切中断。似乎正在发生的事情是COUNTIF正在计算由SPLIT(ARRAY,“,”)创建的整个2D数组,并给出一个总和,但我希望它计算每一行,一次一个,每行的总和。
我附加了一个spreadsheet,尝试了阵列O2中的阵列式。
(顺便说一句,一个更简单的解决方案似乎是搜索姓名缩写的首字母列,因为它们被设置为唯一的,但是一个同事有最初的“J”,因此会出现在“LJ”中,并且我用通配符看不到这种方法。)
请尝试这个公式,粘贴到C2:
=ArrayFormula((LEN(B2:B24)-LEN(SUBSTITUTE(B2:B24,C1:M1,"")))/LEN(C1:M1))
笔记:
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
范围内
笔记:
mmult
trick to sum the range by rowsmmult
公式会更好,但它会减慢你的计算速度。