咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

有时候我们需要按指定的次数来重复数据,通常比较简单的方法就是通过添加辅助列序号,然后数据要重复多少次,序号就复制向下粘贴多少次,这样只适合数据都重复一样的次数,如果是以下数据,重复的次数都不一样,我们就可以通过公式来解决

先用公式把数据对应的行号重复次数显示出来,数组公式需要按CTRL+SHIFT+ENTER

公式:=SMALL(IF(COLUMN(A:Z)<=$B$2:$B$4,ROW($2:$4),4^8),ROW(A1))

公式解析:

先看以下的判断结果,为了方便截图显示,COLUMN我只从A-F,就不从A-Z了,只要给到的列号足够大,比重复次数里的最大数字大即可,下面是不是第一行返回三个TRUE,第二行返回4个TRUE,第三行返回5个TRUE

然后加IF去判断,让它返回TRUE所对应的行号,再用SMALL函数从小到大把里面的行号逐一取出

此时我们只需要套个INDEX,就可以按行号来提取A列姓名,数组公式需要按CTRL+SHIFT+ENTER

公式:=INDEX(A:A,SMALL(IF(COLUMN(A:Z)<=$B$2:$B$4,ROW($2:$4),4^8),ROW(A1)))&""

上面的4^8=65536,意思是IF判断FALSE的都返回这个数字,A列的第65536行都是空单元格,提取到都会返回0,所以后面&"",转为空