Excel中WIND终端宽格式数据转面板数据快速方法咨询
Excel 中将宽格式时间序列数据转换为面板数据的快速方法
你需要把WIND导出的宽格式公司数据(每行对应一家公司,列对应各年份净利润增速)转换成面板数据(每行对应一家公司的单一年度数据),以下是Excel里的三种高效方法:
方法1:Power Query(推荐,无代码批量处理)
这是最适合批量处理的方案,无需手动公式或编程:
- 选中包含表头的全部数据区域,点击「数据」选项卡 → 「从表格/区域」,勾选「我的表格有标题」后进入Power Query编辑器
- 选中
Ticker和Company Name列,右键点击 → 「逆透视其他列」,此时原年份列会被转成「属性」(年份字段名)和「值」(增速数据)两列 - 提取年份:选中「属性」列,点击「转换」→ 「提取」→ 「文本范围」,设置起始位置为16(因为
NetProfitGrowth是15个字符,后面的4位就是年份),长度4,得到纯年份数字 - 重命名列:将「值」改为
Net Profit Growth,提取出的年份列改为Year - 点击「关闭并上载」,转换后的面板数据会自动导入新工作表
方法2:动态数组公式(适合熟悉Excel公式的用户)
如果使用Excel 365或2021,可通过动态数组快速生成结果:
假设源数据在Sheet1的A1:Q348区域(A=Ticker,B=Company Name,C-Q对应15个年份的增速):
- 新建工作表,在A1:D1输入表头:
Ticker、Company、Year、Net Profit Growth - 在A2输入公式并下拉至第347*15+1行:
=INDEX(Sheet1!$A$2:$A$348,INT((ROW()-2)/15)+1) - B2输入对应公式并下拉:
=INDEX(Sheet1!$B$2:$B$348,INT((ROW()-2)/15)+1) - C2输入公式生成年份序列并下拉:
=INDEX(RIGHT(Sheet1!$C$1:$Q$1,4),MOD(ROW()-2,15)+1) - D2输入公式提取对应增速并下拉:
=INDEX(Sheet1!$C$2:$Q$348,INT((ROW()-2)/15)+1,MOD(ROW()-2,15)+1)
方法3:VBA宏(适合有编程基础的用户)
通过宏实现完全自动化转换:
- 按
Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码:Sub ConvertToPanelData() Dim srcSheet As Worksheet, destSheet As Worksheet Dim lastRow As Long, lastCol As Long, i As Long, j As Long, destRow As Long '替换为你的源数据工作表名 Set srcSheet = ThisWorkbook.Sheets("Sheet1") Set destSheet = ThisWorkbook.Sheets.Add destSheet.Name = "PanelData" '写入表头 destSheet.Cells(1, 1) = "Ticker" destSheet.Cells(1, 2) = "Company" destSheet.Cells(1, 3) = "Year" destSheet.Cells(1, 4) = "Net Profit Growth" lastRow = srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row lastCol = srcSheet.Cells(1, srcSheet.Columns.Count).End(xlToLeft).Column destRow = 2 '遍历每家公司和对应年份 For i = 2 To lastRow For j = 3 To lastCol destSheet.Cells(destRow, 1) = srcSheet.Cells(i, 1) destSheet.Cells(destRow, 2) = srcSheet.Cells(i, 2) '从列标题末尾提取4位年份 destSheet.Cells(destRow, 3) = Right(srcSheet.Cells(1, j), 4) destSheet.Cells(destRow, 4) = srcSheet.Cells(i, j) destRow = destRow + 1 Next j Next i '自动调整列宽 destSheet.Columns.AutoFit End Sub - 修改代码中的
Sheet1为你的源数据工作表名,运行宏即可生成面板数据
内容的提问来源于stack exchange,提问作者Kirill Vengerov
相关产品推荐
相关产品推荐

