VBA 代码如下:
Function exist(a, b) As Boolean '数a是否在行b中存在
flag = 0
For i = 1 To 6
If Cells(b, i).Value = a Then
flag = 1
Exit For
End If
Next
If flag = 0 Then
exist = False
Else
exist = True
End If
End Function
Function samenum(a, b) 'a行中的6个数在b行有多少相同。
Dim num As Integer
num = 0
For i = 1 To 6
If exist(Cells(a, i).Value, b) Then
num = num + 1
End If
Next
samenum = num
End Function
Sub count()
Dim a2, a3, a4, a5, a6, rownum As Integer
rownum = 1000 '数据行数 根据需要可自行更改 例子中就为4(注意数据从第一行开始,没有标题行)
For i = 1 To rownum
a2 = 0
a3 = 0
a4 = 0
a5 = 0
a6 = 0
For j = 1 To rownum
If i <> j Then
Select Case samenum(i, j)
Case 2: a2 = a2 + 1
Case 3: a3 = a3 + 1
Case 4: a4 = a4 + 1
Case 5: a5 = a5 + 1
Case 6: a6 = a6 + 1
Case Else:
End Select
End If
Next
range("G" & i).Value = a2 'G列放该行有2个数相同的行数
range("H" & i).Value = a3 'H列放该行有3个数相同的行数
range("I" & i).Value = a4 'I列放该行有4个数相同的行数
range("J" & i).Value = a5 'J列放该行有5个数相同的行数
range("K" & i).Value = a6 'K列放该行有6个数相同的行数
Next
End Sub
把代码粘贴到宏编辑器 然后执行
在G1格中输入=COUNTIF($A$1:$F$1000,A1),向右向下填充。 语法解释为计算单元格A1在$A$1:$F$1000的范围内出现的次数。向右填充就是B1出现的次数,是不是这个意思?
不太清楚你的问题,你可以适着用筛选和查找
没有简单的公式,只能VBA实现。
asdsaasd