通过将列转换为重复的行

时间:2018-03-12 10:50:12

标签: excel vba excel-vba excel-formula

我有一张Excel表格,如下所示:

ID  Arrival Passed      Berthing Date       UnBerthing Date     Departure Passed 
1   13/05/2017 15:30    13/05/2017 16:00    31/05/2017 20:44    31/05/2017 
2   15/05/2017 16:56    15/05/2017 17:15    16/05/2017 00:00    16/05/2017 
3   20/05/2017 09:54    20/05/2017 10:26    20/05/2017 18:07    20/05/2017 
4   24/05/2017 16:09    24/05/2017 16:35    25/05/2017 01:03    25/05/2017 
5   29/05/2017 10:30    29/05/2017 10:45    29/05/2017 17:33    29/05/2017 

我需要以下格式:

ID  Event       Time
1   Arrival     13/05/2017 15:30
1   Berth       13/05/2017 16:00
1   UnBerth     31/05/2017 20:44
1   Departure   31/05/2017 20:58
2   Arrival     15/05/2017 16:56
2   Berth       15/05/2017 17:15
2   UnBerth     16/05/2017 00:00
2   Departure   16/05/2017 00:04

我搜索了网站和本网站(youtube ...),但由于没有正确答案,我已经尝试了转置功能和数据透视表,但我无法做到。

任何帮助都将不胜感激。

谢谢你。

1 个答案:

答案 0 :(得分:1)

假设您的数据集位于A2:E6范围内。

获取ID:

=INDEX($A$2:$E$6,CEILING(ROWS($A$1:A1)/4,1),1)

获取活动:

=CHOOSE(MOD(ROWS($A$1:A1)-1,4)+1,"Arrival","Berth","Unberth","Departure")

获取时间:

=INDEX($A$2:$E$6,CEILING(ROWS($A$1:A1)/4,1),MOD(ROWS($A$1:A1)-1,4)+2)

然后复制,直到出现错误。