Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2022, 13:12   #1
Max.ku
Новичок
Джуниор
 
Регистрация: 08.02.2022
Сообщений: 1
По умолчанию Проблемы конвертации .rtf в .xlsx - объединение строк

Здравствуйте, уважаемые Знатоки.
Внимание вопрос!
Проблема: конвертация файла .rtf в excel для последующего анализа.
Описание: имеется документы в формате .rtf следующего вида


Данные документа нужно перенести построчно в excel для последующего анализа.
Попробовал следующие варианты:
1. Конвертация в .pdf с последующим распознанием Abby FineReader.

Результат: не корректно распознаёт строки.

2. Сохранение в формате .txt; импорт через функцию «Внешние данные» -> «Из текста» -> «С разделителями» «Другой “|”».

Результат: всё отлично переводиться без потери данных, но данные разбиваются по строкам не согласно формальной нумерации строк в столбце «№п/п» (то есть, как мне нужно), а построчно, как в документе; таким образом появляется несколько строк с обрывками данных (см. скриншот ниже).


В итоге, приходиться через формулу СЦЕП объединять все ячейки с данными каждой строки, далее копировать в ту же строку с сохранением исключительно значений.
Долго, больно, трудоёмко и метод совершенно дурацкий. Однако, в силу своего скудоумия ничего лучше придумать не смог.
Вопроса по существу два:
1. Есть способ перенести данные без потери из .rtf в .xlsx, так чтобы выполнялось главное требование – данные должны переводиться построчно, согласно нумерации столбца «№п/п»?
2. Если первой невозможно, можно ли автоматизировать процесс объединения строк (формула «СЦЕП»), так чтобы все действия выполнял электронный болван, а не мясной. Мясной ленив, хитёр и очень медлен!

Я вижу второй вариант следующим образом:

Вводные: есть данные, полученные с помощью конвертации; диапазон этих данных преобразован в таблицу (см. приложенный пример).

1. По столбцу «№п/п» сверху вниз найти ячейку, в которой содержится значение больше «1».
2. Добавить пустую строку над строкой с найденной ячейкой.
3. Найти значение диапазона строк выше созданной пустой строки до ближайшей ячейки не пустой ячейки (например, в скриншоте ниже для строки 12 это будет диапазон А16:А17).


4. В созданной пустой строке в первой (крайней левой) ячейке ввести формулу СЦЕП с найденным диапазоном.
5. Протянуть формулу по всей ячейкам строки.
6. Скопировать, получившуюся строку.
7. Вставить получившуюся строку туда же – параметры вставки «только значения».
8. Удалить строки сцепленного диапазона (в нашем примере это А16:А17).
9. Повторять операцию вниз до конца таблицы.

Как видите, это ровно та последовательность действий, которая мясным болваном проделываются с помощью рук, мыши, клавиатуры и божие помощи. Основной затруднение, я не знаю, как это формализовать в макрос, особенной затруднение вызывает примерно всё и поиск диапазона.
Если есть более разумные способы решения проблемы, буду крайне признателен.
Буду крайне признателен знающим людям за помощь с макросом.
Файл .rtf и получившийся .xlsx для опытов прилагаю.
https://disk.yandex.ru/i/AplD_uNin5FiEg
https://disk.yandex.ru/i/kYLL_Ok936aRVQ
Max.ku вне форума Ответить с цитированием
Старый 09.02.2022, 11:16   #2
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 953
По умолчанию

Блокнот: нажать кнопку TAB
и получим символ перехода между ячейками

В RTF заменил | на скопированный символ перехода
и заменил все | и далее выделить всё и копировать

В XLSX открыл новый лист и вставил
и как будто данные разнесены на строки и столбцы

Правильно или как неизвестпо: картинки примеров не видны
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 09.02.2022, 16:02   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

ТС ведь написал
Цитата:
всё отлично переводиться без потери данных, но данные разбиваются по строкам не согласно формальной нумерации строк в столбце «№п/п» (то есть, как мне нужно), а построчно, как в документе; таким образом появляется несколько строк с обрывками данных
сфинкс где в посте №2 решается проблема "...данные разбиваются по строкам не согласно формальной нумерации строк в столбце «№п/п» (то есть, как мне нужно), а построчно, как в документе; таким образом появляется несколько строк с обрывками данных"?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объединение строк в диапазон строк eko_knopka C# (си шарп) 0 05.10.2017 12:50
объединение строк tutejshy Общие вопросы C/C++ 0 17.07.2017 22:21
Проблемы при конвертации Excel в pdf Fedosss C# (си шарп) 2 29.05.2012 13:15
Объединение строк fox31 Microsoft Office Excel 1 31.03.2011 17:35
объединение строк ManU Общие вопросы C/C++ 4 04.04.2010 17:51