Проверьте наличие строки в текстовом столбце A, верните другую строку в столбце B — Excel

#excel #lookup

#excel #поиск

Вопрос:

Я пытаюсь найти одну из 3 строк (синюю, красную, зеленую) в столбце A. В столбце A у меня есть:

строка 1: «У Роберта синие шорты»

строка 2: «У Марии красное платье»

строка 3: «У Джона зеленая машина»

Всякий раз, когда я нахожу одно из этих 3 слов в столбце A, я хочу заполнить столбец B найденным экземпляром (зеленый, красный, синий).

В столбце A всегда будет одно из этих 3 слов, никогда не более одного, и позиция слов может быть в любом месте строки.

Я знаю, как поместить это в Python или SQL, но у меня проблемы с Excel.

Может ли кто-нибудь поделиться решением, если они использовали это в прошлом?

Комментарии:

1. нужно ли оценивать каждую строку? Или просто в любом месте столбца?

2. в столбце А будет по одной строке на строку (прошу прощения, что не упомянул об этом). Я пытаюсь оценить каждую строку в столбце A и поместить результат в соответствующее поле строки в столбце B. В приведенном выше примере строка 1 в столбце B будет содержать синий цвет, строка 2 — красный, а строка 3 -зеленый. Я ценю, что вы нашли время, чтобы помочь мне.

Ответ №1:

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

 =INDEX({"Red","Blue","Green"},MATCH(TRUE,ISNUMBER(SEARCH({" Red "," Blue "," Green "}," " amp; A1 amp; " ")),0))
 

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter при выходе из режима редактирования. Если все сделано правильно, то Excel поместит {} вокруг формулы.

введите описание изображения здесь

В качестве примечания:

Вы также можете заменить {"Red","Blue","Green"} его ссылкой на диапазон. Таким образом, если бы три слова были в D1: D3, формула была бы:

 =INDEX($D$1:$D$3,MATCH(TRUE,ISNUMBER(SEARCH(" " amp; $D$1:$D$3 amp; " "," " amp; A1 amp; " ")),0))
 

Комментарии:

1. очень интересно. Большое вам спасибо.

2. @ScottHoltzman теперь этого не будет, я оставил желание для IFERROR в OP.