Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проблемы конвертации .rtf в .xlsx - объединение строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Проблемы конвертации .rtf в .xlsx - объединение строк (Формулы/Formulas)
Проблемы конвертации .rtf в .xlsx - объединение строк
kunnick-maksim Дата: Вторник, 08.02.2022, 12:37 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте, уважаемые Знатоки.
Внимание вопрос!
Проблема: конвертация файла .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 для опытов прилагаю.
К сообщению приложен файл: 6002145.xlsx(13.2 Kb) · 8593964.rtf(10.9 Kb)


Сообщение отредактировал kunnick-maksim - Вторник, 08.02.2022, 12:38
 
Ответить
СообщениеЗдравствуйте, уважаемые Знатоки.
Внимание вопрос!
Проблема: конвертация файла .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 для опытов прилагаю.

Автор - kunnick-maksim
Дата добавления - 08.02.2022 в 12:37
прохожий2019 Дата: Вторник, 08.02.2022, 13:06 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 910
Репутация: 250 ±
Замечаний: 0% ±

365 Beta Channel
по своему второму варианту - сохраняете txt и далее PQ (он для такого и создан):[vba]
Код
let
   from = Csv.Document(File.Contents("путь к файлу\8593964.txt"),[Delimiter="|", Columns=12, Encoding=1200]),
    rem = Table.RemoveColumns(from,{"Column1", "Column7", "Column10","Column12"}),
    filtr = Table.SelectRows(rem, each Text.Replace([Column8]," ","")<>""),
    nms = Table.ColumnNames(filtr),
    f=(x)=>[g=(y)=>Text.Trim(Text.Combine(Table.Column(x,y),"#(lf)")),
            a=List.Transform(nms,g)][a],
    group = Table.Group(filtr, "Column2", {"tmp", f},GroupKind.Local,(s,c)=>Number.From(Text.Length(Text.Replace(c," ",""))>0)),
    to = Table.FromRows(group[tmp],nms)
in
    to
[/vba]
К сообщению приложен файл: 8593964.xlsx(18.5 Kb)


Сообщение отредактировал прохожий2019 - Вторник, 08.02.2022, 13:07
 
Ответить
Сообщениепо своему второму варианту - сохраняете txt и далее PQ (он для такого и создан):[vba]
Код
let
   from = Csv.Document(File.Contents("путь к файлу\8593964.txt"),[Delimiter="|", Columns=12, Encoding=1200]),
    rem = Table.RemoveColumns(from,{"Column1", "Column7", "Column10","Column12"}),
    filtr = Table.SelectRows(rem, each Text.Replace([Column8]," ","")<>""),
    nms = Table.ColumnNames(filtr),
    f=(x)=>[g=(y)=>Text.Trim(Text.Combine(Table.Column(x,y),"#(lf)")),
            a=List.Transform(nms,g)][a],
    group = Table.Group(filtr, "Column2", {"tmp", f},GroupKind.Local,(s,c)=>Number.From(Text.Length(Text.Replace(c," ",""))>0)),
    to = Table.FromRows(group[tmp],nms)
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 08.02.2022 в 13:06
kunnick-maksim Дата: Вторник, 08.02.2022, 15:03 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, добрый человек.

Очень выручил!
 
Ответить
СообщениеСпасибо, добрый человек.

Очень выручил!

Автор - kunnick-maksim
Дата добавления - 08.02.2022 в 15:03
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Проблемы конвертации .rtf в .xlsx - объединение строк (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2022 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!