KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中将矩阵式表格转换为三列格式?

作者肖阳修改日期

在 Excel 中处理数据时,您可能会经常遇到以网格形式呈现信息的矩阵式表格,其中行和列均作为标题。虽然这种格式在某些分析场景中具有出色的可视化效果,但为了进行数据库导入、数据规范化、图表制作或高级分析等操作,您通常需要将其转换为“列表”格式,即三列表格。将矩阵数据转换为三列(也称为“非透视”数据)后,不仅更便于筛选与聚合,还能更轻松地与其他数据工具集成。以下示例展示了这一转换过程:

一张截图,展示在 Excel 中将矩阵式表格转换为三列列表


使用数据透视表将矩阵式表格转换为列表

Excel 中没有直接内置的命令可将矩阵式表格转换为三列。但通过数据透视表向导,您即可高效地将交叉表矩阵转换为适用于进一步分析的平面表格数据。此方法特别适合中小型数据集,尤其适用于需要展平复杂报表结构的场景;但对于大型数据集或不熟悉数据透视表操作的用户而言,适用性较低。

1. 打开包含矩阵的工作表,按下 Alt + D,再按 P,即可打开数据透视表和数据透视图向导。在向导中:

  • 您要分析的数据位于何处下,选择多重合并计算区域
  • 您要创建何种类型的报表下,选择数据透视表

数据透视表和数据透视图向导 - 第1步(共3步)对话框的截图

2. 单击下一步。在 3 的步骤 2a 对话框中,选择我将创建页字段

数据透视表和数据透视图向导 - 第2a步(共3步)对话框的截图

3. 单击下一步。在 步骤 2b 中,单击选择区域按钮按钮,选择包含行列标题在内的完整矩阵数据区域,然后单击添加,将该区域插入到所有区域列表中,并确认所选区域已覆盖整个矩阵。

数据透视表和数据透视图向导 - 第2b步(共3步)对话框的截图

4. 单击下一步。在 步骤 3(共 3 步) 中,选择将数据透视表放置在新工作表还是特定单元格中:

数据透视表和数据透视图向导 - 第3步(共3步)对话框的截图

5. 单击完成,Excel 将自动生成一个汇总矩阵的数据透视表,默认在交叉点显示汇总总计。此任务无需调整数据透视表结构,直接进入下一步即可:

一张截图,展示在 Excel 中从矩阵式表格创建的数据透视表

6. 双击行总计与列总计相交的单元格(例如 F22),Excel 即可创建一个新工作表,其中包含三列格式,每行显示唯一的行标题与列标题组合及其对应值。

一张截图,展示通过双击“总计”单元格生成的表格,将矩阵转换为三列列表

7. 为完成操作,请选择新表格,右键单击,然后选择表格> 转换为区域。此操作将移除表格格式,保留一个可编辑的普通列表:

一张截图,展示将数据透视表转换为标准列表的“转换为区域”选项

提示:如果您的矩阵频繁变动,需重复此流程以刷新三列结构——此方法最适合静态数据。此外,若矩阵包含空白单元格或合并区域,使用前建议先进行清理。


使用 VBA 代码将矩阵式表格转换为列表

如果您倾向于自动化操作,或需要反复执行此转换,使用 VBA 宏可以快速将任意矩阵式表格转换为结构化的三列。此方法特别适用于大型数据集或多样化的布局,并省去了手动格式化的麻烦。适合熟悉运行 VBA 脚本的用户。

1. 按下 Alt + F11,即可打开 Microsoft Visual Basic for Applications 编辑器。

2. 在编辑器中,单击插入> 模块,即可创建一个新模块。然后将以下代码粘贴到模块窗口中:

📜 VBA 代码:将矩阵转换为列表

Sub ConvertTable()
' Updated by Extendoffice
Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
xTitleId = "KutoolsforExcel"
Set cRng = Application.InputBox("Select your Column labels", xTitleId, Type:=8)
Set rRng = Application.InputBox("Select Your Row Labels", xTitleId, Type:=8)
Set Rng = Application.InputBox("Select your data", xTitleId, Type:=8)
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
    For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
        outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
        outRng.Cells(k, 2) = xWs.Cells(xRow, j)
        outRng.Cells(k, 3) = xWs.Cells(i, j)
        k = k + 1
    Next j
Next i
End Sub

3. 按 F5 键或单击运行按钮,即可执行宏。随后,一系列提示将引导您完成所需的选择:

步骤 1: 选择列标签(通常为矩阵的首行):

一张提示选择列标签的截图

步骤 2: 选择行标签(通常为矩阵的第一列):

一张展示行标签选择的截图

步骤 3: 选择实际的矩阵数据区域(不包括行号列标):

一张提示选择矩阵数据区域的截图

步骤 4: 选择输出单元格,作为转换后三列数据的起始位置。建议使用空白单元格或新工作表:

一张展示为转换后的三列列表选择输出单元格的截图

步骤 5: 单击确定,您的矩阵将立即转换为平面三列。

⚠️ 注意事项与提示:

• 请确保矩阵数据区域中不含任何列标题或行标题。

• 若您的矩阵包含合并单元格,请在运行宏前先取消合并,以免出错。

• 如果遇到错误,请再次检查所选区域,确保其正确对齐。


使用 Kutools for Excel 将矩阵式表格转换为列表

尽管上述方法有效,但对经验较少的用户而言,可能显得繁琐甚至望而却步。如果您正在寻找一种快速且用户友好的解决方案,Kutools for Excel 提供了专为此目的打造的转换表格维数工具。

此工具非常适合需要频繁转换矩阵式表格或执行批量处理的用户。如有需要,它还能保留原始格式(例如字体、填充颜色和公式)。唯一的潜在缺点是 Kutools 是一个需要安装的第三方加载项,但对于经常在 Excel 中重塑数据的用户来说,这是一个功能强大的选择。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

操作步骤:

1. 安装 Kutools 后,转到 Kutools 选项卡,点击区域中的转换表格维数

功能区 Kutools 选项卡上“转置表格维度”选项的截图

2. 在转换表格维数对话框中:

  • (1)转换类型部分中,选择二维表转一维表
  • (2) 单击来源区域旁的区域选择图标按钮,即可选择您的矩阵表。
  • (3) 单击结果区域旁的区域选择图标按钮,以指定输出位置。

请确保选中整个矩阵(包括标题和数据),以避免部分转换或结果错误。

“转置表格维度”对话框的截图

3. 单击确定,矩阵将立即转换为三列格式,并尽可能保留原始单元格格式:

使用 Kutools for Excel 将矩阵表格转换为三列列表后的结果截图

提示:如何将列表转换为 2 维二维表。 此功能还支持反向操作——将平面列表转换为二维矩阵,助您轻松重建报表或为交叉分析准备数据。

➤ 了解更多关于转换表格维数功能的信息

⏬ 立即免费下载并试用 Kutools for Excel!


使用 Excel 公式将矩阵式表格转换为列表

如果您倾向于使用基于公式的方案(尤其适用于希望三列结果能随矩阵变化而动态更新的情况),可结合 INDEXROWCOLUMNCOUNTA 函数手动展开数据。此方案无需 VBA 或加载项,非常适合希望避免使用宏或外部工具的用户。但需注意公式引用的准确性,通常需以数组形式填充,或系统性地向下/向右拖动公式。该方法最适合中等规模的矩阵,以及列表需对源数据变化保持实时响应的场景。

假设您的数据区域如下所示:

  • 行标签位于单元格 A2:A10 中。
  • 列标签位于单元格 B1:J1 中。
  • 矩阵值位于单元格 B2:J10 中。

1. 创建一个新工作表,或在现有工作表的空白区域开始操作。在单元格 L2 中输入以下公式,即可提取行标签:

=INDEX($A$2:$A$10,INT((ROW(A1)-1)/COUNTA($B$1:$J$1))+1)

2. 在单元格 M2 中输入以下公式,即可提取对应的列标签:

=INDEX($B$1:$J$1,MOD(ROW(A1)-1,COUNTA($B$1:$J$1))+1)

3. 在单元格 N2 中输入以下公式,即可从矩阵中提取数值:

=INDEX($B$2:$J$10,INT((ROW(A1)-1)/COUNTA($B$1:$J$1))+1,MOD(ROW(A1)-1,COUNTA($B$1:$J$1))+1)

4. 选中单元格 L2:N2,然后向下拖动填充柄,直至第行数 × 列数行(在此示例中,即 9 行 × 9 列 = 共 81 行)。

✅ 提示:

  • 根据您的实际数据结构,调整所有区域。
  • 如需筛选空行,请使用 IFISBLANK 函数。
  • 若需实现自动扩展功能,可考虑使用 OFFSET 函数或动态命名区域。
  • 此方法最适合矩阵大小固定且数据量适中的场景。

ℹ️ 补充说明:

  • 优势:公式保持动态,能自动反映矩阵变化,无需 VBA 或加载项。
  • 劣势:处理大型矩阵时可能影响工作簿性能,且需谨慎设置。

演示:使用 Kutools for Excel 将矩阵式表格转换为列表

 
Kutools for Excel:超过 300 款实用工具触手可及!畅享 AI 驱动的功能,让工作更智能、更高效!立即下载!

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 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、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱