问题:Excel工作表的A列中包含一些数据,现在要在另一列中将A列的每个数据重复N次,如图是在B列中重复2次的情况,在不使用VBA代码的情况下,如何快速操作?
答:用下面的几个公式都可以快速完成上述任务。假如A列中包含数据的区域为A4:A11,现在要从B3单元格开始对A列中的每个数据重复5次。在B3单元格中输入下列公式,然后向下填充: =OFFSET(A$4,ROUNDUP(ROW(A1)/5,0)-1,0) 公式先用ROW函数取得一个数值,然后用该数值除以5后用ROUNDUP函数向上舍入,再减去“1”后用OFFSET函数返回结果。例如对于B14单元格,填充后的公式为: =OFFSET(A$4,ROUNDUP(ROW(A12)/5,0)-1,0) ROW(12)返回“12”,ROUNDUP(ROW(A12)/5,0)-1返回“2”,于是上述公式变为: =OFFSET(A$4,2,0) 返回从A4单元格向下偏移2个行后的引用,即A6单元格中的内容“PowerPoint”。公式中的OFFSET函数也可以改为INDEX函数,同时第一个参数也要做相应的更改。在B3单元格中输入下面的公式: =INDEX($A$4:$A$11,ROUNDUP(ROW(A1)/5,0)) 道理同上。 还可以使用下面的两个公式: =INDEX($A$4:$A$11,INT(1+ROW(A1)/(5+1/COUNTA($A$4:$A$11)))) 或: =INDIRECT("R"&ROW($A$4)+INT((ROWS($B$1:$B1)-1)/5)&"C"&COLUMN($A$1),0) 如果不是重复5次,可以将上述公式中用红色标识的“5”改为相应的数值即可 |