在LibreOffice Calc和Excel中,计算一个范围内的超级字符串包含子串的次数很容易。如何计算一个超串在一个范围内包含子串的次数?在下面的例子中,在一个集合中包含一个动物的次数是COUNTIF($A$2:$A$5,""&B2&"") for Dog, COUNTIF($A$2:$A$5,""&B3&"")为猫,以此类推。如何计算 "猫狗鼠蛇 "中包含多少个范围为B:B的动物?D列的答案应该是3,1,1,1。
将以下公式放在 D2 中。 它是一个数组公式,所以你需要使用 控制+换挡+进入 而不是仅仅 进入. 当公式栏中的公式周围出现{ }时,你就会知道你的操作是正确的。 注意,这些不能手动添加。
=SUM(--NOT(ISERR(SEARCH($B$2:$B$5,A2))))
复制单元格,然后粘贴在D3:D5中。
首先把这个UDF放在一个标准模块中。
Public Function KeyKount(s As String, keywds As Range) As Long
Dim temp As String, cell As Range
KeyKount = 0
temp = " " & s & " "
For Each cell In keywds
v = " " & cell.Text & " "
If InStr(temp, v) > 0 Then KeyKount = KeyKount + 1
Next cell
End Function
然后在单元格中输入,例如:
=keykount(A2,B2:B10)