excel函数技巧:reduce+offset统计连续数值-趣帮office教程网

函数:如何统计连续的数值。如图所示,A1-A5为连续数值,则统计为0368-0330,写入C2。A6-A8为连续数值,则统计为0337-0339,写入C2。A9-A9为连续数值,则统计为0348-0348,写入C3

=DROP(UNIQUE(LEFT(REDUCE("",A1:A9,LAMBDA(x,y,VSTACK(x,IF(--y 1=--OFFSET(y,1,),"",CONCAT(RIGHT(TEXTJOIN("",1,IF(CONCAT(x)="",A1,x)),4)&"-"&y,OFFSET(y,1,)))))),9)),1)

公式思路:

公式主体为reduce(vstack(concat……,reduce将A列遍历,给计算主体concat,vstack负责将concat每一次循环等到的结果堆叠显示出来。

concat的的思路为:IF(--y 1=--OFFSET(y,1,),"",CONCAT(RIGHT(TEXTJOIN("",1,IF(CONCAT(x)="",A1,x)),4)&"-"&y,OFFSET(y,1,))),能过本行与下行的比较形成一个合并起来的文本字符串,然后通过right函数取累加器中的右边四位,也就是连续数列最起始的那个。