-
Excel将列值为1、2、3...复制为1、1、1、2、2、2、3、3、3、...
- Excel将列值依次扩展n倍然后按顺序填充
如果你想要实现将某一序列每个值扩展为n次然后按序列顺序填充,可以看本博文~(举个例子,将abc每个值扩充3倍然后按顺序填充,如下):
1 | a | a |
2 | b | a |
3 | c | a |
4 | b | |
5 | b | |
6 | b | |
7 | c | |
8 | c | |
9 | c |
划重点!!!两步轻松搞定!看不了吃亏看不了上当!
以将列值分别为a、b、c、d、e、f、g、h、i、j每个值扩充3倍按顺序填充为a、a、a、b、b、b、......、i、i、i、j、j、j为例:
1-在单元格A1处输入1,点击【开始】-【编辑】-【填充】-【序列】,在【序列】对话中,勾选序列产生在【列】,右下角【终止值】输入30(即10*3,序列扩展后为30行),点击确定;
2-在C1处输入函数:
=INDEX(B$1:B$10,INT((ROW(A1)+2)/3),1)
然后按ENTER键执行,
然后鼠标挪至C1单元格右下角出现黑色十字,双击即可~
INDEX()函数说明:
=INDEX(B$1:B$10,INT((ROW(A1)+2)/3),1)
=INDEX(数组或区域, 行号, 列号)
用于返回表格或区域中的值(返回选中区域内的(行,列)的值)。
- 公式中选中的区域为原始序列B$1:B$10(其中$表示绝对单元格,不会随公式所处的单元格改变而改变);
- 公式中的行号为INT((ROW(A1)+2)/3),INT为向下取整函数,ROW为返回单元格所处的行号,
当单元格为A1时,ROW(A1)=1,(ROW(A1)+2)/3=1,INT(1)=1
当单元格为A2时,ROW(A2)=2,(ROW(A2)+2)/3=4/3,INT(4/3)=1
当单元格为A2时,ROW(A3)=3,(ROW(A3)+2)/3=5/3,INT(5/3)=1
当单元格为A4时,ROW(A4)=4,(ROW(A4)+2)/3=2,INT(4/3)=2
因此当单元格按列递增时,公式中的行号依次输出为111222333......
- 公式中的列号为1;
- 即公式所处的单元格的值为原始序列区域中位置为(INT((ROW(A1)+2)/3),1)的值,每隔3次变换为下一个行号值。
若要将某一列区域的值依次扩充n倍按顺序填充,则公式小改动即可:
=INDEX(1$2:1$3,INT((ROW(4)+n-1)/n),1)
其中1为原始列的列号(大写字母号);2为原始列的初始值的行号(数字);3为原始字母列的最后值得行号(数字),4为填充序列(1、2、3...)的初始单元格(如A1)
baibai~