Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: scrackan от 05.12.2015, 21:21

Название: Вернуть только символы после последнего пробела
Отправлено: scrackan от 05.12.2015, 21:21
Есть выгрузка из 1С. Необходимо из каждого наименования (см. первую колонку - "Исходные данные") выделить артикул.

Единственная закономерность, которая здесь есть: артикул - это все символы после последнего пробела.

См. файл примера. Я сделал колонку "Нужен результат", чтобы показать, что должно получиться на выходе.
Название: Re: Вернуть только символы после последнего пробела
Отправлено: Pelena от 05.12.2015, 21:32
Наверное, можно и короче, но как вариант
=ПСТР(A2;ПОИСК("|";ПОДСТАВИТЬ(A2;" ";"|";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;" ";""))))+1;99)
Название: Re: Вернуть только символы после последнего пробела
Отправлено: vikttur от 05.12.2015, 21:34
Вряд ли короче. Стандартный вариант.
Название: Re: Вернуть только символы после последнего пробела
Отправлено: scrackan от 05.12.2015, 21:39
Цитата: Pelena от 05.12.2015, 21:32
Наверное, можно и короче, но как вариант

Спасибо! То, что надо!
Название: Re: Вернуть только символы после последнего пробела
Отправлено: cheshiki1 от 07.12.2015, 09:10
короче
=ПСТР(A2;ПРОСМОТР(999;ПОИСК(" ";A2;СТРОКА(1:999)));99)
Название: Re: Вернуть только символы после последнего пробела
Отправлено: runner от 07.12.2015, 09:58
Цитата: cheshiki1 от 07.12.2015, 09:10
короче
=ПСТР(A2;ПРОСМОТР(999;ПОИСК(" ";A2;СТРОКА(1:999)));99)

Позволю себе ма-аленькую коррекцию
=ПСТР(A2;ПРОСМОТР(999;ПОИСК(" ";A2;СТРОКА(1:999)))+1;99)
Название: Re: Вернуть только символы после последнего пробела
Отправлено: scrackan от 07.12.2015, 10:05
Друзья, я проверил - в рабочем файле (160 позиций) корректно работает только вариант Pelena. ;)

Прикладываю файл со всеми 3 формулами.
Название: Re: Вернуть только символы после последнего пробела
Отправлено: runner от 07.12.2015, 10:08
Последний штрих :)
=ПСТР(A97;ПРОСМОТР(999;ПОИСК(" ";A97;СТРОКА($1:$999)))+1;99)
Название: Re: Вернуть только символы после последнего пробела
Отправлено: scrackan от 07.12.2015, 10:21
Спасибо!
Название: Re: Вернуть только символы после последнего пробела
Отправлено: zs от 07.12.2015, 19:55
=ЗАМЕНИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);" ";"!";ДЛСТР(СЖПРОБЕЛЫ(A2))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);" ";"")));1;ПОИСК("!";ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);" ";"!";ДЛСТР(СЖПРОБЕЛЫ(A2))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);" ";"")));1);"")
Название: Re: Вернуть только символы после последнего пробела
Отправлено: vikttur от 07.12.2015, 20:16
ЦитироватьВряд ли короче
Это я не подумал :)
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";50));50))
Название: Re: Вернуть только символы после последнего пробела
Отправлено: zs от 07.12.2015, 21:20
Кто знает куда и как идти - выбирает наиболее простой путь
Название: Re: Вернуть только символы после последнего пробела
Отправлено: scrackan от 08.12.2015, 10:07
Цитата: vikttur от 07.12.2015, 20:16
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";50));50))

55 символов! Круто! Найдется ли формула еще короче? 8)