如图:
D38=COUNT((0/SUBTOTAL(9,OFFSET($B$1,ROW($1:$11)+IF(D$3>289,ROW(1:1)*11+5,ROW(1:1)*11+5-D$3),,))))
同时按Ctrl+Shift+Enter三键输入数组公式,下拉到D39
是我录入数据与你的不一致吗?上面的公式直接右拉应该是没问题的,因为offset的第1参数B1已为绝对引用了,但与图中的结果不一致,没时间去核对了,你自己核对,有问题请追问。
B列数据增加时,D38、D39是不是也要向下移动——显示在最后一行?
B列数据增加时,D3>289,仍然是B18:B39 还是做相应变化——总是倒数22个数据?比如B列增加一个数据,需要计算B19:B40分组?
为了减少公式长度,在D36加入一个中间步骤来获取B列最后一行的行号:
=LOOKUP(2,1/(B3:B65536<>""),ROW(B3:B65536))
D38公式:
=IF($D$3>289,COUNTIF(INDIRECT("B"&$D$36-21&":B"&$D$36-11),">0"),COUNTIF(INDIRECT("B"&$D$36-21-$D$3&":B"&$D$36-11-$D$3),">0"))
D39公式:
=IF($D$3>289,COUNTIF(INDIRECT("B"&$D$36-10&":B"&$D$36),">0"),COUNTIF(INDIRECT("B"&$D$36-10-$D$3&":B"&$D$36-$D$3),">0"))
注意:D3是0时和D3>289结果相同
D3>=最大行号-21 【B列最大39时,D3>=18】公式会出错!
上传源文件吧