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

如何将列和行转置为单行?

作者Xiaoyang修改日期

如何将多行多列快速合并为一个长行?也许对您来说这看似简单——只需逐个复制并手动拼接即可。但当面对数百行和列时,这种方法将变得极其耗时且繁琐。接下来,我将为您介绍几种高效技巧,轻松应对这一挑战。

使用公式将列和行转置/转换为单行

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

使用 Kutools for Excel 将列和行转置/转换为单行


使用公式将列和行转置/转换为单行

假设您有一组如下图所示的数据,只需使用一个较长的公式,即可将该区域的数据转换为新工作表中的一行。

doc-convert-range-to-row1

请按如下方式应用公式:

1. 在当前工作簿的新工作表中,单击单元格 A1,复制并粘贴以下公式:=OFFSET(Sheet 1!$A$1,((ROW()-1)*5)+(FLOOR(COLUMN()-1,4)/4),(COLUMN()-1)-(FLOOR(COLUMN()-1,4)))

注意Sheet 1!$A$1 是您要使用的 worksheet 和区域引用。

ROW()-1)*5 在上述公式中,5 表示行号;而 COLUMN()-1,4)/4 中的 4 表示列号。您可以根据需要随时修改!

2. 然后向右拖动填充柄,直至出现数字 0,此时该区域的所有数据均已转置为新工作表中的单行。如下图所示:

doc-convert-range-to-row2


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

以下 VBA 代码还能助您将数据区域轻松转换为单行。

1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 单击插入> 模块,并将以下代码粘贴到模块窗口中。

Sub TransformOneRow()
'Updateby20131120
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Ranges to be transform :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Paste to (single cell):", xTitleId, Type:=8)
Application.ScreenUpdating = False
xRows = InputRng.Rows.Count
xCols = InputRng.Columns.Count
For i = 1 To xRows
    InputRng.Rows(i).Copy OutRng
    Set OutRng = OutRng.Offset(0, xCols + 0)
Next
Application.ScreenUpdating = True
End Sub

3. 然后按 F5 键运行代码,会弹出一个对话框,供您选择要转换为行的数据区域;单击确定后,将再次弹出对话框,让您选择用于输出结果的单元格。见下图:

使用 VBA 将区域转换为行的截图
使用 VBA 将区域转换为行并带有箭头的截图
使用 VBA 将区域转换为行的截图 2

然后单击确定,所选区域的内容即被转换为一行。见下图:

使用 VBA 将区域转换为行的原始数据截图
使用 VBA 将区域转换为行并带有箭头的截图 2
使用 VBA 将区域转换为行的结果截图

注意:在 Set OutRng = OutRng.Offset(0, xCols + 0) 中,您可以将 0 修改为任意数值,以满足您的需求。

例如,如果您希望根据原始行用一列分隔结果,可将 Set OutRng = OutRng.Offset(0, xCols + 0) 改为 Set OutRng = OutRng.Offset(0, xCols + 1),结果如下所示:

使用 VBA 将区域转换为行的示例截图


使用 Kutools for Excel 将列和行转置/转换为单行

上述两种方法对 Excel 初学者而言可能稍显复杂,接下来,我将为您推荐一款高效便捷的工具——Kutools for Excel。

Kutools for Excel 包含 300 多个实用 Excel 工具,30 天内免费试用,无任何限制!立即获取

借助转换区域功能(属于 )Kutools for Excel),您可以快速将一个区域转换为单行,请按以下步骤操作:

1. 请选择您要转置的数据区域。

2. 单击 Kutools > 区域 > 转换区域

3. 在转换区域对话框中,选择区域转单行选项,如下图所示:

使用 kutools for Excel 对话框将区域转换为行的截图

4. 然后单击确定,并在弹出框中点击任一单元格以放置结果。

使用 kutools for Excel 输出区域对话框将区域转换为行的截图

5. 单击确定,该区域中的数据即被转置为单行。见下图:

doc-convert-range-to-row1
-1
doc-convert-range-to-row7

如需了解更多关于此功能的信息,请访问转换区域


相关文章

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

如何在 Excel 中将单列数据转置为多列?

如何将行列数据转置并转换为单列?

最佳办公效率工具

🤖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 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱