2012-06-13 2 views
0

У меня очень большой лист Excel, преобразованный из PDF-файла с 6000 страницами, есть около полумиллиона строк, поэтому ничего из руководства практически не может быть и речи.Объединение строк в конкатенированную ячейку с различным количеством строк

Я работаю над преобразованием этого в пригодные для использования данные, однако у меня есть проблема с некоторыми из строк, которые были извлечены.

Строки должны быть извлечены, как это:

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.

ответ

0

Я решил проблему только с формулами:

Шаг 1. Добавлен Mistype столбец и заполняется, если формулы (дата/время/номер и т.д.).

Шаг 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% строк, последние могут быть сделаны вручную.

0

кинуть "IF" перед соединением данных:

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

Вы также можете разбить его на колонки:

Колонка C с именем Time

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

Колонка D по имени TelNo

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

Колонка E названа Продолжительность

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

В любом случае, фильтр на любых строк, где в колонке C является пустым.

+0

Первый метод - это, в основном, то, что я пробовал, он терпит неудачу, потому что строки сгруппированы в блоки где-то от 1 до 30, я разберу вопрос более подробно. – bendataclear

Смежные вопросы