1

我在 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 中将其作为宏调用。

任何想法或指示?

4

1 回答 1

1

首先一定要把你的问题分解成更小的问题:

查找工作表布局

确定国家的数量(这样您就知道不同的数据范围在哪里)

国家 1 作为其余部分的基础

收集 country 1 列并为其添加 Country name 列(使用 .xlEnd 命令将其应用于正确数量的单元格,或 .OFFSET 与日期列相比)。

我们需要为此设置国家名称。我猜国家名称在列标题中(后跟 -GDP、-UnEmp 等,因此您可以轻松地从 -GDP 列中获取它,例如 =LEFT(Range.Value2;LEN(Range.Value2) -4),去掉最后 4 个字符。将其保留为局部变量。

保留日期范围(A:A 列)的副本以供重复使用

我们将存储日期范围的副本,因为我们将使用该副本为每个其他国家/地区粘贴 A:A 列中的日期下方

使用国家 1 中的布局循环遍历其余国家/地区

现在我们开始循环遍历所有国家 2 - N。将存储的日期副本粘贴到 A:A 列下(因此为 1 个国家设置 1 个),获取国家名称(就像国家 1 一样)并将其放在旁边新粘贴的日期。并按国家/地区选择该国家/地区的不同国家/地区特征,并将数据移动到相应的国家 1 列下。

对表格进行排序

按您想要的任何顺序对数据进行排序(在您的情况下为日期/国家/地区)

于 2013-05-02T06:35:46.840 回答