如何使用Excel转置数据

有没有办法,我可以做下面的转变?

在这里输入图像说明

Nov-2010 1195 1175 1676 36500.5 $33,607 Dec-2010 1215 1189 1775 46866.5 $38,714 

 Nov-2010 1195 1175 1676 36500.5 $33,607 Dec-2010 1215 1189 1775 46866.5 $38,714 

我必须先填写空白吗?

我假设不是每个月都有五个数字。 如果是这样,你不需要任何额外的检查,你可以把一个简单的公式粘贴到F4:I9(下面解释)。 但是如果一个月有两个值,而另一个月有十二个值,我的公式是有效的。

如果您的原始数据在A1:B10中,并且您的转置标题在E4:E5中(如电子表格的屏幕截图所示),则可以将其置于F4中,并将其复制到F4:Z10

 =IF(IF(ISERROR(MATCH($E5,$A:$A,0)>MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-1),MATCH(9.99999999999999E+307,$B:$B)+1>=MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4),MATCH($E5,$A:$A,0)>MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-1),OFFSET($B$1,MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-2,0),"") 

它的工作原理是:

整数位是OFFSET($B$1,MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-2,0) ,它根据值在E4。 (如果每个月只有五个值,这就是粘贴到F4:I9的情况。)但是,如果每个月都有不同数量的值,这还不够。 在这种情况下,我们需要知道如何阻止它获得比我们想要的更多的价值:

如果在E当前行下面还有一个月,我们可以使用IF(MATCH($E5,$A:$A,0)>MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-1,OFFSET($B$1,MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-2,0),"")可select显示一个值。

如果E中没有其他月份,我们可以使用IF(MATCH(9.99999999999999E+307,$B:$B)+1>=MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4),OFFSET($B$1,MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-2,0),"")值。

但是我们需要两个,所以我们必须使用一个if来决定使用哪一个,最后我们要用大的。 为了清楚起见,它分布在多行中 – 您可以将它粘贴到这样的公式栏中,但是由于换行,无法将其直接粘贴到单元格中。

 =IF( IF( ISERROR(MATCH($E5,$A:$A,0)>MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-1), MATCH(9.99999999999999E+307,$B:$B)+1>=MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4), MATCH($E5,$A:$A,0)>MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-1), OFFSET($B$1,MATCH($E4,$A:$A,0)+COLUMN()-COLUMN($E4)-2,0), "") 

Nov-2010将不得不在1195之上才能使用工作表的复制,粘贴特殊,移调命令。 OFFSET函数可以使用一些行和列的math运算,但是这是一个不稳定的函数,当没有其他的东西可以满足时,它是最好的。 INDEX函数提供OFFSET的非易失性替代。

您的样本数据整齐地在A列中的每个date的列B中提供5个相关条目。根据我的经验,样本数据并不总是代表实际数据。 您必须将每一行都填入任何一个date可能具有关联值的最大值。

在E4:F4作为标准公式,

 'in E4 =IFERROR(INDEX(A:A, AGGREGATE(15, 6, ROW(A$1:INDEX(A:A, MATCH(1E+99,A:A )))/SIGN(LEN(A$1:INDEX(A:A, MATCH(1E+99,A:A )))), ROW(1:1))), "") 'in F4 =IFERROR(INDEX(INDEX($B:$B, MATCH($E4,$A:$A, 0)):INDEX($B:$B, IFERROR(MATCH($E5,$A:$A, 0)-1, MATCH(1E+99,$B:$B ))), COLUMN(A:A)), "") 

向下填充E4,直到列A中的date用完为止。 向右填充F4,直到达到任何date可能具有的相关值的最大值,然后填入E列中的date范围。

aggregate_offset


¹ 只要整个工作手册中的任何内容发生变化,挥发性函数就会重新计算,而不仅仅是当影响其结果的事情发生变化时。 易失性函数的例子是间接 , 偏移 , 今天 , 现在 , 兰德和兰德维恩 。 CELL和INFO工作表函数的一些子函数也会使它们变得不稳定。