如下兩個(gè)表格:
第一種情況是按姓名排序的,第二種情況姓名未加排序。
兩種情況下,怎樣給相同姓名添加相同編號(hào)?
本示例中,N(F1)的返回值是0。
注:無(wú)序排列的公式同樣適合有序排列!
VBA法
代碼為:
Sub 編號(hào)()
Dim a As Object, i As Long ? ? ? ? ?‘創(chuàng)建字典/
Set a = CreateObject(“scripting.dictionary”)
For i = 2 To Range(“b1”).CurrentRegion.Rows.Count
If Not a.exists(Cells(i, 2).Value) Then ? ? ? ?‘添加編號(hào)到字典,第一個(gè)編號(hào)不存在),則
k = k + 1 ? ? ? ? ? ? ? ? ? ? ? ‘計(jì)數(shù)
a(Cells(i, 2).Value) = k ? ? ? ? ? ? ? ? ? ?‘給字典key編號(hào),第一個(gè)編號(hào)是1,第二個(gè)編號(hào)是2……
Cells(i, 1) = k ? ? ? ‘返回給第一列,分組
Else ? ‘如果字典(編號(hào))存在
Cells(i, 1) = a(Cells(i, 2).Value) ? ? ‘直接在字典里查詢編號(hào)
End If
Next
End Sub
用法: