Попытка извлечь одно из двух возможных слов из текстовой строки, если соответствует критерию, или ввести строку полностью - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь вернуть одно из двух возможных слов (локальное или национальное) из текстовой строки, и, если ни одно из этих слов не содержится в текстовой строке, вернуть строку во всей ячейке

У меня проблема в том, что я могу вернуть любое слово, когда они появляются, но я получаю ошибку, когда они не

В настоящее время я использую

  =IFERROR(IF(SEARCH("*local*",B2,1),"Local"),IF(SEARCH("*national*",B2,1),"National"))    

Однако это очевидноэто не возвращает, если слова не существуют

Я уверен, что это легко, и я что-то упускаю, но я просто не могу понять это.любая помощь будет отличной

Приветствую всех

Ответы [ 3 ]

2 голосов
/ 05 июня 2019

Вы можете использовать:

enter image description here

Формула в B1:

=IF(ISNUMBER(SEARCH("*local*",A1)),"Local",IF(ISNUMBER(SEARCH("*national*",A1)),"national",A1))

Перетащите вниз

Примечание:

Обратите внимание, что ваши символы подстановки делают это так, что даже строка с 'international' будет возвращать 'national'.Если это не то, что вам нужно, вы должны удалить символы подстановки.

1 голос
/ 05 июня 2019

Вы также можете использовать INDEX / AGGREGATE:

=IFERROR(INDEX({"local","national"},AGGREGATE(15,7,ROW($1:$2)/(ISNUMBER(SEARCH({"local";"national"},A1))),1)),A1)

Это позволит заменить оба жестко закодированных массива диапазоном ячеек, содержащих выходные данные.Если Local и National были в D1: D2, то вы можете использовать:

=IFERROR(INDEX($D:$D,AGGREGATE(15,7,ROW($D$1:$D$2)/(ISNUMBER(SEARCH($D$1:$D$2,A1))),1)),A1)

Таким образом, если список увеличивается, формула не увеличивается.

enter image description here

0 голосов
/ 05 июня 2019

Я бы предложил регулярные выражения.

=IF(REGEXMATCH(A2,"(Local|National)"),REGEXEXTRACT(A2,"(Local|National)"),A2)

regular expressions in excel

...