跳至主要内容

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

如何在 Excel 中将向量/单行或单列转换为矩阵?

Author Xiaoyang Last modified

在 Excel 中,您可能会遇到需要将单行或单列(通常称为“向量”)转换为具有指定行数和列数的矩阵或表格格式的情况。手动将每个值复制粘贴到网格中可能既繁琐又容易出错,尤其是处理大型数据集时。为了帮助您提高效率并减少出错的风险,本文介绍了几种实用的方法,可以快速将向量(单行或单列)转换为矩阵。每种方法适用于不同的场景,因此您可以选择最适合您的数据转换和展示需求的方法。


使用公式将向量/单行或单列转换为矩阵

Excel 公式提供了一种灵活且动态的方法,可将单行或单列转换为矩阵布局。当您希望在源数据发生变化时矩阵能够自动更新时,这种方法特别有用。但是,请注意单元格引用和矩阵大小——原始数据中的空白单元格可能会返回零值。

🔹 将单列转换为矩阵:

假设您的数据位于 C1:C20 单元格中,并且您希望将其转换为 4 行 5 列(4×5)的矩阵。操作步骤如下:

步骤 1:在您希望矩阵开始的左上角单元格(例如 F1)中输入以下公式,然后按 Enter 键。

=OFFSET($C$1:$C$20,COLUMN()-COLUMN($F$1)+((ROW()-ROW($F$1))*(ROWS($C$1:$C$20)/4)),0,1,1)

此公式将引用并重新排列列数据为矩阵格式。

Convert a single column to matrix with a formula

公式说明:

  • $C$1:$C$20:源列数据。
  • $F$1:矩阵的左上角起始单元格。
  • ROWS($C$1:$C$20)/4:“4”是矩阵的行数。根据需要调整该值。

步骤 2:向下拖动填充柄 4 行,然后向右拖动 5 列以完成矩阵。

drag the formula to right and down

🔹 将单行转换为矩阵:

要将 A1:T1 这样的行转换为 5 行 4 列(5×4)的矩阵:

步骤 1:在起始单元格(例如 E4)中输入:

=OFFSET($A$1:$T$1,0,COLUMN()-COLUMN($E$4)+(ROW()-ROW($E$4))*(COLUMNS($A$1:$T$1)/5),1,1)

步骤 2:然后向下拖动 5 行,向右拖动 4 列以形成矩阵布局。

Convert a single row to matrix with a formula

公式说明:

  • $A$1:$T$1:源行数据。
  • $E$4:矩阵的起始单元格。
  • COLUMNS($A$1:$T$1)/5:“5”是矩阵的行数。

⚠️ 注意事项:

  • 确保数据点的数量与行 × 列完全匹配(例如,4×5 = 20)。
  • 如果源范围中有空白单元格,矩阵可能会在这些位置显示 0
  • 这种公式方法是动态的,但对初学者来说不太直观。请确保引用一致。

使用 Kutools for Excel 将向量/单行或单列转换为矩阵

如果公式方法显得过于复杂或耗时——特别是对于不熟悉 Excel 函数或处理大型数据集的用户——Kutools for Excel 提供了一个更简单的解决方案。其“转换区域”功能允许您通过可视化界面将单行或单列转换为矩阵(或反之),无需编写任何公式。此方法非常适合注重效率和易用性的用户。

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

步骤 1:选择要转换为矩阵的行或列范围。

步骤 2:点击 Excel 功能区中的 Kutools > 区域 > 转换区域

click Transform Range feature of kutools

步骤 3:在“转换区域”对话框中:

  1. 如果要转换水平行,请选择“单行转区域”;如果是垂直列,则选择“单列转区域”。
  2. 固定值框下的每条记录的行数中,输入您希望结果矩阵中的列数。例如,输入5以创建一个 5 列的矩阵。

set options in the dialog box

步骤 4:点击“确定”。出现提示时,选择一个空白单元格作为矩阵结果的输出位置。

select a cell to output the result

步骤 5:再次点击“确定”。您的原始行或列现在将立即重新排列为矩阵格式。

the single column has been converted to a matrix

使用 Kutools 可以避免复杂的公式或手动填充操作,是优先考虑速度、简单性和准确性的用户的理想选择。请注意,此方法需要安装 Kutools 插件,而在某些环境中可能不可用。


使用 VBA 代码将向量/单行或单列转换为矩阵

对于需要更高灵活性、希望自动化流程或处理大型数据集的用户来说,VBA 宏是一个绝佳的选择。它支持自定义矩阵大小,减少重复的手动步骤,并能高效处理数千条记录。这种方法非常适合批量报告、批量数据重组或创建可重复使用的 Excel 工具,而无需依赖外部插件。

⚠ 重要提示:运行此脚本之前,请务必保存工作簿并启用宏。如果数据大小无法均匀适应矩阵尺寸,多余的单元格将留空以避免数据丢失。

步骤 1:Alt + F11 打开 Microsoft Visual Basic for Applications 编辑器。点击“插入”→“模块”,然后粘贴以下代码:

Sub VectorToMatrix()
    Dim vecRange As Range
    Dim outCell As Range
    Dim totalElements As Long
    Dim matrixRows As Long, matrixCols As Long
    Dim i As Long, j As Long, idx As Long
    Dim xTitleId

    On Error Resume Next
    xTitleId = "KutoolsforExcel"

    Set vecRange = Application.InputBox("Select the vector (single row or column) to convert:", xTitleId, Type:=8)
    If vecRange Is Nothing Then Exit Sub

    matrixRows = Application.InputBox("Enter number of rows for the matrix:", xTitleId, , , , , , 1)
    If matrixRows <= 0 Then Exit Sub

    matrixCols = Application.InputBox("Enter number of columns for the matrix:", xTitleId, , , , , , 1)
    If matrixCols <= 0 Then Exit Sub

    totalElements = vecRange.Cells.Count
    If matrixRows * matrixCols < totalElements Then
        MsgBox "Matrix size does not fit all values from vector!", vbExclamation
        Exit Sub
    End If

    Set outCell = Application.InputBox("Select the top-left cell for output matrix:", xTitleId, Type:=8)
    If outCell Is Nothing Then Exit Sub

    idx = 1
    For i = 1 To matrixRows
        For j = 1 To matrixCols
            If idx <= totalElements Then
                outCell.Cells(i, j).Value = vecRange.Cells(idx).Value
                idx = idx + 1
            Else
                outCell.Cells(i, j).Value = ""
            End If
        Next j
    Next i
End Sub

步骤 2: 要运行代码,请单击宏内部并按下 F5 键,或者单击 Run button 运行 按钮。然后按照提示操作:

  1. 选择向量范围——选择要转换的单行或单列。
  2. 输入矩阵的行数和列数
  3. 选择矩阵的左上角输出单元格

一旦确认,宏将自动从所选向量中填充目标矩阵的值。如果矩阵尺寸太小,脚本将中止并在进行任何更改之前发出警告。

为什么选择 VBA?对于使用公式或插件难以处理的大批量数据任务、可重复逻辑以及繁重的数据处理任务来说,它是理想之选。如果您经常需要将向量转换为不同大小的矩阵布局或跨多个工作表操作,这种方法可以节省时间和精力。

故障排除:确保所选输入为单行或单列,并且矩阵行 × 列的乘积大于或等于源值的数量。运行前始终保存文件,因为此宏会直接写入您的工作表。


相关文章:

如何在 Excel 中将矩阵转换为向量或单列?

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