我在excel中有一个看起来像这样的数据集:
Date Country1-GDP Country2-GDP Country1-Unemp Country2-Unemp
我想生成这样的标准化数据集:
Date1 Country1_Name Country1-GDP Country1-Unemp
Date1 Country2_Name Country2_GDP Country2_Unemp
Date2 Country1_Name Country1-GDP Country1-Unemp
我想在VBA中执行此操作,以便在将数据提取后可以直接在excel中将其称为宏。
任何想法或指示?
答案 0 :(得分:1)
首先要确保将问题分解为更小的问题:
查找工作表布局
确定国家/地区数量(以便了解不同数据范围的位置)
国家/地区1作为其余的基础
收集国家/地区1列并为其添加国家/地区名称列(使用.xlEnd命令将其应用于正确数量的单元格,或.OFFSET与日期列相比较)。
我们需要有国家名称。我想国家名称在列标题中(后跟-GDP,-UnEmp等,所以你可以很容易地从-GDP列中获取它,类似于= LEFT(Range.Value2; LEN(Range.Value2)) -4),关闭最后4个分支。将其保留为局部变量。
保留日期范围(A列:A列)的副本以供重复使用
我们将存储日期范围的副本,因为我们将在每个其他国家/地区使用该日期粘贴到A列中的日期:A
使用国家/地区的布局
,遍历其余国家/地区现在我们开始遍历所有国家2 - N.将存储的日期副本粘贴在A列:A(因此1个国家/地区设置)下,获取coutnry名称(就像国家1一样)并将其放入在新粘贴的日期旁边。 并按国家/地区选择该国家/地区的不同国家/地区特征,并将数据移至相应的国家/地区列中。
对表格进行排序
按照您想要的任何顺序对数据进行排序(在您的情况下为日期/国家/地区)