Excel多列转单列:实现列数据依次向下堆叠的方法求助
多列数据堆叠为单列的解法
针对Excel 365/2021版本(推荐)
直接用TOCOL函数,这是专门为列堆叠设计的函数,一步到位:
=TOCOL(A2:D11,1)
- 参数
1表示忽略空单元格,如果需要保留空值,把参数改成0或者直接省略(默认不忽略)。 - 这个函数会自动按A列所有行→B列所有行→C列所有行→D列所有行的顺序堆叠成单列,完全匹配你的需求。
针对旧版Excel(无TOCOL函数)
用INDEX结合行列计算实现:
假设数据区域是A2:D11(共10行4列),在目标单元格输入:
=INDEX($A$2:$D$11,INT((ROW(A1)-1)/COLUMNS($A$2:$D$11))+1,MOD(ROW(A1)-1,COLUMNS($A$2:$D$11))+1)
然后下拉填充直到出现错误值(所有数据提取完成)。
你之前公式的问题
你的公式逻辑是重复A列的内容cn次再拆分,本质是把A列循环多次,而非依次提取每一列的所有行,所以无法实现按列堆叠的需求。
内容的提问来源于stack exchange,提问作者Srikanth
相关产品推荐
相关产品推荐

