Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1

Для начала - обнял, подбросил всех своих уже 56 фолловеров! Впечатлен, растроган, буду дальше для вас стараться)

И как раз один из вас @ashvud,  написал в Вологду-гдугдугду вот о такой проблеме:

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

Скажу сразу - долго не бился, на тест ушло чуть более минуты, так как пример был очень относительный - решение будет тоже относительное, но, если бы столкнулся сам, то решил бы ИЛИ регуляркой по заглавным, точнее по чередованию строчнаяЗАГЛАВНАЯ (в кодировке это разные символы, вот по ним бы и да) с последующей заменой, или скачиванием базы имен и тупо поиску по строке с заменой при нахождении вот по такой маске:

ИМЯ -> ИМЯ+Разделитель

Но правильное и полностью рабочее решение - в конце рецепта, а пока погнали полуфабрикаты готовить..

Рецепт 2. Побеждаем кривое форматирование, неправильный перенос по строкам.

Открыли табличку и смотрим:

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

Ага, у нас есть подсказка - если заполнена строка в столбце A - то это начало ФИО в столбце B. Для примера - ячейка A5 - в ней начинается новая часть ПОЛНОЙ строки.

А еще строка А5 намекает на то, что в строке B4 содержится последние символы из "кривого куска".

Что нам это дает? Да собственно решение всей проблемы)

ШАГ А.  ДОБАВЛЯЕМ столбец между существующими A и B, который будем использовать как технический:

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

В ячейку B2 вбиваем следующее:

=IF(A2<>"";"WUT";"")

Это мы проверяем - если значение в столбце А указано - ставим технический символ, а если нет - не ставим. Тем самым мы обозначаем как и окончание полной ПРАВИЛЬНОЙ строки, так и начало полной правильной строки.

Для простоты, кто не в курсе - наводим на нижний правый угол нужной ячейки (B2 в нашем случае), появляется черный крестик. На него два раза - и автозаполнение пройдет до последней заполненной строки справа или слева. (где последняя - туда и дойдет)

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных
Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

ШАГ Б. Поехали рвать вам пуканы в мой любимый текстовый редактор.Выделяем столбцы B, C, копировать, вставить в текстовый редактор.

Наша задача - удалить лишние переносы, при этом не убить текущие правильные пробелы. ОК ГУГЛ, не страшно)
Найти и заменить:

1. SPACE -> --

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

2. TAB -> (пусто, просто удалить делаем через найти и заменить)

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

3. Тыкаем вот сюда, выделяется кусок "пустоты". Выделяем его, копировать-вставить в найти.
ПУСТОТА - > (пусто, просто удалить делаем через найти и заменить)

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

4. Тыкаем в конец файла, жмем ДВАЖДЫ Enter. Получается вот так:

МАССИВ_ТЕКСТА_СЛИТНО

LUL

Выделяем LUL, жмем вверх, выделяется еще и пустая строка. Отлично, копируем получившееся (вместе с пустой строкой). Очищаем ОБЕ строки Найти / Заменить, вбиваем

WUT -> "

LUL"

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

5. LUL -> (пусто, просто удалить делаем через найти и заменить)

6. -- -> SPACE

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

Оп-па менты!

ШАГ В. Чтобы получившееся вернуть в Эксель ПОСТРОЧНО, возвращаемся в файл, и там такие применяем фильтр по строке "НОМЕР", убирая значения BLANKS.

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

Получившееся - копируем, открываем новый лист (через расширенное вставить, выбираем поле "только значения"). Вставили, теперь туда-же вставляем результаты онанизма обработки из текстового редактора...

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Microsoft Excel, Таблица, Полезное, На заметку, Microsoft office, Длиннопост, Обработка данных

Сохраняемся в конце уровня и просим маму принести полотенце, так как битва была жаркой))

Оставшееся слитные строки - правим руками, потому что мы уже автоматизировали более 90% работы менее чем за 2 минуты, а автоматизировать оставшиеся 10% займет уже дольше времени, чем руками. Потому не ленимся, помним - Эксель это чтобы БЫСТРО.
Ну а точнее - это можно поправить в самой обработке, используя шаги 1-6, просто обработки я не вижу, но автоматизировать на 100% заняло бы минуты 2-3.

Ну, собственно, вот как-то так)

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

MS, Libreoffice & Google docs

719 постов15K подписчиков

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

Строк может быть от одной до 5-ти. Значит всего 5 разных формул Concatenate.

Я поступил бы по-другому:

копируем столбец с цифрами и заполняем пустые места такими же:

выделить столбец, Find and Select=>Goto special=> Blanks

выделяются все пустые. Далее нажать стрелку вверх (на клавиатуре), символ = и Ctrl+Enter.

Все пустые заполнены верхними.

Добавляю еще один столбец, в ячейке С2 формула =COUNTIF(D:D,D2), протягиваем до низу.

Добавляю фильтр по всем колонкам.

Сначала фильтр по столбцу С, например  по цифре 3

И для первой строки составляем формулу CONCATENATE

Теперь фильтр по столбцу B (с изначальной цифрой) и протягиваем.


Снять фильтры и повторить для других количеств строк.


Или же можно наконструировать и протянуть нечто со второго снимка:
=IF(B2,IF(C2=1,E2,IF(C2=2,CONCATENATE(E2,E3),IF(C2=3,CONCATENATE(E2,E3,E4),IF(C2=4,CONCATENATE(E2,E3,E4,E5),IF(C2=5,CONCATENATE(E2,E3,E4,E5,E6),"TOO MANY VALUES!!"))))),"")


В варианте с одной формулой при добавлении значений в таблицу можно будет просто протянуть формулы ниже.

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (3)
Автор поста оценил этот комментарий

Вторая годнота! Прям другое дело)

раскрыть ветку (2)
Автор поста оценил этот комментарий

А что ж не сделать рекурсию-то? Одна формула на все ячейки будет. Короткая.

раскрыть ветку (1)
Автор поста оценил этот комментарий

=ЕСЛИ(A2="";СЦЕПИТЬ(B1;C2);B1)

Когда индексы от А начинаются, В с ФИО, С с результатом

Ну и количество строк между индексами - произвольное количество

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку