Excel(或VBA)条件转置行

我有一个数据集,在列标题中有几个月,我想根据目前的月份复制行。 我遇到的一个问题是自动化,因为用户不断被添加/删除。

UserID User State Jan($) Feb ($) Mar ($) .... Dec ($) 111 AAA CT $55 $100 $125 $100 112 BBB NJ $50 $34 $125 $125 113 CCC NV $55 $100 $125 $155 114 DDD VT $95 $108 $75 $199 115 EEE NJ $20 $100 $125 $120 

示例输出:

 UserID User State Month Spend 111 AAA CT Jan $55 111 AAA CT Feb $100 111 AAA CT Mar $125 111 AAA CT Apr $80 111 AAA CT May $70 . . . 115 EEE NJ Nov $50 115 EEE NJ DEC $120 

对于一个公式答案:

![在这里输入图片描述

对于前三列:

在第一列的第一个单元格中,您需要您的数据,我的是A11:

 =INDEX(A:A,QUOTIENT(ROW(1:1)-1,12)+2) 

本月:

复制两列,然后复制下来。

在你想要数据的第四列的第一个单元格中,我的是D11:

 =CHOOSE(MOD(ROW(1:1)-1,12)+1,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") 

然后复制下来。

对于金额:

在你想要数据的第五列的第一个单元格中,我的是E11:

 =INDEX($A:$O,QUOTIENT(ROW(1:1)-1,12)+2,MOD(ROW(1:1)-1,12)+4) 

然后复制下来。

你没有说Access,但是这是如何在Access中完成的。 我不认为一个Excel数据透视表可以做到这一点…?
您需要sorting – 与交叉表查询相反。
联合查询这样做。
看看这个例子是否让你朝着正确的方向前进。

在这里输入图像说明

在这里输入图像说明