2016-02-12 22 views
0

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

你有什么试过?一旦你的输出表设置好了几个月后,你可以使用索引/匹配或vlookup来返回其他信息。请让我们知道你到目前为止尝试过什么,以及有没有工作。 – BruceWayne

+0

我已经能够手动复制它,但表格是动态的,并且用户经常被添加/移除,以及花费。一直在使用数据透视表设置,但几个月不会按预期拉动。 – Porkythepig

回答

2

对于公式的答案:

![enter image description here

为第3列:

在第一个单元格中你想要的第一列你的数据,我的是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) 

然后把它复制下来。

+0

还需要这个月。 –

+0

@ n8是我忘了给我秒。 –

+0

感谢这工作! – Porkythepig

0

你没说访问,但在这里是如何它可以在Access来完成。我不认为Excel数据透视表可以做到这一点......?
您需要排序 - 与交叉表查询相反。
联合查询执行此操作。
看看这个例子是否让你朝着正确的方向前进。

enter image description here

enter image description here

+0

谢谢!我试图看看我是否可以在Excel中做到这一点,因为我的访问和SQL技能是有限的。 – Porkythepig