У меня есть столбец, в котором каждая ячейка содержит данные в этом формате:
ABC | DEF | GHI | |
ABC | DEF | GHI | JKL |
ABC | DEF | | |
Мне нужно извлечь первую и последнюю действительные (т.е. не пустые) подстроки. Я могу извлечь первую / последнюю подстроку достаточно легко, используя формулу (хотя она неуклюжа):
FIRST SUBSTRING
=TRIM(MID(SUBSTITUTE(A1,"|",REPT(" ",LEN(A1))),(4-4)*LEN(A1)+1,LEN(A1)))
LAST SUBSTRING
=TRIM(MID(SUBSTITUTE(A1,"|",REPT(" ",LEN(A1))),(4-1)*LEN(A1)+1,LEN(A1)))
Это в основном использует ЗАМЕНА вместо "|"разделить пробелами, затем использовать MID для извлечения n-й подстроки, за которой следует TRIM, чтобы заменить лишние пробелы ... но если последняя разделенная подстрока пуста, она возвращает пустую строку (как я и предполагал).
Как я могу изменить эту формулу, чтобы извлечь последнюю действующую подстроку (т.е. не пустую ""). Может кто-нибудь показать мне, как это сделать с помощью кода VBA?
ABC | DEF | GHI | |
Output column 1: ABC
Output column 2: GHI
ABC | DEF | GHI | JKL |
Output column 1: ABC
Output column 2: JKL
ABC | DEF | | |
Output column 1: ABC
Output column 2: DEF