我很新,不是第一次使用,但可能曾经在这里过一次。
我有一个巨大的名单,以检查它们是否有重复。
问题在于,对于列表中的同一个人,有时同名的拼写不同。
所以,我想查看一个单元格的第一个字母,看看它们是否相同。
例如,这是一个虚构的清单:
A1 John Doe
A2 John Dowe
A3 John Dove
我可以使用Excel功能,它会告诉我上面的单元格中有多少个字符是相同的吗?
因此,在上面的示例中,公式所在的单元格将显示:
A1 John Doe B1 0 (or "NA" or "REF" because there's no cell to compare to above it)
A2 John Dowe B2 7
A3 John Dove B3 7
因为A2和A3共享7个字符并且上面有单元格...我希望这很容易理解。
谢谢!
答案 0 :(得分:0)
看看this question。它在不同的情况下询问名称匹配,但有很多很好的例子说明如何在那里列出。
这是一个非常深的兔子洞,取决于你想要的强度和深度。
答案 1 :(得分:0)
您没有给我们足够的信息。
在您的情况下,A1(“John Doe”)包含两个“o”字符。因此,下面的单元格A2(“John Dowe”)将只有6个字符。
IF 你所说的“相同字符”在同一个位置是同一个字符,那么你在A1和A2之间仍然有问题。
John Do e
John Do w e
“w”和“e”不匹配。只有6个字符是相同的。
为我们提供更多信息!
编辑#1
将此代码复制并粘贴到模块
Function compareCells(ran As Range) As Variant
Dim numSame As Integer
Dim c As Integer
Dim r As Integer
c = ran.Column 'find selected column
r = ran.Row 'find selected row
Dim a As String
Dim b As String
a = Worksheets("Ark1").Cells(r - 1, c).Value 'string of the cell above
b = Worksheets("Ark1").Cells(r, c).Value 'string of the current cell
Dim aLen As Integer
aLen = Len(a) 'check the length of the a string
Dim i As Integer
For i = 1 To aLen
If Mid(a, i, 1) = Mid(b, i, 1) Then 'if chars in same pos are equal...
numSame = numSame + 1
End If
Next
compareCells = numSame
End Function
编辑#2
Function compareCells(ran As Range) As Variant
Dim numSame As Integer
Dim c As Integer
Dim r As Integer
c = ran.Column 'find selected column
r = ran.Row 'find selected row
Dim a As String
Dim b As String
a = ActiveSheet.Cells(r - 1, c).Value 'string of the cell above
b = ActiveSheet.Cells(r, c).Value 'string of the current cell
Dim aLen As Integer
aLen = Len(a) 'check the length of the a string
Dim i As Integer
For i = 1 To aLen
If Mid(a, i, 1) = Mid(b, i, 1) Then 'if chars in same pos are equal...
numSame = numSame + 1
End If
Next
compareCells = numSame
End Function
使用=compareCells()
并选择 要与上面的单元格进行比较的单元格