Условное форматирование ячеек, которые содержат элемент списка

Условное форматирование ячеек, которые содержат элемент списка

Общая формула

=СУММПРОИЗВ(—ЕЧИСЛО(ПОИСК(список;A1)))>0

=SUMPRODUCT(—ISNUMBER(SEARCH(things,A1)))>0

Объяснение

Для того чтобы выделить ячейки, содержащие одну из многих текстовых строк, вы можете использовать формулу, основанную на функциях ЕЧИСЛО и ПОИСК, вместе с функцией СУММПРОИЗВ.

В приведённом примере условное форматирование, использованное для B4:B11, использует эту формулу:

=СУММПРОИЗВ(—ЕЧИСЛО(ПОИСК(список;B4)))>0

=SUMPRODUCT(—ISNUMBER(SEARCH(things,B4)))>0

Как работает формула

В процессе вычисления эта часть формулы ищет каждую ячейку диапазона B4:B11 для всех значений в именованном диапазоне «список»:

=СУММПРОИЗВ(—ЕЧИСЛО(ПОИСК(список;B4)))>0

=SUMPRODUCT(—ISNUMBER(SEARCH(things,B4)))>0

Функция ПОИСК возвращает позицию найденного значения, а также ошибку #ЗНАЧ, если значение не найдено.

Для B4 результаты возвращаются в массив, подобный этому:

{8; # ЗНАЧ;! # ЗНАЧ!}

Функция ЕЧИСЛО изменяет все результаты на ИСТИНА или ЛОЖЬ:

{ИСТИНА; ЛОЖЬ; ЛОЖЬ}

Двойноеотрицание перед ЕЧИСЛО вычислят ИСТИНА / ЛОЖЬ как 1/0:

{1; 0; 0}

Затем функция СУММПРОИЗВ добавляет результаты, которые проверены на ноль:

=СУММПРОИЗВ({1;0;0})>0

=SUMPRODUCT({1;0;0})>0

Любой ненулевой результат означает, что было найдено хотя бы одно значение, поэтому формула возвращает ИСТИНА, применяя правило.

Вариант, чувствительный к регистру

Функция ПОИСК не чувствительна к регистру. Если вам нужно также проверить регистр, просто замените ПОИСК с НАЙТИ следующим образом:

=СУММПРОИЗВ(—ЕЧИСЛО(НАЙТИ(список;A1)))>0

=SUMPRODUCT(—ISNUMBER(FIND(things,A1)))>0

Оцените статью
Добавить комментарий