计算每行中单元格连续非空的最大个数
例题描述和简单分析
有 Excel 文件 book1.xlsx,如下所示:
A |
B |
C |
D |
E |
F |
G |
H |
I |
|
1 |
1 |
2 |
bk |
||||||
2 |
1 |
2 |
bk |
1 |
2 |
3 |
|||
3 |
1 |
2 |
3 |
4 |
bk |
现需要在 A 列计算每行的 B 至 I 列中单元格连续非空的最大个数(不包括连续值尾部的 bk),结果如下:
A |
B |
C |
D |
E |
F |
G |
H |
I |
|
1 |
2 |
1 |
2 |
bk |
|||||
2 |
3 |
1 |
2 |
bk |
1 |
2 |
3 |
||
3 |
4 |
1 |
2 |
3 |
4 |
bk |
解法及简要说明
Excel中加载插件 ExcelRaq.xll 后。
在 A1 格输入公式:=esproc("=(t=0,?.max(if(~&&~!=""bk"",t+=1,t=0)))",B1:I1),即可完成计算。
简要说明:设变量 t,初值为 0,? 为参数(B1:I1),在 SPL 中是个序列,遍历该序列,若值非空非 bk,则 t=t+1,否则 t=0,求 t 的最大值。
http://club.excelhome.net/thread-1572862-1-1.html