在您的指导下,很有提高。还有一事向您请教,我在您所教公式的基础上进行变形,可以得到正确答案,但问题是电脑计算起来要费比较长的时间,请问有没有什么办法优化?具体情形如下:我在G15输入=MAP(B15:B2787,LAMBDA(x,AVERAGE(OFFSET(x,-9,,10))))得到B列10个数的移动平均数,在H15输入=IF(G15>G14,1,0)下拉得到H列,在J15输入=LET(s,MAP(B15:B2787,LAMBDA(x,AVERAGE(OFFSET(x,-9,,10)))),F,MAP(B14:B2786,LAMBDA(x,AVERAGE(OFFSET(x,-9,,10)))),t,IF(s>F,1,0),a,SCAN(0,SEQUENCE(ROWS(t)-1,,2),LAMBDA(x,y,IF(INDEX(t,y)=INDEX(t,y-1),x,1+x))),b,VSTACK(0,a),c,REDUCE("",UNIQUE(b),LAMBDA(x,y,VSTACK(x,LET(Sf,FILTER(s,b=y),Isone,FILTER(t,b=y),n,MATCH(MAX(Sf),Sf,0),m,MAP(SEQUENCE(ROWS(Sf)),LAMBDA(xx,IF(xx<=n,1,0))),m*(Isone=1)*(n>10))))),d,DROP(c,1),d),意图是把移动平均数连续上涨10笔的就标识为“1”,小于10笔或移动平均数下跌的就标识为“0”,效果如图
答案是正确的,但问题是电脑计算起来要费比较长的时间,请问有没有什么办法优化? |