将行组合成具有不同行数的连续单元格

时间:2012-06-13 22:07:14

标签: excel concatenation excel-formula

我有一个非常大的Excel表格,从6000页的PDF文件转换而来,有大约五十万行,所以任何手册都是不可能的。

我正在努力将其转换为可用数据但是我对一些已提取的行有问题。

行应该像这样提取:

Date       Text (Date Time TelNo Duration)                     
-----------------------------------------
01/05/2012 29.04.2012 18:31 07[removed]8 00:00:06 
01/05/2012 29.04.2012 18:32 07[removed]8 00:07:22 
01/05/2012 29.04.2012 19:54 07[removed]8 00:00:28 

不确定如何但是大约有10,000条线路像这样结束了:

Date       Text                     
-----------------------------------------
01/05/2012  29.04.2012 
01/05/2012  29.04.2012 
01/05/2012  29.04.2012 
01/05/2012  18:31 
01/05/2012  18:32 
01/05/2012  19:54 
01/05/2012  07[removed]8 
01/05/2012  07[removed]8 
01/05/2012  07[removed]8  
01/05/2012  00:00:06 
01/05/2012  00:07:22 
01/05/2012  00:00:28 

我正在尝试将行重新组合成单​​行(然后再次拆分)。

我尝试了以下内容,但它仅适用于3行的组:

   A           B                    C
------------------------------------------------------------------
1  01/05/2012   29.04.2012      =B1 & B4 & B7 & B10
2  01/05/2012   29.04.2012 
3  01/05/2012   29.04.2012 
4  01/05/2012   18:31 
5  01/05/2012   18:32 
6  01/05/2012   19:54 
7  01/05/2012   07[removed]8 
8  01/05/2012   07[removed]8 
9  01/05/2012   07[removed]8  
10 01/05/2012   00:00:06 
11 01/05/2012   00:07:22 
12 01/05/2012   00:00:28 

我也尝试了各种组合:

=B1&INDEX(B1:B10,MATCH("??:??",B1:B10,0))&INDEX....

任何人都可以制定出能够合并这些值的公式,并且可以在整个工作表中进行拖动/复制吗?

修改

公式需要:

在第一行,找到当前单元格下方的第一个Time值,然后是第一个Telno和第一个Duration。 在第二行,找到当前单元格下方的第二个Time值,然后是第二个Telno和第二个Duration

2 个答案:

答案 0 :(得分:0)

在加入数据之前抛出“IF”:

=IF(MID(B1,3,1)=".",B1 & " " & B4 & " " & B7 & " " & B10,"")

您也可以将其分解为列:

名为时间的C栏

=IF(MID(B1,3,1)=".",B4,"")

D列名为TelNo

=IF(MID(B1,3,1)=".",B7,"")

E栏名为Duration

=IF(MID(B1,3,1)=".",B10,"")

在任何一种情况下,都要过滤C列为空白的任何行。

答案 1 :(得分:0)

我只用公式解决了这个问题:

第1步。 添加了Mistype列并填充了if公式(日期/时间/数字等)。

第2步。 添加了另一个新列NumMissed,其中包含以下公式:

=IF(D2="date",IF(AND(D2="date",D1<>"date"),MATCH("Time",D2:D20,0)-1,IF(D2="date",E1,"")),"")

显示可用于选择正确单元格的错过行数。

第3步。 添加了另一列来保存检索到的行(可以通过我的其他公式拆分),其中包含以下公式:

=IF(D2="date",B2&INDEX(B2:B80,E2)&INDEX(B2:B80,E2*2)&INDEX(B2:B80,E2*3)&IF(ISNUMBER(INDEX(B2:B80,E2*4)),INDEX(B2:B80,E2*4),""),"")

这为99.9%的行提供了数据,最后几个可以手动完成。