计算每行中单元格连续非空的最大个数

例题描述和简单分析

有 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