用于转置每12行的宏

时间:2016-08-03 03:44:45

标签: excel excel-vba vba

50多年来,我每个月都有数据点。因此,所有数据都在一列中,并按日期排序,然后给出感兴趣的数据点。我需要转换每年的所有月份。这是我的数据的一个例子。所有......都是数据继续存在的地方。左边的是我所拥有的。我需要的是右边的东西。如何为此进行转置循环?

enter image description here

1 个答案:

答案 0 :(得分:1)

非VBA解决方案:

让我们假设您的列格式数据设置为A列中的日期和B列中的值。如果您要将值放在D1中,您可以使用以下公式:

=INDEX($B:$B,(COLUMN(D1)-COLUMN($D$1)+1)+(ROW(D1)-ROW($D$1))*12)

您可以调整B:B的完整列参考以适合您的数据。将D1更改为您为左上角选择的任何单元格。更改+1以反映数据的起始行。 12表示基本上转置的行数。将其复制到12列,然后根据需要将12个单元格复制下来。

概念证明

POF

编辑:

=INDEX($B:$B,(COLUMN(D1)-COLUMN($D$1)+ROW(B1))+(ROW(D1)-ROW($D$1))*12)

其中B1是要转置的值的第一行。