Как я могу выполнить обратный поиск строки в Excel, не используя VBA?

159
задан brettdj 2 January 2014 в 09:07
поделиться

4 ответа

Этот тестируется и действительно работает (на основе исходного сообщения Brad):

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
     LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))

, Если Ваши исходные строки могли бы содержать канал "|" символ, то замените обоих в вышеупомянутом с некоторым другим символом, который не появится в Вашем источнике. (Я, оригинал подозреваемого Brad был поврежден, потому что непечатный символ был удален в переводе).

Премия: Как это работает (справа налево):

LEN(A1)-LEN(SUBSTITUTE(A1," ","")) – количество пробелов в исходной строке
SUBSTITUTE(A1," ","|", ... ) – Замены просто финал пространство с |
FIND("|", ... ) – Находит, что абсолютное положение этого заменило | (который был заключительным пространством)
Right(A1,LEN(A1) - ... )) – Возвраты все символы после этого |

РЕДАКТИРОВАНИЕ: для составления случая, где исходный текст не содержит пробелов добавьте следующее к началу формулы:

=IF(ISERROR(FIND(" ",A1)),A1, ... )

создание всей формулы теперь:

=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
    SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))

Или можно использовать =IF(COUNTIF(A1,"* *") синтаксис другой версии.

, Когда исходная строка могла бы содержать пространство в последней позиции, добавляют функцию для обрезки при подсчете всех пробелов: Создание функции следующее:

=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
    SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))
203
ответ дан Markus Jarderot 23 November 2019 в 21:36
поделиться

Я нашел это на Google, протестированном в Excel 2003 & это работает на меня:

=IF(COUNTIF(A1,"* *"),RIGHT(A1,LEN(A1)-LOOKUP(LEN(A1),FIND(" ",A1,ROW(INDEX($A:$A,1,1):INDEX($A:$A,LEN(A1),1))))),A1)

[редактирование] у меня нет достаточного количества представителя для комментария, таким образом, это кажется лучшим местом... Ответ BradC также не работает с конечными пробелами или пустыми ячейками...
[2-е редактирование] на самом деле, это не работает на отдельные слова также...

13
ответ дан Jon 23 November 2019 в 21:36
поделиться
=RIGHT(A1,LEN(A1)-FIND("`*`",SUBSTITUTE(A1," ","`*`",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))) 
2
ответ дан Cody Gray 23 November 2019 в 21:36
поделиться

Я перевел на PT-BR, так как он мне тоже нужен.

(Обратите внимание, что я изменил пространство на \ , потому что мне нужно имя файла только строк пути.)

=SE(ÉERRO(PROCURAR("\",A1)),A1,DIREITA(A1,NÚM.CARACT(A1)-PROCURAR("|", SUBSTITUIR(A1,"\","|",NÚM.CARACT(A1)-NÚM.CARACT(SUBSTITUIR(A1,"\",""))))))
0
ответ дан 23 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: