excel函数技巧:reduce+xmatch+sequence+map连续数据统计-趣帮office教程网

如图A列为源数据,其中有些数据成差值为1的等差数列,找出它有有几组,每组有几个并有 连接起来,公式如下:

=LET(data,--TEXTSPLIT(A1," ",,1),

count,REDUCE("",data,LAMBDA(x,y,IFERROR(VSTACK(x,SUM(1*IFERROR(INDEX(data,,XMATCH(y,data) SEQUENCE(,10))=y SEQUENCE(,10),0))),""))),

IFERROR(TEXTJOIN(" ",1,MAP(TEXTSPLIT(CONCAT(count),0,,1),LAMBDA(x,MAX(--MID(x,SEQUENCE(LEN(x)),1)))) 1),0))

公式思路:

data变量为将A列数值变为数组,将文本变为数值。

count变量实现对比计数,找出每个数值向右能成差值为1的等差数列的长度。

最后一步将count值合并成新的文本,并通过textsplit函数以0为分隔符将它们拆分成数组,取出每个数组的最大值 1,通过textjoin再次用 连接起来即最后的结果。

内存数组找连续数值不像是区域数组可以使用row或者column函数或者offset函数来寻找,当然通过辅助列就可以把内存数组转变为区域数组,大家喜欢哪种方式呢?