假设你的数据在A1:P1区域
1的最大个数为
=MAX(FREQUENCY(IF(A1:P1=1,COLUMN(A1:P1)),IF(A1:P1=1,,COLUMN(A1:P1))))
2的最大个数为
=MAX(FREQUENCY(IF(A1:P1=2,COLUMN(A1:P1)),IF(A1:P1=2,,COLUMN(A1:P1))))
0的最大个数为
=MAX(FREQUENCY(IF(A1:P1=0,COLUMN(A1:P1)),IF(A1:P1=0,,COLUMN(A1:P1))))
全是数组公式,按CTRL+SHIFT+回车三键确定
以此类推.......
用vba吧:
设你的数字都在第一行,从A1起
在vb编辑器里添加模块,且复制代码:
Sub aaaa()
j = 0
k = 1
For i = 1 To 15
If Cells(1, i + 1) = Cells(1, i) Then
k = k + 1
Else:
j = j + 1
Cells(2, j) = Cells(1, i)
Cells(2, j) = Cells(2, j)
Cells(3, j) = k
k = 1
End If
Next
End Sub
运行得到结果:
1 0 2 0 2
4 2 3 4 2
对上述结果排序,得到:
0 0 1 2 2
2 4 4 2 3
然后再写添加一个模块:
Sub bb()
Dim hr As Range, lengths As Integer
Set hr = Worksheets("sheet2").Range("A2:IV2")
lengths = Application.WorksheetFunction.CountA(hr)
j = 1
For i = 1 To lengths - 1
If Cells(2, i) <> Cells(2, i + 1) Then
Cells(4, j) = Cells(2, i) & "," & Cells(3, i) & "个"
j = j + 1
End If
Next
i = lengths
Cells(4, j) = Cells(2, i) & "," & Cells(3, i) & "个"
End Sub
运行结果如下:
0,4个 1,4个 2,3个
应该就是楼主所要的结果吧。
比如你的数据在第一行,那么在A2中输入公式
=COUNTIF(1:1,1)
在A3中输入公式
=COUNTIF(1:1,2)
在A4中输入公式
=COUNTIF(1:1,0)
在A5中输入MAX(A2:A4)
假设这些数据在第二行,那么在第二行下插入一辅助行(新第三行),在A3输入公式“=IF(COUNTIF($A1:A1,A1)=1,COUNTIF(1:1,A1),"")”,公式右拖到IV3单元格,好,那么在第二行首次出现的数据下面都会有一个数字,假如“G3”是“5”,就表示“G2”的数据在第二行共出现了五次。OK!
实例演练,可行!