打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
教程:EXCEL快速实现多维转二维的效果

最近同事在工作中遇到一个问题(如图1所示),她希望将这张多维的表格按照月份转换为图2所示的二维表格,由于实际的数据量比较多,如果采取剪切、粘贴的方法,操作相当繁琐。有没有简单一些的方法呢?

图1

图2

考虑之后,建议同事使用VBA代码实现上述要求,按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入→模块”,在右侧窗格插入一个空白模块(如图3所示),手工输入或粘贴如下代码:

Sub test()

Application.ScreenUpdating = False

a = 2

For j = 2 To Sheets(1).Cells(Rows.Count, 1).End(3).Row

Sheets(1).Cells(j, 1).Resize(1, 6).Copy Cells(a, 1)

For i = 7 To 18

If Len(Sheets(1).Cells(j, i)) > 0 Then

Sheets(1).Cells(j, 1).Resize(1, 6).Copy Cells(a, 1)

Cells(a, 7) = Sheets(1).Cells(1, i)

Cells(a, 8) = Sheets(1).Cells(j, i)

a = a + 1

End If

Next i

Next j

Application.ScreenUpdating = True

End Sub

代码检查无误之后,依次选择“文件→关闭并返回到Microsoft Excel”命令,返回Excel主界面,按下“Alt+F8”组合键,打开“宏”对话框,选择并运行宏,稍等片刻,很快就可以看到图4所示的效果。

进阶:或者也可以使用公式完成转换任务,选择F2单元格,在编辑栏输入公式“=OFFSET(原表!A$2,MOD(ROW(A11),11),)”,向右、向下拖拽填充柄至F2单元格;选择G2单元格,在编辑栏输入公式“=OFFSET(原表!$G$1,(COLUMN(A1)>1)*(MOD(ROW(A1)-1,11)+1),INT((ROW(A1)-1)/11))”,向右拖拽填充柄至H2单元格,公式执行之后向下拖拽填充柄,即可看到图5所示的转换效果。

图3

图4

图5

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
自学资料(Excel VBA)[收集整理6]
在Excel中用宏命令制作打印表单
excel编程系列基础:常用语句之循环语句的逻辑理解
Excel中,什么函数公式能自动记录单元格被修改的次数?
excel 插入行后如何自动重新编号?
结构转换的方法多种多样,多维引用还不熟练?没关系,INDEX函数也简单!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服