如图:有18行数据,用什么办法能够迅速找出每行3个以上的重复数字?
6选3的不重复组合个数是120种。33选3的不重复组合个数是5456种。没有快速的方法,只能所有组合都逐一搜索一遍
就是在一行6个数字里面选3到4个数字,与其他行对比,看是否有重复,如果有重复就标出这3个数字
也就是其他行所有列,不包括当前行呗。明天上班看看,有办法。
Dim 列名集 As New List(Of String)({"第一列", "第二列", "第三列", "第四列", "第五列"})
Dim 集合 As New List(Of Integer)(Tables("表A10").rows.Select(Function(行) CInt(行("第一列"))))
For Each 列名 As String In 列名集.skip(1)
集合.AddRange(Tables("表A10").rows.Select(Function(行) CInt(行(列名))))
Next
集合 = 集合.GroupBy(Function(元素) 元素).where(Function(元素) 元素.count > 3).Select(Function(元素) 元素.key).tolist
For Each 行 As Row In Tables("表A10").rows
行("第六列") = String.Join(" ", 集合.Intersect(列名集.select(Function(列名) CInt(行(列名)))))
Output.Show(String.Join(" ", 集合.Intersect(列名集.select(Function(列名) CInt(行(列名))))))
Next