跳至主要内容

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

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

Author Xiaoyang Last modified

在 Excel 中处理数据时,您可能会经常遇到以网格形式呈现信息的矩阵样式表格,其中行和列都作为标题。虽然这种格式在某些分析中具有视觉上的优势,但您可能需要将此矩阵转换为“列表”或三列表格,以便进行数据库导入、数据规范化、制图或高级分析等任务。将矩阵转换为三列列表(有时称为“解透视”数据)可以更轻松地进行过滤、汇总,并与其他数据工具集成。请参见下面说明转换的示例:

A screenshot showing a matrix-style table converted to a three-column list in Excel


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

在 Excel 中,没有直接的内置命令可以将矩阵样式的表格转换为三列列表。但是,使用数据透视表向导,您可以高效地将交叉表矩阵转换为适合进一步分析的平面表格数据。这种方法适用于中小型数据集,特别是当您想要展平复杂报告结构时非常有用。它不太适合大型数据集或不熟悉数据透视表操作的用户。

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

  • 在“要分析的数据在哪里?”下,选择“多重合并区域”。
  • 在“您想创建什么类型的报表?”下,选择数据透视表

A screenshot of the PivotTable and PivotChart Wizard - Step1 of3 dialog

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

A screenshot of the PivotTable and PivotChart Wizard - Step2a of3 dialog

3。单击 下一步。在 步骤 2b,单击 Select range button 按钮并选择矩阵的完整数据范围,包括行和列标题。单击 添加 将范围插入到 所有范围 列表中。确认您的范围选择覆盖了整个矩阵。

A screenshot of the PivotTable and PivotChart Wizard - Step2b of3 dialog

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

A screenshot of the PivotTable and PivotChart Wizard - Step3 of3 dialog

5. 单击“完成”。Excel 会生成一个汇总矩阵的数据透视表。默认情况下,它会在交叉点显示汇总总计。对于此任务,您无需调整数据透视表结构——只需继续下一步:

A screenshot of the pivot table created in Excel from a matrix-style table

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

A screenshot of the table generated by double-clicking the Grand Total cell to convert the matrix into a three-column list

7. 最后确定时,选择新表格,右键单击,然后选择表格 > 转换为区域。这将移除表格格式,留下一个普通的、可编辑的列表:

A screenshot showing the Convert to Range option for turning the pivot table into a standard list

提示:如果您的矩阵频繁变化,则需要重复此过程以刷新三列列表。此方法最适合静态数据。此外,如果您的矩阵包含空白或合并单元格,在使用此技术之前可能需要进行一些清理。


使用 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:选择列标签(通常是矩阵的第一行):

A screenshot of a prompt to select column labels

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

A screenshot showing the selection of row labels

步骤 3:选择实际的矩阵数据范围(不包括行和列标题):

A screenshot of the prompt to select the matrix data range

步骤 4:选择转换后的三列列表应开始输出的单元格。推荐使用空白单元格或新工作表:

A screenshot showing the selection of the output cell for the converted three-column list

步骤 5:单击 确定 。您的矩阵现在将被转换为平面三列列表。

⚠️ 注意事项和提示:

• 确保不要在矩阵数据范围内包括列或行标题。

• 如果您的矩阵有合并单元格,在运行宏之前取消合并它们以避免错误。

• 如果遇到错误,请仔细检查所选的范围并确保它们正确对齐。


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

虽然上述方法有效,但对于经验较少的用户来说,可能显得繁琐或令人生畏。如果您正在寻找一个快捷且用户友好的解决方案,Kutools for Excel 提供了一个名为 转换表格维数 的专用工具,专门为此目的设计。

该工具非常适合经常转换矩阵样式表格或需要批量处理的用户。如果需要,它可以保留原始格式——如字体、填充颜色和公式。一个潜在的缺点是 Kutools 是一个第三方插件,需要安装,但它对于经常在 Excel 中重塑数据的人来说是一个强大的选项。

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

步骤:

1. 安装 Kutools 后,转到 Kutools 选项卡,单击 区域 ,然后选择 转换表格维数

A screenshot of the Transpose Table Dimensions option on the Kutools tab on the ribbon

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

  • (1)转换类型 部分下选择 二维表转一维表
  • (2) 单击 Range selection icon 按钮旁边的 来源区域 以选择您的矩阵表。
  • (3) 单击 Range selection icon 按钮旁边的 结果区域 以指定输出位置。

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

A screenshot of the Transpose Table Dimensions dialog

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

A screenshot of the result after using Kutools for Excel to convert a matrix table to a three-column list

提示:此功能还支持反向操作——将平面列表转换为二维矩阵。这对于重建报告或准备用于交叉表分析的数据很有帮助。参见:如何将列表转换为二维交叉表。

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

⏬ 立即免费下载并试用 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 功能!立即下载!

最佳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天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠