Страницы: 1
RSS
Сбор текстовых данных с листа по блокам
 
Уважаемые знатоки, перерыл весь форум, но подобного не нашел. Ест похожее, но проблему не помогает решить. В общем проблема в следующем: есть на листе набор данных идентичного смысла, но разные по содержанию. Требуется собрать их в структурированную таблицу.
Чтобы было понятней .речь идет о перечне поставщиков с их контактными данными.
Структура данных выглядит следующим образом: информация о поставщиках собрана в блоки, причем каждый блок начинается с наименования поставщика, выделенного красным шрифтом.
наименование 1
адрес 1
телефон 1
наименование 2
адрес 2
дополнительно 2
телефон 2
Необходимо сформировать в таблицу:
наименование 1 / адрес 1 / телефон 1
наименование 2 / адрес 2 / телефон 2 / дополнительно 2
Образец с данными прикладываю.
Изменено: Владимир--- - 18.07.2018 17:21:50
 
Пока ждал ответа, ручками уже половину списка обработал.
Тем не менее, ответ будет полезен в будущем. Народ, кто знает способы решения такой задачи, не стесняйтесь - отписывайтесь.
 
посмотрите приемы
 
Stics, он ему не поможет - разное количество строк, для организаций.
Вот горшок пустой, он предмет простой...
 
Как мне кажется тут единственный опорный момент - это выделение красным шрифтом названия поставщика.
Другими словами - блок с информацией начинается на ячейку, содержащую шрифт красного цвета и заканчивается на ячейке перед такой же ячейкой.
Если есть вариант выделять такие блоки и вставлять их один под другим, то уже будет проще обработать полученную таблицу.
 
Вариант на Power Query.
Принципиально - в строках с названием организации не должно быть двоеточий, во всех остальных строках они должны быть.
Изменено: PooHkrd - 18.07.2018 16:02:54
Вот горшок пустой, он предмет простой...
 
PooHkrd, блин, такой же пример делал) Лучше конечно к названию добавить "Организация:" и не париться о наличии двоеточия в будущем.
Изменено: Dark1589 - 18.07.2018 16:11:05
 
Цитата
Dark1589 написал:
Лучше конечно к названию добавить "Организация:"
Если вы о том, чтобы в коде добавить, а потом уже делить по столбцам, то все равно нужно перебирать все строки и определять кто из них название по наличию в строке двоеточия. По крайней мере других закономерностей я не обнаружил.
Если же это предложение в адрес ТС, то полностью согласен.
Вот горшок пустой, он предмет простой...
 
Пробую через Power Query. Отпишусь о результате.
 
Не получается. Чтобы воспользоваться Power Query необходимы одинаковые блоки. Т.е. количество строк в каждом блоке должно быть идентичным. У меня не так. В одном блоке количество строк - 9 , в другом - 10 , в третьем 11 в четвертом снова - 10 и так далее. Количество строк в каждом блоке "прыгает".
Пройтись по всем блокам и добавить пустышки оч сложно, ибо таких блоков более 7000.
Хотя Power Query неплохой инструмент.  
 
Цитата
Владимир Левый написал:
Не получается.
Что значит не получается? Я вам дал рабочий скрипт, в котором все уже получилось. Вам осталось только на лист1 с данными вставить полный массив организаций, потом сохранить файл и после на листе 3 нажать правой кнопкой на таблице и выбрать Обновить.
Еще нужно чтобы у вас был активирован автоматический пересчет формул, иначе скрипт не увидит правильный адрес файла, который он получает из формулы на листе2.
Главные условия, для того чтобы скрипт выдал корректный результат, я описал в предыдущем посте с файлом. На размеры блоков - глубоко фиолетово.
Изменено: PooHkrd - 18.07.2018 17:25:35
Вот горшок пустой, он предмет простой...
 
PooHkrd, дружище, спасибо.
Я просто не сразу понял, что в прикрепленном файле есть решение, а пробовал воспользоваться Power Query по видеоинструкции.
А теперь все вышло!!!
Еще раз громадное спасибо!
 
Цитата
PooHkrd написал:
Stics , он ему не поможет - разное количество строк, для организаций.
Вот здесь я указал что эта инструкция вам не поможет именно по причине разного размера блоков. Вы просто не внимательно читаете, а потом теряете время.
Хотя, с другой стороны, ознакомление со той статьей в общем-то не помешает.
Вот горшок пустой, он предмет простой...
 
Откровенно говоря, для меня полученный результат - это какое то колдунство.
Совершенно не понял как это было сделано. Даже не смотря на детальное изучение примененных шагов в Power Query
 
Там часть шагов рукописные, таких кнопок на панели редактора запросов нет. Чтобы пришло понимание нужно начать читать справочники по синтаксису, функциям и т.д. Короче учиться, учиться и учиться.
Можно просто пытаться любую задачу решать именно этим инструментом, тогда понимание придет гораздо быстрее, но практика без теории приведет не совсем по нужному адресу.
Изменено: PooHkrd - 18.07.2018 19:28:25
Вот горшок пустой, он предмет простой...
 
Владимир Левый, посмотрите вариант. Делал на основе скрипта уважаемого PooHkrd. Полностью на кнопочном интерфейсе.
Поддерживаю мнение про "учиться, учиться и учиться"))
К сожалению, на русском не так много материала, как хотелось бы. Сам только начал осваивать PQ. Так что работаю только в кнопочном интерфейсе.
Изменено: Stics - 19.07.2018 10:18:38
 
Stics, в общем-то изначально я хотел сделать так же, но почему-то шаг "Сведенный столбец" мне ошибку выдавал. Пришлось извращаться с индексами и группировкой.
Вот горшок пустой, он предмет простой...
 
PooHkrd, да, у меня тоже первоначально с этим затык был. Потом дошло, что "Сведеный столбец" корректно отрабатывает при наличии индекса. Вполне логично. Т.е. нужно понимать какая строка к какой организации относится.
 
Удивительно, вчера все получилось. Сегодня в этот же файл добавляю новые данные (точно такие же) и уже не получается.
Пробовал скачать образец файла от PooHkrd и вставить новые данные в него - так же не работает.
Точнее работает, но на выходе не структурированный набор данных а копия начальных.
Все делаю точно так же как и в прошлый раз.
Вот что выходит (в файле вставлены новые данные)

Думал, может быть дело в источнике данных, но вроде бы все в норме - подхватывает первый столбец полностью.
Где я проглядел?
Изменено: Владимир Левый - 19.07.2018 11:32:33
 
Опять же невнимательно читаете условия корректной работы скрипта. ранее у вас в качестве разделителя выступал символ ":", а теперь это символ "-"
Причем если двоеточие вряд ли когда встретится в названии организации, то дефис - легко например ЗАО "Урал-Микма-Терм".
Щас что-нибудь придумаем.
Вот горшок пустой, он предмет простой...
 
смотрите модифицированный вариант  с разделителем "-"
 
Странно, почему Урал-Микма-Терм не разделился по дефису. Может я чего-то не знаю?
Изменено: PooHkrd - 19.07.2018 13:02:22
Вот горшок пустой, он предмет простой...
 
Действительно странно. Не обратил внимание. Я только изменил разделить с ":" на "-".
Всё-таки первый вариант выгрузки с ":" более адекватен для обработки.

опытным путем установлено, что наличие кавычек (") влияет на процедуру разбиения
т.е. наличие (")  в записи ЗАО "Урал-Микма-Терм" приводит к корректному разбиению
а запись (ЗАО Урал-Микма-Терм) разделяется по дефису (-)
и вот ещё такой момент. В расширенных параметрах процедуры "Разделить столбец" установлен по умолчанию Символ кавычек.
Если его выставить Нет , то разделение тоже некорректно отрабатывается
Изменено: Stics - 19.07.2018 14:27:15
Страницы: 1
Наверх