将列数据重新格式化为多行

时间:2015-10-20 09:48:32

标签: excel

我不确定这是否可以在Excel中轻松完成,但是......我有一个文件:

ID    Disease    Gene1    Gene2    Gene3    Gene4    Gene5
1     T2DM       ABCD     ABCDE    ABFJ     ASKL     ASLL
2     T2DM       ASKFA    BSDAW    KWAS     JKS 
3     LDL        GJS      ZYRLA

我希望保留前两列并将列Gene1Gene5转换为行,如下所示:

ID   Disease    Gene
1    T2DM       ABCD    
1    T2DM       ABCDE
1    T2DM       ABFJ
1    T2DM       ASKL
1    T2DM       ASLL
2    T2DM       ASKFA
2    T2DM       BSDAW
2    T2DM       KWAS
2    T2DM       JKS 
3    LDL        GJS
3    LDL        ZYRLA

由于我有1000多个ID,有没有一种简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

我觉得很容易。假设ID在A1中,请在DiseaseGene1之间插入一个新列,然后从C2填充以适应*

=A2&B2  

选择ColumnsC:H并应用详细here的'展平'流程。

创建表后,删除Column列,并在其中插入两个新列,在B2中:

=LEFT(A2)  

和C2:

=MID(A2,2,5)  

选择并复制表格的中间两列,并在顶部粘贴特殊...,值。删除ColumnA并过滤“值”列以选择和删除该列的空白行。如果需要,将表格还原为范围,无论是否删除格式,并恢复列标签。

* PS您需要调整构成ID的字符串长度 - 在连接时可能会前置零,以使所有ID具有相同的长度。也许:

=TEXT(A2,"0000")&B2  

然后用以下内容删除它们:

=LEFT(A2,4)  

并用以下内容提取其余部分:

=MID(A2,5,5)