Разделить текст от последнего пробела до 35-й позиции символа в Excel - PullRequest
0 голосов
/ 24 апреля 2019

например, Имя поставщика - NANJING BANGSHING PRECISION MACHINERY TE

Я хочу вырвать это Имя из последнего пробела перед 35-й позицией.

В этом случае 35-я позиция - 'E' вMACHINERY, и я хочу отделить его от пробела перед ним.

то есть

NANJING BANGSHING PRECISION - Cell A1
MACHINERY TE - Cell B2     

В настоящее время я нахожу позицию 2-го последнего пробела (для любого имени поставщика, превышающего 35 символов,так как имена не длиннее 70 символов), чтобы выполнить мою задачу.Тем не менее, это не хорошая практика.

=FIND("^"|SUBSTITUTE(A1|" "|"^"|LEN(A1)-LEN(SUBSTITUTE(A1|" "|""))-1))

, чтобы найти позицию

NANJING BANGSHING PRECISION - Cell A1
MACHINERY TE - Cell B2

1 Ответ

2 голосов
/ 24 апреля 2019

AGGREGATE может вернуть позицию последнего пробела перед 35-й позицией. Используйте с REPLACE для удаления нежелательных символов.

'first part
=REPLACE(A2, AGGREGATE(14, 7, ROW($1:$35)/(MID(A2, ROW($1:$35), 1)=" "), 1), LEN(A2), "")
'second part
=REPLACE(A2, 1, AGGREGATE(14, 7, ROW($1:$36)/(MID(A2, ROW($1:$36), 1)=" "), 1), "")

Было немного неясно, что делать, если 35-я позиция на самом деле была пробелом. Выше используется как остановка. Если это нежелательное поведение, измените 35 на 34.

...