如果你想实现将某一列或者某一行的数据重复复制多次
(如下图所示,将第一列的数据每行都复制三次)
如需完成上述操作,我们可以通过EXCEL自带的函数公式来实现
1.从第一行开始复制n次
=INDEX($A$1:$A$5,ROUNDUP(ROW()/3,0))
假设要复制的数据是A1:A5
-
INDEX($A$1:$A$5, ...)
:从原始数据区域中提取对应行的数据。 ROW()
:获取当前行号。 如果要对行进行操作,则将ROW() 换成 COLUMN()ROUNDUP(ROW()/3,0)
:将行号除以 3 并向上取整,用来重复获取相同的数据。如果你要复制n次,就将3替换为n。
然后我们需要拖动复制公式:选中 B1
处的公式并向下拖动,直到你覆盖所需的行数(每行要复制三次,因此行数应为原始数据的三倍)。
2.从任意位置开始复制
上述公式只能从第一行开始拖动,如果从其他行开始拖动,就会漏掉一些数据;
因此,我们可以通过 ROW() / COLUMN() 函数中减去偏移量的操作来实现:
=INDEX($A$1:$A$5,ROUNDUP((ROW()-3)/3,0))
假设从第4行开始(想从第n行开始,就减去 n-1 个偏移量 )
3.控制小数点的位数
当要复制的数据带有小数点时,我们可以在 INDEX
函数的外层使用 ROUND
函数来将公式中的结果四舍五入到指定的小数位数
假设精确到两位小数
=ROUND(INDEX($A$1:$A$5,ROUNDUP((ROW()-3)/3,0)), 2)
如果你不想四舍五入,而是希望直接截取小数点后 2 位(不进行四舍五入),可以使用 TRUNC
函数。公式如下:
=TRUNC(INDEX($A$1:$A$5,ROUNDUP((ROW()-3)/3,0)), 2)