跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在 Excel 中将单行转换为多列和多行?

Author Sun Last modified

在 Excel 中,用户经常遇到需要将一长行数据重新组织成更易读的多列多行格式的情况。当处理以水平布局导入、导出或手动编制的数据时,这种转换很常见,但需要以表格网格的形式进行分析、处理或展示。例如,您的数据可能分布在单行中,并希望将其重新格式化为网格结构,如下图所示:

A screenshot showing a single row of data being converted into multiple columns and rows

将一行数据转换为结构化表格格式有多个优点:提高可读性,便于数据分析,并能够使用更广泛的 Excel 工具,如筛选和图表功能。根据您的具体需求,Excel 提供了多种实现此转换的方法——从内置功能和公式到专用插件和通过 VBA 代码实现的自动化。本文将介绍几种实用方法,每种方法都适合不同的场景和用户偏好。

目录:


使用“分列”和“选择性粘贴转置”功能将单元格行转换为多列或多行

Excel 提供了“分列”和“选择性粘贴(转置)”功能来进行基本的数据重组。如果您的数据仅限于单个单元格内,或者只需要简单的结构调整,这些选项非常有用。

1. 选择需要转换的单元格,然后点击 数据 > 分列。参见截图:

2. 在弹出的对话框中,首先选择“分隔符”选项,然后点击 下一步。在下一步中,在“分隔符”部分下选择 空格(或您的数据实际使用的分隔符)。参见截图:

3. 点击 完成。您的单个单元格将根据指定的分隔符拆分为多列。您可能需要调整列宽以获得更好的可见性。参见截图:

A screenshot of the original data
Arrow
A screenshot showing cell content seperated by space is split into multiple cells

注意:如果您想进一步将这些列值转换为多行:

  • 选择新列中的值,按 Ctrl + C 进行复制。
  • 右键单击要开始转置数据的单元格,并选择 选择性粘贴 > 转置。参见截图:
A screenshot of Excel data to be transposed into rows using Paste Special
Arrow
A screenshot showing multiple rows after transposing columns

这种方法适用于简单的转换,并且数据量较小时操作简便。然而,它最适合初始数据位于单个单元格中的情况。如果您需要将单行(不仅仅是单个单元格)的数据重新排列成多列多行的网格,这些功能本身并不足够,还需要进一步的手动调整。对于更高级的需求,请继续参考以下解决方案。


使用“转换区域”功能将单行转换为多列和多行

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

如果您安装了 Kutools for Excel,则可以利用“转换区域”工具。此功能使您可以直接将单行或单列的数据布局转换为多行和多列的范围,只需几次点击即可完成。在处理大型数据集时特别有用,同时也减少了手动复制或复杂公式的需要。

免费安装 Kutools for Excel 后,按照以下步骤操作:

1. 选择要转换的单行,然后导航至 Kutools > 区域 > 转换区域。参见截图:

2. 在“转换区域”对话框中,选择 单行转区域。在“每条记录的列数”区域,指定结果中每行应包含的列数。您可以根据首选布局或报告要求设置此数字。参见截图:

提示:

  • “固定值”列决定每个新行将包含多少项目。例如,如果您有单行共 18 个值,并将每条记录的列数设置为 6,则您的数据将被重新排列为 3 行 6 列。
  • 如果您的行长度不能整除,最后一行可能包含少于指定数量的列。

3. 点击 确定。系统会提示您选择一个目标单元格用于放置转换后的结果。选择原始范围之外的一个单元格以避免覆盖数据。

A screenshot prompting the user to select a destination cell for the converted data

4. 再次点击 确定。您的单行现在将被转换为整齐排列的多行多列范围。参见以下结果:

A screenshot showing the final result of converting a single row to a range of multiple columns and rows using Kutools

注意事项:

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

使用 Excel 的 INDEX 公式将单行转换为多列和多行

如果您需要基于公式的解决方案——适合不想使用插件或希望通过工作表公式自动化的用户——Excel 的 INDEX 函数,通常与 SEQUENCE 结合使用(适用于 Microsoft 365 及更高版本),可以高效地将单行重新排列为二维范围。

此方法有助于在原始数据和输出之间保持动态链接:原始行中的任何更改都会自动反映在多行多列的输出中。

情景示例:假设您的数据位于第 1 行,从单元格 A1R1(共 18 个项目),并且您希望将其排列为 6 列 3 行。

1. 选择所需输出范围的左上角单元格(例如,单元格 A3)。

2. 在单元格 A3 中输入以下公式:

=INDEX($A$1:$R$1, SEQUENCE(3,6))

参数说明:范围 $A$1:$R$1 是您的原始行。6 是输出中每行的列数。根据需要进行调整。

它将自动生成一个 3x6 的网格(仅在启用了动态数组的 Excel 中有效)。

局限性:对于非常大的数据集、复杂的重新排列需求或需要自定义顺序的情况,基于公式的方法可能会变得笨重或难以管理。在这种情况下,考虑使用 VBA 进行自动化(见下文)。


使用 VBA 代码将单行转换为多列和多行

为了实现完全自动化并获得更多控制,您可以使用 VBA 宏将单行转换为自定义大小的列和行网格。此方法适用于重复任务和大型数据集,并且可以轻松定制以适应不同的输出大小。

典型用例:您有一行长度可变的单行数据,希望将其拆分为每行定义的列数(例如,每 6 个值形成一个新行),并希望避免手动或基于公式的转换。

操作步骤:

1. 打开 Excel 并按 Alt + F11 启动 VBA 编辑器

2. 在 VBA 编辑器中,点击 插入 > 模块,并将以下代码粘贴到模块窗口中:

Sub RowToMultiRowCol()
    Dim inputRng As Range
    Dim outputCell As Range
    Dim nCols As Integer
    Dim nData As Integer
    Dim i As Integer
    Dim r As Integer
    Dim c As Integer
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set inputRng = Application.InputBox("Select the single row to convert", xTitleId, "", Type:=8)
    Set outputCell = Application.InputBox("Select the top-left cell for the result", xTitleId, "", Type:=8)
    nCols = Application.InputBox("Number of columns per row:", xTitleId, "6", Type:=1)
    
    On Error GoTo 0
    
    If inputRng Is Nothing Or outputCell Is Nothing Or nCols <= 0 Then Exit Sub
    
    nData = inputRng.Columns.Count
    
    For i = 1 To nData
        r = Int((i - 1) / nCols)
        c = ((i - 1) Mod nCols)
        outputCell.Offset(r, c).Value = inputRng.Cells(1, i).Value
    Next i
End Sub

3. 关闭 VBA 编辑器。在 Excel 中,前往 开发工具 > ,选择 RowToMultiRowCol,然后点击 运行

4. 宏将提示您:

  • 选择要转换的单行范围。
  • 选择希望输出显示的左上角单元格(确保此范围不与输入范围重叠)。
  • 输入每行所需的列数(例如,6 表示每行 6 列的多行排列)。

宏将快速有效地填充输出区域,提供重新排列后的数据。

优点:提供快速的一键操作和灵活定义输出形状的功能。适用于复杂场景、大型数据集以及频繁使用的情况。

提示:在运行宏之前始终保存您的工作簿,因为 VBA 操作无法撤销。


演示:转置范围

 
Kutools for Excel:超过 300 种实用工具触手可及!永久免费享受 AI 功能!立即下载!

最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠