电脑
Excel
如图表格,判断D列字符有几个与E列的相同,怎么判断呢?第一个方法可尝试利用数组函数解决。
要计算有几个字符相同,先要判断两列中都存在的字符,用IF与LEN函数组合来判断IF(LEN(D4)>LEN(SUBSTITUTE(D4,MID(E4,ROW(INDIRECT('1:'&LEN(E4))),1),''))。
接下来,对符合条件的字符计算出现的次数,利用 1/count 的方法来计算个数1/(LEN(E4)-LEN(SUBSTITUTE(E4,MID(E4,ROW(INDIRECT('1:'&LEN(E4))),1),'')))。
然后把上两步的判断用SUM求和,在F4单元格输入公式=SUM(IF(LEN(D4)-LEN(SUBSTITUTE(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+回车,得出结果,然后下拉公式。
另外的方法是通过自定义函数,打开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
利用自定义的fd函数,计算相同字符个数,如图在G4单元格输入公式=fd(D4,E4),然后下拉。
用VBA自定义函数相对简单,但前提是必须了解编程语言。