我有一组245行深28列宽的数据。我想将每行数据移动到一个列中,然后将每行数据垂直堆叠在下面的行上方。我不能只使用复制,粘贴,转置,因为它让我有很多手动工作将245列合并为一列。
e.g。来自:
A B C D
1 2 3
4 5 6
7 8 9
于:
一个
1
2
3
4
5
6
7
8
9
对此的任何帮助都会非常值得赞赏!
答案 0 :(得分:1)
假设您的数据位于Sheet1中,而您的结果应位于Sheet2中。在Sheet2.A1中输入以下公式并根据需要填写。
=INDEX($Sheet1.$A$1:$AMJ$1000,INT((ROW(A1)-1)/COUNTA($Sheet1.$A$1:$AMJ$1))+1,MOD((ROW(A1)-1),COUNTA($Sheet1.$A$1:$AMJ$1))+1)
也许您必须使用分号代替逗号作为公式分隔符:
=INDEX($Sheet1.$A$1:$AMJ$1000;INT((ROW(A1)-1)/COUNTA($Sheet1.$A$1:$AMJ$1))+1;MOD((ROW(A1)-1);COUNTA($Sheet1.$A$1:$AMJ$1))+1)
工作原理:
基本上这是正常的INDEX(range,row,column)
。
row
部分为INT((ROW(A1)-1)/COUNTA($Sheet1.$A$1:$AMJ$1))+1
。假设您在A1:J1的第1行填充了10个单元格。然后COUNTA
部分得到10.然后它计算0 / 10,1 / 10,2 / 10,......,10 / 10,11 / 10的整数部分......取决于多少下来填写公式是因为A1
中的ROW(A1)
更改为A2
,A3
,...这是10倍0,然后10倍1,然后10倍2 ,...然后它添加1.所以我们有10次第1行,然后10次第2行,...
column
部分为MOD((ROW(A1)-1);COUNTA($Sheet1.$A$1:$AMJ$1))+1
。再次假设,COUNTA
部分得到10.然后它计算0 / 10,1 / 10,2 / 10,......,9 / 10,10 / 10,11 / 10,...的残差。取决于你填写配方的程度。所以,加上1,我们有1,2,3,... 10,1,2,3,...... 10,......