Excel如何将A:C列每行内容复制到可用列并横向合并为单行
解决Excel多行数据横向合并为单行的问题
以下是几种实用的处理方法,按需选择即可:
方法1:Power Query(可视化操作,适合新手)
- 选中A:C列的所有数据区域,点击顶部「数据」选项卡 → 「从表格/区域」,确认数据范围(无表头就取消「我的表格有标题」勾选)
- 进入Power Query编辑器后,选中A、B、C三列,点击「转换」选项卡 → 「逆透视列」→ 「逆透视其他列」
- 右键删除生成的「属性」列;接着选中「值」列,点击「转换」→ 「透视列」,弹窗里「值列」选「值」,高级选项选「不要聚合」
- 点击「关闭并上载」,新工作表里就会生成每行原始数据合并后的单行横向结果
方法2:TEXTJOIN函数(快速公式法)
假设数据在A1:C10区域,要在D列输出合并结果:
- 在D1单元格输入公式:
=TEXTJOIN(", ", TRUE, A1:C1)", "是自定义分隔符,可换成空格、分号等TRUE表示忽略空单元格,不想忽略就改成FALSE
- 下拉填充公式到所有行,快速得到每行合并后的单行内容
方法3:VBA宏(批量自动化处理)
- 按
Alt+F11打开VBA编辑器,右键当前工作簿 → 插入 → 模块 - 粘贴以下代码:
Sub MergeRowsToSingleRow() Dim ws As Worksheet Dim lastRow As Long, i As Long Dim outputCol As Integer Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row outputCol = 4 '从D列开始输出,可自行修改列号 For i = 1 To lastRow '合并A:C列内容,分隔符为", ",可按需修改 ws.Cells(i, outputCol).Value = Join(Array(ws.Cells(i, "A").Value, ws.Cells(i, "B").Value, ws.Cells(i, "C").Value), ", ") Next i End Sub
- 按F5运行宏,完成后每行A:C的内容就会合并到指定列的单行中
内容的提问来源于stack exchange,提问作者Jaypee Borabo
相关产品推荐
相关产品推荐

