计算每行中单元格连续非空的最大个数
例题描述和简单分析
有 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