excel函数技巧:reduce用随机数据重构表格-趣帮office教程网

如图,ABC三列为每个人的总步数及天数,F3为起始日期,如何通过函数构建要求天数的每个人每在的跑步步数,每天步数的要求如下:

倒数3天以上随机4200-4900步倒数;第2天,需要把总步数,减去上面随机的总数,除以2,乘以随机系数,取整,且不能超4900;最后一天,总步数减去以上步数 。

=DROP(REDUCE("",A3:A8,LAMBDA(x,y,LET(

a,IFERROR(RANDARRAY(OFFSET(y,,2)-2,,4200,4900,1),RANDBETWEEN(4200,4900)),

i,INT((OFFSET(y,,1)-SUM(a))/2*RAND()),

b,IF(i>4900,RANDBETWEEN(4200,4900),i),

c,OFFSET(y,,1)-SUM(a)-b,

VSTACK(x,IFS(OFFSET(y,,2)=1,HSTACK(F3,y,OFFSET(y,,1)),OFFSET(y,,2)=2,IFERROR(HSTACK(SEQUENCE(2,,F3,-1),y,VSTACK(a,OFFSET(y,,1)-a)),y),TRUE,IFERROR(HSTACK(SEQUENCE(OFFSET(y,,2),,F3,-1),y,VSTACK(a,b,c)),y)))))),1)

公式思路:核心思路是通过randarray等随机函数生成要求范围内的值,然后用reduce配合vstack、hstack将数据堆叠成所要要求的二维数组。