|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
是的,下面是不考虑效率的基本算法的伪代码:
Sub test()
m = 8: n = 13
ar = [a1].Resize(m, n) '读取工作表中m行、n列的原始数据
For i = 1 To m '遍历各行,以本行 i 行作为比较标准
For i2 = 1 To m '遍历各行进行匹配比较
If i2 <> i Then '排除本行
r = 0 '统计匹配相同个数的变量r初始化
For j = 1 To n '遍历本行各列 j
t = ar(i, j)
If Len(t) Then '如果非空单元格
For j2 = 1 To n '遍历比较 i2行的各列 j2
If ar(i2, j2) = t Then r = r + 1: Exit For
Next
End If
Next
'此处得到匹配结果: i2行和本行i的匹配相同个数r
'然后还需要统计i2行的有效单元格个数 k2
End If
Next
'然后在这里,对各个有效匹配行的匹配结果进行降序排序,并输出结果
Next
'计算完成
End Sub
这是最基本的算法,
改进以后,计算效率可以提高几千几万倍。
|
|