在excel中重新排列数据

时间:2011-04-22 19:10:32

标签: excel worksheet-function

我不确定如何在没有说明的情况下提出这个问题,所以这里有: 我的测试结果测试了人们对16种不同音阶的不同声音的态度(得分1-5)。数据集看起来像这样(其中P1,P2,P3是参与者,A,B,C是声音)

          Aformal   Apleasant   Acool    Bformal etc
P1        2         3           1        4
P2        5         4           2        4
P3        1         2           4        3

但是,我想重新安排我的数据,如下所示:

          formal    pleasant    cool
P1A       3         3           5
P1B       2         1           6
P1C       etc
P1D

这意味着会有更多行(每个参与者有多行),而且列数要少得多。如果不必手动重新输入新的Excel文件中的所有分数,它是否可行?

1 个答案:

答案 0 :(得分:1)

当然,没问题。我刚刚破解了这个解决方案:

L         M          N          O         P         Q
person# voice#               formal    pleasant    cool
1         1         P1A         2         3         1
1         2         P1B         4         5         2
1         3         P1C         9         9         9
2         1         P2A         5         4         2
2         2         P2B         4         4         1
2         3         P2C         9         9         9
3         1         P3A         1         2         4
3         2         P3B         3         3         2
3         3         P3C         9         9         9

基本上,在L和M列中,我创建了两个带索引号的列。语音编号从1到3并且每3行重复一次,因为有nv = 3个声音(如果你有声音F,G,H ......则增加它)。人数也重复3行,因为有nv = 3个声音。

要制作行标题(P1A等),我在P1A使用了这个公式:="P" & L2 & CHAR(64+M2)并向下复制。

为了制作新的价值表,我在P1A-formal中使用了这个公式:=OFFSET(B$2,$L2-1,($M2-1)*3),然后向下复制。请注意,B$2对应于原始值表(您的示例)中P1-Aformal的单元格地址。

我已经使用了这个索引技巧,我不知道有多少次快速重新排列从其他人继承的数据表。

编辑:请注意,索引列也是使用公式自动(半)制作的。第一个nv = 3行是手动生成的,然后后续行引用它们。例如,L5中的公式为=L2+1,M5中的公式为=M2。两者都被复制到表的末尾。