...我不知道是否有一种简单的方法可以使用单个工作表函数来执行此操作,但我可以想到 2 种方法来完成此操作(并且很想看看是否有人能弄清楚该怎么做这在我想不到的一个简单的工作表函数中)。
无论哪种方式,我的解决方案是:
1)使用数组公式:
这将如下所示:
A B C
h323:70011 70011 {=SUM(--ISNUMBER(FIND(B1,$A$1:$A$5,1)))}
70007 70012 {=SUM(--ISNUMBER(FIND(B2,$A$1:$A$5,1)))}
...etc
请注意,对于此解决方案,您必须在最后将其作为数组公式(Hit ctrl++ shift)enter输入,但是当您向下拖动 C 列并对其求和时,您将得到正确的总数。这个问题的挑战在于它并不能真正在一个单元格中为您提供答案。
2)使用自定义 VBA 函数(我的首选方法):
您可以编写自己的 VBA 函数来非常容易地做到这一点。我创建的一个是:
Function MyFunc(CriteriaRng As Range, SearchRange As Range) As Double
Dim CriteriaCl As Range
Dim SearchCl As Range
Dim RunningTotal As Double: RunningTotal = 0
For Each CriteriaCl In CriteriaRng
For Each SearchCl In SearchRange
If InStr(1, SearchCl.Value, CriteriaCl.Value) > 0 Then RunningTotal = RunningTotal + 1
Next SearchCl
Next CriteriaCl
MyFunc = RunningTotal
End Function
然后,您所能做的就是在任何单元格类型中输入=myfunc(B1:B5,A1:A5)
,您将得到正确的答案。
希望这可以帮助!