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

例题描述和简单分析

有 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