Нужно перенести в отдельную ячейку данные, расположенные в конце ячейки после последнего пробела.
Проблема в том, что в ячейках разное количество слов и, соответственно, разное количество пробелов. А нужный нам кусок всегда в конце и тоже может состоять из разного количества символов.
Беда, казалось бы. Но я всегда говорю, что при наличии закономерности задача 100% решаема. И данный случай не исключение.
Когда я стала обдумывать решение с использованием встроенных формул, то поняла, что впереди ждёт мучение с трёхэтажной конструкцией и, возможно, использование нескольких промежуточных ячеек, количество которых непредсказуемо. Уже звучит как в фильме ужасов, правда?
Мучиться я ни себе, ни Вам не желаю, поэтому за несколько минут набросала функцию-макрос ПравСимвДО и сижу теперь довольная простым и красивым решением.
Если в ячейку нужно вытащить число – просто поставьте перед именем функции два знака минус.
Разделителем может быть любой символ или их последовательность. Окно аргументов открывается, как и для любой стандартной функции.
Коллеги, переселите эту функцию ПравСимвДО в свой файл (на бесплатном уроке«Макрос напрокат» я показывала, как это делать) и пользуйтесь на здоровье!
Function ПравСимвДО(Ячейка, Символ)
'находит указанный символ в ячейке справа и берёт все знаки после него
ns = Len(Ячейка)
nss = Len(Символ)
For i = ns To 1 Step -1
If Mid(Ячейка, i, nss) = Символ Then
ni = i + nss
nk = ns - ni + 1
GoTo 1
End If
Next
1:
otvet = Mid(Ячейка, ni, nk)
ПравСимвДО = otvet
End Function
Вопрос, кстати, возник на последнем корпоративном тренинге по PowerPoint, никуда без Excel )) Надеюсь, автор вопроса увидит этот пост.
23 ноября 2020 г.
Уровень сложности программного кода - учебный. Вы легко сможете писать такие макросы сами после моего онлайн курса «МАКРОСЫ НА VBA С НУЛЯ».