|
发表于 2016-12-26 11:24
|
显示全部楼层
本楼为最佳答案
这个,通过VBA比较容易解决。
- Sub tt()
- Set d = CreateObject("scripting.dictionary")
- arr = Range("a1:i" & [a65536].End(3).Row)
- For i = 2 To UBound(arr)
- arr(i, 9) = 0
- For j = 1 To 7 '前7位进字典
- d(arr(i, j)) = ""
- Next
- For ii = i - 1 To 1 Step -1 '上一行开始倒排
- For j = 1 To 8 '通过是否在字典中排查
- If d.exists(arr(ii, j)) Then d.Remove (arr(ii, j))
- If d.Count = 0 Then Exit For
- Next
- If d.Count = 0 Then arr(i, 9) = i - ii: Exit For
- Next
- d.RemoveAll
- Next
- [i1].Resize(UBound(arr)) = Application.Index(arr, , 9)
- End Sub
复制代码 |
评分
-
查看全部评分
|