计算两个字符串中相同字符的个数
1、如图表格,判断D列字符有几个与E列的相同,怎么判断呢?第一个方法可尝试利用数组函数解决。
2、要计算有几个字符相同,先要判断两列中都存在的字符,用IF与LEN函数组合来判断IF(LEN(D4)>LEN(SUBSTITUTE(D4,MID(E4,ROW(INDIRECT("1:"&LEN(E4))),1),""))。
3、接下来,对符合条件的字符计算出现的次数,利用 1/count 的方法来计算个数1/(LEN(E4)-LEN(SUBSTITUTE(E4,MID(E4,ROW(INDIRECT("1:"&LEN(E4))),1),"")))。
4、然后把上两步的判断用SUM求和,在F4单元格输入公式=SUM(IF(LEN(D4)-LEN(SUBSTIT炽扃仄呦UTE(D4,MID(E4,ROW(INDIRECT("1:"&LEN(E4))),1),""))>0,1/(LEN(E4)-LEN(SUBSTITUTE(E4,MID(E4,ROW(INDIRECT("1:"&LEN(E4))),1),""))))),按ctrl+shift+回车,得出结果,然后下拉公式。
5、另外的方法是通过自定义函数,打开VBA编辑器,新建模块,输入如下代码:Function fd(a, b) ta = a.Text多唉捋胝: tb = b.Text Set d = CreateObject("Scripting.Dictionary") For i = 1 To Len(ta) t = Mid(ta, i, 1) d(t) = "_|_" Next For i = 1 To Len(tb) t = Mid(tb, i, 1) If d(t) = "_|_" Then d(t) = t Next fd = Join(Filter(d.items, "_|_", False), "")End Function
6、利用自定义的fd函数,计算相同字符个数,如图在G4单元格输入公式=fd(D4,E4),然后下拉。