#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.