求此EXCEL的公式算法

我有如下的数据,数据有5列,数据都是0-9的数字,行数很多,超过1万行。我的需求是如下,例:
7 8 2 6 8
5 4 8 3 7
2 2 1 8 7
8 0 9 8 1
6 8 2 0 6
9 0 7 0 6
5 8 1 2 2
8 8 3 7 7
0 4 9 2 3
2 6 0 1 5
3 5 8 3 1
A1为7,我想统计的是,在这1万多行数据里面,假如A列出现7了,那么在它后面两行里面出现次数最多的数字是几,在后两行之内某个数字出现的次数按出现统计,不需要知道具体到出现了几次。例如A2为5,后面两行出现过012789,A7又是5,后面两行出现的是0234789,我最终的目的是要统计,当A*出现某个数字后,在它后面紧邻两行之内出现次数最多的数字

第1个回答  2010-07-15

宏当然是最简单了,弄个公式不完全符合要求。。也发表下了。。

f1=A2&B2&C2&D2&E2&A3&B3&C3&D3&E3

g1==SUM(IF(ISERROR(FIND(ROW($1:$10)-1,$F1)),0,IF(ROW($1:$10)=1,10,(ROW($1:$10)-1))*10^(10-ROW($1:$10))))

数组公式

还不完全符合要求。。

11位长的包括0,自己判断下,当然可以合并到数组公式。。

然后去掉所有0

第2个回答  2010-07-15
按目前的11行数据计,数字5,后面紧邻两行之内出现次数最多的数字是8,共出现了五次。
对不。

Sub Macro1()
'
' Macro1 Macro
' 宏由 ynzsvt 录制,时间: 2010-7-15
'
For i = 1 To 9
rowi = Cells(i, 1)
For Each coli In Range(Cells(i + 1, 1), Cells(i + 2, 5))
Cells(rowi + 2, coli + 8) = Cells(rowi + 2, coli + 8) + 1
Next coli
Next i
'
End Sub

用上面的宏找到各数字出现的次数,然后用max函数找出现次数最大的值。
第3个回答  2010-07-15
公式想必比较难,用VBA做了一个如下:
你只用画一个长方形,点右键,选宏,选新增,然后将下面复制到宏里面,关闭.

然后回到Excel 点长方形,弹出的窗口输入要统计的数字和要统计的栏号.即可得到结果.

Sub Click()

Dim T%, Nu$, Col$, Num%, i%, k%, Brr, Arr(9), Rs%, MXnu%
ReDim Brr(10000)

Nu = Application.InputBox("Please input the number and column", , "7A") '输入要统计的数字和要统计的栏号

Num = --Left(Nu, 1)
Col = Right(Nu, 1)

T = Range(Col & 65536).End(xlUp).Row

For i = 1 To T
If Cells(i, Col) = Num And Cells(i, Col) <> "" Then
Brr(k) = Cells(i + 1, Col)
k = k + 1
Brr(k) = Cells(i + 2, Col)
k = k + 1
End If
Next i

ReDim Preserve Brr(k - 1)

For i = 0 To 9
For T = 0 To k - 1
If Brr(T) = i Then Arr(i) = Arr(i) + 1
Next T

If Rs < Arr(i) Then
Rs = Arr(i)
MXnu = i
End If

Next i

MsgBox MXnu

End Sub
第4个回答  2010-07-15
用vba方便些,不过统计数量越多,0-9出现概率应该趋向于相等数量,换句话说大家出现的概率差不多一样。
我觉得,按一定的周期来统计才有意义。
拙见,参考
第5个回答  2010-07-15
这好象排列5的彩票统计
如在A1
F1用公式=max(countif($A2:$E$20000,A2:E3))

HI我可一起探讨