excel - VBA Excel - 基于两列的排列
解决方案
一个简单的部分反透视
- 执行此操作的主要非 VBA 工具是
PowerQuery
(以前Get & Transform
)。
Option Explicit
Sub UnPivot()
Dim ws As Worksheet: Set ws = ActiveSheet
Dim srg As Range: Set srg = ws.Range("A1").CurrentRegion
Dim rCount As Long: rCount = srg.Rows.Count
If rCount < 2 Then Exit Sub
Dim Data As Variant: Data = srg.Value
Dim r As Long
Dim c As Long
For r = 2 To rCount
For c = 4 To 2 Step -1
Data(r, c) = Data(r, c - 1)
Next c
Data(r, 1) = Data(1, 3)
Next r
Data(1, 1) = "DATE"
Data(1, 2) = "TITLE"
Data(1, 3) = "KPI"
Data(1, 4) = "VALUE"
Dim drg As Range: Set drg = srg.Offset(, srg.Columns.Count + 1)
drg.Value = Data
End Sub
推荐阅读
- json - Flutter/Dart 错误 - NoSuchMethodError: Class '_InternalLinkedHashMap
' 没有具有匹配参数的实例方法 'map' - javascript - 如何将 next.js 中的 pageProps 从子组件传递给 _app.js?
- google-apps-script - G Suite 开发者中心错误 - “出了点问题”
- nginx - 增加并发时使用 nginx 执行负载测试会降低性能
- node.js - Socket.io 节点 - 反应连接错误
- visual-studio-code - 如何修复我的 sass 编译错误:预期选择器
- javascript - jqgrid导出不导出正确的数据
- angular - Azure Active Directory Graph 与 Microsoft Graph
- security - 如何对 Firestore 中的文档强制执行服务器生成的时间戳?
- javascript - 为什么我必须重新加载页面才能使 javascript 正常工作?