Excel中将多列转单列有四种方法:一、复制后选择性粘贴→转置并转数值;二、用INDEX+ROW公式动态提取;三、Power Query取消透视列;四、TEXTJOIN+FILTERXML生成竖向数组。

如果您在Excel中需要将多列数据合并为单列,以便进行后续的数据分析或导入其他系统,则可能是由于原始数据的行列结构不符合目标格式要求。以下是实现多列转一列的多种操作方法:
一、使用TRANSPOSE函数配合区域复制粘贴
该方法适用于静态转换,不依赖公式更新,适合一次性整理固定数据。通过先转置再粘贴为值的方式,可将横向排列的多列数据变为纵向单列。
1、选中原始多列数据区域(例如A1:C10),按Ctrl+C复制。
2、右键点击目标起始单元格(如E1),选择“选择性粘贴”→勾选“转置”→点击“确定”。
3、此时数据已按行优先顺序转为多行单列布局,但存在空行间隔;需手动删除中间空白行。
4、选中转置后全部数据区域,按Ctrl+C复制,再次右键→“选择性粘贴”→选择“数值”以去除公式依赖。
二、使用INDEX与ROW组合构造动态单列序列
该方法利用行号递增特性,逐行逐列提取原始区域中的每个单元格值,生成连续无间断的单列结果,支持自动扩展,适合数据量变化场景。
1、假定原始数据位于A1:C5区域,在目标列首单元格(如E1)输入以下公式:
=INDEX($A$1:$C$5,MOD(ROW(A1)-1,ROWS($A$1:$C$5))+1,INT((ROW(A1)-1)/ROWS($A$1:$C$5))+1)
2、按Enter确认后,向下拖拽填充柄至覆盖全部数据项(共15行:5行×3列)。
3、检查结果是否按“第1行A列、第1行B列、第1行C列、第2行A列……”顺序排列。
4、若需固化结果,选中公式列,Ctrl+C复制,再执行“选择性粘贴→数值”。
三、借助Power Query实现多列堆叠转换
该方法适用于大数据量、多工作表或需重复执行的场景,操作可视化且可保存查询步骤,支持自动刷新。
1、选中原始数据任意单元格,点击“数据”选项卡→“从表格/区域”,确认创建表格并勾选“表包含标题”。
2、在Power Query编辑器中,按住Ctrl键依次点击除第一列外的所有列标题,右键选择“取消透视列”。
3、新生成的“属性”列和“值”列中,“值”列即为所需单列数据;可删除“属性”列。
4、点击“主页”→“关闭并上载”,结果将自动写入新工作表的单列中。
四、使用TEXTJOIN与FILTERXML函数组合(仅限Excel 2019及Office 365)
该方法通过文本拼接与XML解析技术,将多列内容一次性转为竖向文本数组,无需辅助列,适合纯文本型数据快速转换。
1、在目标单元格输入以下公式(假设原始区域为A1:C3):
=FILTERXML(""&TEXTJOIN("",TRUE,A1:C3)&"","//b")
2、按Enter后,该公式将返回一个垂直数组,显示为单列形式。
3、若需下拉填充,可在首个结果单元格输入公式后,按Ctrl+Shift+Enter(旧版)或直接Enter(新版动态数组)生成溢出区域。
4、选中溢出区域,Ctrl+C复制,再执行“选择性粘贴→数值”完成固化。










