Формула Excel: Проверка, содержит ли ячейка одно из нескольких значений, но исключает другие значения
Предположим, что есть два списка значений, и вы хотите проверить, содержит ли ячейка B3 одно из значений в диапазоне E3:E5, но при этом не содержит ни одного из значений в диапазоне F3:F4, как показано на скриншоте ниже. В этом руководстве будет представлена формула для быстрого выполнения этой задачи в Excel, а также объяснены аргументы формулы.
Общая формула:
=(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ(включить;текст)))>0)*(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ(исключить;текст)))=0) |
Аргументы
Текст: текстовая строка, которую вы хотите проверить. |
Включить: значения, которые вы хотите проверить на наличие в аргументе «текст». |
Исключить: значения, которые вы хотите проверить на отсутствие в аргументе «текст». |
Возвращаемое значение:
Формула возвращает 1 или 0. Если ячейка содержит одно из значений, которые должны быть включены, и не содержит никаких значений, которые должны быть исключены, она возвращает 1, в противном случае возвращает 0. В этой формуле 1 и 0 обрабатываются как логические значения ИСТИНА и ЛОЖЬ.
Как работает эта формула
Предположим, вы хотите проверить, содержит ли ячейка B3 одно из значений в диапазоне E3:E5, но одновременно исключить значения в диапазоне F3:F4, пожалуйста, используйте следующую формулу
=(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3)))>0)*(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3)))=0) |
Нажмите Enter для получения результата проверки.
Объяснение
Часть 1: (СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3)))>0) проверяет, содержит ли ячейка значения в E3:E5
ПОИСКПОЗ: функция ПОИСКПОЗ возвращает позицию первого символа текстовой строки внутри другой. Если функция ПОИСКПОЗ находит совпадающий текст, она возвращает относительную позицию, если нет — возвращает ошибку #ЗНАЧ!. Например, здесь формула ПОИСКПОЗ($E$3:$E$5;B3) будет искать каждое значение диапазона E3:E5 в ячейке B3 и возвращать местоположение каждой текстовой строки в ячейке B3. Она вернет массив результатов такого вида: {1;7;12}.
Функция ЕЧИСЛО: функция ЕЧИСЛО возвращает ИСТИНА, когда ячейка является числом. Таким образом, ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3)) вернет массив результатов как {истина,истина,истина}, так как функция ПОИСКПОЗ находит 3 числа.
--ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3)) преобразует значение ИСТИНА в 1, а значение ЛОЖЬ в 0, поэтому эта формула изменяет массив результатов на {1;1;1}.
СУММПРОИЗВ: используется для умножения диапазонов или суммирования массивов вместе и возвращает сумму произведений. Функция СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3))) возвращает 1+1+1=3.
В конце концов, сравните левую часть формулы СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3))) и 0, пока результат левой части больше 0, результат будет ИСТИНА, иначе он вернет ЛОЖЬ. Здесь он возвращает ИСТИНА.
Часть 2: (СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3)))=0) проверяет, не содержит ли ячейка значения в F3:F4
Формула ПОИСКПОЗ($F$3:$F$4;B3) будет искать каждое значение в диапазоне E3:E5 в ячейке B3 и возвращать местоположение каждой текстовой строки в ячейке B3. Она вернет массив результатов такого вида: {#ЗНАЧ!;#ЗНАЧ!}.
ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3)) вернет массив результатов как {ложь;ложь}, так как функция ПОИСКПОЗ находит 0 чисел.
--ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3)) преобразует значение ИСТИНА в 1, а значение ЛОЖЬ в 0, поэтому эта формула изменяет массив результатов на {0;0}.
СУММПРОИЗВ: используется для умножения диапазонов или суммирования массивов вместе и возвращает сумму произведений. Функция СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3))) возвращает 0+0=0.
В конце концов, сравните левую часть формулы СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3))) и 0, пока результат левой части равен 0, результат вернет ИСТИНА, иначе он вернет ЛОЖЬ. Здесь он возвращает ИСТИНА.
Часть 3: Умножение двух формул
=(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($E$3:$E$5;B3)))>0)*(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСКПОЗ($F$3:$F$4;B3)))=0)
=ИСТИНА*ИСТИНА
=1
В этой формуле 1 и 0 обрабатываются как логические значения ИСТИНА и ЛОЖЬ.
Пример файла
Нажмите, чтобы скачать пример файла
Связанные формулы
- Проверка, содержит ли ячейка определенный текст
Чтобы проверить, содержит ли ячейка некоторые тексты в диапазоне A, но не содержит тексты в диапазоне B, вы можете использовать формулу массива, которая объединяет функции СЧЁТ, ПОИСКПОЗ и И в Excel. - Проверка, содержит ли ячейка одно из многих значений
Это руководство предоставляет формулу для проверки, содержит ли ячейка одно из нескольких значений в Excel, и объясняет аргументы в формуле и то, как работает формула. - Проверка, содержит ли ячейка одно из значений
Предположим, в Excel есть список значений в столбце E, и вы хотите проверить, содержат ли ячейки в столбце B все значения в столбце E, и вернуть ИСТИНА или ЛОЖЬ. - Проверка, содержит ли ячейка число
Иногда вам может понадобиться проверить, содержит ли ячейка числовые символы. Это руководство предоставляет формулу, которая вернет ИСТИНА, если ячейка содержит число, и ЛОЖЬ, если ячейка не содержит число.
Лучшие инструменты для повышения производительности Office
Kutools для Excel - Помогает вам выделиться из толпы
Kutools для Excel имеет более 300 функций, гарантируя, что нужный вам инструмент находится всего в одном клике...
Office Tab - Включите работу с вкладками в Microsoft Office (включая Excel)
- Один щелчок мыши, чтобы переключаться между десятками открытых документов!
- Сократите сотни кликов мышью ежедневно, попрощайтесь с болью в руке.
- Увеличивает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
- Добавляет эффективные вкладки в Office (включая Excel), как в Chrome, Edge и Firefox.