如何在Excel中的单元格内search特定的string?

我在一列中有一个Id列表。 有时单元格有一个单一的ID,有时一个单元格有多个ID:

[ "52b46bfc763f4ad9198b45ab", "533c0cba763f4a505e8b46db" ] - multiple id's 52c2ff91763f4a572d8b45e6 - single id 

我正在使用COUNTIF来计算给定ID的所有实例。 如果在每个单元中只有一个ID,它就可以工作。 但是,当一个单元中有多个id时,它会失败。

如何计算给定实例在列中出现的次数? 很高兴使用Excelfunction或VBA。

谢谢

使用通配符:

 =COUNTIF(A:A,"*52c2ff91763f4a572d8b45e6*") 

例如:

COUNTIF

我喜欢Gary's Student方法。

这里的参考是一个使用用户定义函数的VBA解决scheme。 例:

  AB 1 52c2ff91763f4a572d8b45e6 `=COUNTIDS(A1)` = 4 2 52c2ff91763f4a572d8b45e6, 52c2ff91763f4a572d8b45e6 3 52c2ff91763f4a572d8b45e6 4 52b46bfc763f4ad9198b45ab, 533c0cba763f4a505e8b46db 

VBA模块中的这个代码:

 Function CountIDs(id As Range) Dim ids As Range, cl As Range, cnt As Long, arr As Variant, i As Integer Set ids = Range("A1:A" & Range("A1").End(xlDown).Row) //amend to suit your set-up cnt = 0 For Each cl In ids If InStr(1, cl, ",", vbTextCompare) Then arr = Split(cl, ",") For i = 0 To UBound(arr) If VBA.Trim(arr(i)) = id Then cnt = cnt + 1 End If Next i Else If cl = id Then cnt = cnt + 1 End If End If Next CountIDs = cnt End Function