Поваренная книга Экселиста #1 - Преобразовываем ФИО

Привет всем, моему одному подписчику - отдельное трямс)
Подумалось - надо чуть поделиться некоторыми наработками, которые собрались в голове за последние лет эдак 20 работы с различными БД (к коим я с легкостью отношу Эксель). В связи с чем будет ажно целый ряд статеечек на тему, в первую очередь, оптимизации рабочего времени (ну в смысле сделал за 10 минут и дальше листаешь пикабушечку). Поехали с достаточно частой задачи:

РЕЦЕПТ 1:  Преобразовываем ФИО в Ф / И / О, без использования VBA и прочей нехристи.
Для начала чуть теории - большинство, наверняка, сталкивались с такой задачей - есть ФИО в одном столбце, а нужно вытянуть только имя, ну или два столбца ИМЯ и ФАМИЛИЯ. Да или даже поменять местами, задачи разные - суть одна. Теперь давайте разбираться что имеем - имеем строку с N-количеством слов, разделенных одинаковым символом " " (ну или чуть сложнее с массивом, содержащим N-количество элементов, в роли разделителя " "). Тут важно понять сам смысл - все, что имеет закономерность, подлежит автоматизации. В нашем случае закономерность будет вот такая - СЛОВО" "СЛОВО" "СЛОВО, следовательно мы ИЛИ должны "выбрать" нужное нам СЛОВО из всей строки, или чуть схитрить) Но начнем с выбора.

ВАРИАНТ 1: Средствами экселя. Определяем нахождение разделителей по длине строки.
1. Создаем отдельную страницу (на всякий случай)
2. Вставляем данные - Допустим вид будет вот такой
ID | ФИО
1  | Иванов Иван Иванович (b2)

3. Выбираем ПЕРВОЕ СЛОВО, ячейка (c2)
=TRIM(LEFT(B2;FIND(" ";B2;1)))
Что сделали - нашли первое вхождение символа " " в строку, и резанули все, что после него.

4. Выбираем ВТОРОЕ СЛОВО, ячейка (d2)
=TRIM(MID(B2;FIND(" ";B2;FIND(" ";B2;1))+1;FIND(" ";B2;FIND(" ";B2;1)+1)-FIND(" ";B2;FIND(" ";B2;1))))
Что сделали - указали Экселю на "координаты" первого и второго разделителей, скорректировали координаты (порезали длину строки на лишний символ " ").

5. Выбираем ТРЕТЬЕ СЛОВО, ячейка (e2)
=TRIM(MID(B2;FIND(" ";B2;FIND(" ";B2;1)+1)+1;LEN(B2)))
Что сделали - то же самое, что и со ВТОРЫМ СЛОВОМ, только так как нам не нужно резать по второй координате - за нее взяли длину строки.

На выходе получили вот так:

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

Подходит для постоянного применения и в случае, если разделитель всегда один и тот же.
Теперь для тех, кто хочет схитрить)

СПОСОБ 2: Подмена разделителя
1. Выделяем столбец с ФИО.
2. Открываем текстовый редактор (дада, Блокнот / TextEdit), вставляем туда. ОБЯЗАТЕЛЬНО переведите его в формат Plain Text/ просто текст (формат сохранения .txt) (!)
3. Находим функцию "Найти и заменить".
3.1. В поле найти введите символ " " (то есть просто поиск по одиночному пробелу).
3.2. В поле заменить вставьте символ TAB. Для этого на первой строке нажмите TAB, выделите его, cmd+c,  cmd+v (или control, у кого какая религия)

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

3.3. Примените, скопируйте, вставьте в Эксель... И собственно так, если не знали - встречайте, TAB - символ переноса на следующую ячейку))

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

Надеюсь данные способы вам потребуются) И, главное, на забывайте - работает не только на ФИО)
Понравилось? Что-то интересно? Прошу в комменты)  Ну и там лайк/ подписка / кошелек / очки / мотоцикл)

MS, Libreoffice & Google docs

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

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

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

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

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

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

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

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


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

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

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

Хм. Я вот только вот это не понял:

без использования VBA и прочей нехристи
ВБА ващет для того и предназначен, чтоб не мудрить дополнительные листы и километровые формулы в ячейках.
Один раз напрягся, написал функцию, а потом в ячейках просто её вызываешь, типа GetFirstName(E6)

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

Другая религия - Mac Os. Вот и весь ответ. Да, VBA условно на маке работает... но только условно.

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

Хм. У меня, увы, пока нет мака — но насколько я знаю из мануала, вся разница — VBA на маке работает в песочнице, отчего не имеет доступа к сторонним объектам COM, процессам и нативным вызовам WinAPI.
Это важно только в довольно специфических задачах, которые нормальные люди на VBA обычно не решают, хотя в принципе могут.
Функционал "внутренних вычислений" в вба абсолютно идентичен в маке и винде.

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

А насколько я знаю - это первостатейный мазохизм. Пробовал и неоднократно - то Эксель крашнется, то еще какие-нибудь веселые радости. Зачем мне это все надо, если все задачи Экселя можно решить в Экселе? А если нельзя - то и не надо ее там решать)

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

VBA — это естественная часть экселя, примерно так же, как ваши ноги — ваша естественная часть.
И использовать вба в экселе так же естественно, как использовать ноги для перемещения. Конечно, вы можете отказаться от использования ног и перемещаться, ползая на руках — но это будет не очень умно и совсем не удобно. Вот и с вба так же. Да, без него иногда можно обойтись, но часто это будет не очень умно и совсем не удобно.

Разумеется, вба не панацея: многие вещи в экселе можно легко сделать без него — но есть множество задач, оптимальное решение которых именно в применении вба, даже когда это решение не единственное.
раскрыть ветку (2)
Автор поста оценил этот комментарий

)))))))))))
Откройте файлик с VBA в Numbers / Libra, ок?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Зачем? Вы мне ещё предложите mp3 в блокноте открыть...
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку