Ваша формула возвращает массив значений, который вы можете увидеть, если используете инструмент «Оценка формул» на панели формул. На рабочем листе вы увидите только первый элемент массива.
Развернутый, возврат выглядит так:
Обратите внимание, что вы видите «число» только в том случае, если оно находится первым в массиве (например, Yellow
)
Если все, что вам нужно, это ответ ИСТИНА / ЛОЖЬ, то вам нужно удалить ошибки и OR
результат :
=OR(ISNUMBER(SEARCH($A$2:A$4,B2)))
Это формула массива. В некоторых версиях Excel вам может потребоваться ввести / подтвердить формулу массива , удерживая нажатой клавишу ctrl + shift при нажатии , введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...}
вокруг формулы, отображаемой в строке формул.
Если вы хотите что-то еще, пожалуйста, уточнить.
Редактировать: ОП пояснил, что он действительно хочет вернуть цвет. Предполагая, что должен быть возвращен только один цвет, следующий цвет вернет первый цвет:
=IFERROR(INDEX($A:$A,AGGREGATE(15,6,1/(ISNUMBER(SEARCH($A$2:A$4,B2)))*ROW($A$2:$A$4),1)),"")
В случае нескольких цветов, и вы хотите вернуть их все, было бы лучше, если у вас есть Excel 2016+ с функцией TEXTJOIN
. Если вы это сделаете, вы можете использовать что-то вроде:
=TEXTJOIN(", ",TRUE,IFERROR(INDEX($A:$A,AGGREGATE(15,6,1/(ISNUMBER(SEARCH($A$2:A$4,B2)))*ROW($A$2:$A$4),{1,2,3})),""))
В приведенной выше формуле константа массива {1,2,3}
относится к числу возможных записей в find_text
. Если это число больше трех или будет меняться, замените константу массива формулой для создания соответствующего массива.
Одна из таких формул может быть:
ROW($A$1:INDEX($A:$A,ROWS(find_text)))
Вся формула тогда может быть:
=TEXTJOIN(", ",TRUE,IFERROR(INDEX($A:$A,AGGREGATE(15,6,1/(ISNUMBER(SEARCH(find_text,B2)))*ROW(find_text),ROW($A$1:INDEX($A:$A,ROWS(find_text))))),""))