You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VBA或Python实现Excel表格行转列操作?

Excel示例

实现方案

无代码方案(推荐新手使用,无需写任何代码)

适用Excel 2016及以上、365版本:

  • 选中原始数据区域,点击顶部「数据」选项卡 → 选择「从表格/区域」,将数据导入Power Query编辑器
  • 按住Ctrl选中所有航班通用的固定列(如航班号、航班日期、出发/到达地等),右键点击「逆透视其他列」
  • 选中生成的「属性」列,点击顶部「转换」选项卡 → 选择「透视列」,值列选择「值」,聚合方式选「不要聚合」
  • 点击「关闭并上载」,即可自动生成你需要的转置后表格,后续原始数据更新时,右键结果表格选择「刷新」就能自动同步

Python极简方案

如果需要批量处理大量文件可以用这个方案,操作步骤:

  1. 先安装依赖库,打开终端运行pip install pandas openpyxl
  2. 复制下面的代码,修改对应参数后运行即可:
import pandas as pd

# 替换为你的原始Excel文件路径
df = pd.read_excel("原始数据.xlsx", sheet_name="Sheet1")
# 替换为你实际的固定公共列名,比如["航班号","航班日期","出发地","目的地"]
fixed_columns = ["航班号", "航班日期"]

# 转置逻辑,不用修改
df_transformed = df.melt(id_vars=fixed_columns).pivot(
    index=fixed_columns, columns="variable", values="value"
).reset_index()

# 导出结果,替换为你想要的输出路径
df_transformed.to_excel("转置结果.xlsx", index=False)

VBA方案

适合需要在Excel内一键完成的场景:

  1. 打开你的Excel文件,按Alt+F11调出VBA编辑器,插入新模块,粘贴下面的代码:
Sub 航班数据转置()
    Dim srcRange As Range
    Dim outRange As Range
    
    ' 选中你要处理的原始数据区域再运行
    Set srcRange = Selection
    ' 结果输出到原始区域右侧3列的位置,可自行修改
    Set outRange = srcRange.Offset(0, srcRange.Columns.Count + 3).Cells(1, 1)
    
    ' 生成透视表完成转置
    srcRange.Worksheet.PivotTableWizard _
        SourceType:=xlDatabase, _
        SourceData:=srcRange, _
        TableDestination:=outRange, _
        RowGrand:=False, _
        ColumnGrand:=False
    
    ' 调整为普通表格格式
    With outRange.PivotTable
        .DisplayFieldCaptions = False
        .TableStyle2 = "TableStyleLight1"
    End With
End Sub
  1. 回到Excel界面,选中要处理的原始数据,运行名为「航班数据转置」的宏即可。

内容的提问来源于stack exchange,提问作者Shane Nicholson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:12:02