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

我不确定这是否可以轻松地在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,有没有简单的方法来做到这一点?

我觉得容易。 假设ID在A1,请在DiseaseGene1之间插入一个新列,并从C2向下填充以适合*

 =A2&B2 

selectColumnsC:H并应用此处详述的“展平”过程。

在创build表之后,删除Column列,并在它的位置插入两个新的列,在B2中:

 =LEFT(A2) 

在C2中:

 =MID(A2,2,5) 

select并复制表格的中间两列和select性粘贴…,数值在顶部。 删除ColumnA并过滤Value列以select和删除该列的空行。 如果需要,可将表格还原为范围,不论是否移除格式,并恢复列标签。

* PS您将需要调整构成ID的string的长度 – 可能在将所有ID的长度相同时连接为零。 也许:

 =TEXT(A2,"0000")&B2 

然后再剥下这些:

 =LEFT(A2,4) 

并提取其余的:

 =MID(A2,5,5)