86

У меня есть диапазон (A3:A10), который содержит имена, и я хотел бы проверить, совпадает ли содержимое другой ячейки (D1) с одним из имен в моем списке.

Я назвал диапазон A3:A10 «some_names», и я хотел бы получить формулу Excel, которая даст мне True/False или 1/0 в зависимости от содержимого.

9 ответов9

90

= СЧЕТЕСЛИ (some_names, D1)

должно работать (1, если имя присутствует - больше, если более одного экземпляра).

66

Мой предпочтительный ответ (модифицированный от Яна):

=COUNTIF(some_names,D1)>0

который возвращает TRUE, если D1 найден в диапазоне some_names хотя бы один раз, или FALSE в противном случае.

(COUNTIF возвращает целое число от того, сколько раз критерий найден в диапазоне)

26

Я знаю, что в ОП специально указывалось, что список составлен из ряда ячеек, но другие могут наткнуться на это при поиске определенного диапазона значений.

Вы также можете искать определенные значения, а не диапазон, используя функцию MATCH . Это даст вам номер, где это соответствует (в данном случае второе место, так 2). Он вернет # N/A, если нет совпадений.

=MATCH(4,{2,4,6,8},0)

Вы также можете заменить первые четыре ячейкой. Поместите 4 в ячейку A1 и введите это в любую другую ячейку.

=MATCH(A1,{2,4,6,8},0)
18

Если вы хотите превратить показатель в какой-либо другой вывод (например, логический), вы также можете сделать:

= IF(COUNTIF(some_names, D1)> 0, TRUE, FALSE)

Наслаждайтесь!

7

Для разнообразия можно использовать МАТЧ, например

=ISNUMBER(MATCH(D1,A3:A10,0))

3

есть изящный маленький трюк, возвращающий логическое значение в случае, если диапазон some_names может быть задан явно, например, "purple","red","blue","green","orange":

=OR("Red"={"purple","red","blue","green","orange"})

Обратите внимание, что это НЕ формула массива

2

Вы можете вкладывать --([range]=[cell]) в аргумент IF , SUMIFS или COUNTIFS . Например, IF(--($N$2:$N$23=D2),"in the list!","not in the list") . Я считаю, что это может использовать память более эффективно.

Кроме того , вы можете обернуть ISERROR вокруг VLOOKUP все обернутые вокруг оператора IF Как, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" )

0

Версия формулы массива (введите с помощью Ctrl + Shift + Enter):

=OR(A3:A10=D1)
-1

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

=if(countif(some_names,D1)>0,"","MISSING")

Затем я скопировал бы эту формулу с E1 на E100 . Если значение в столбце D отсутствует в списке, я получу сообщение MISSING, но если значение существует, я получу пустую ячейку. Это делает пропущенные значения более заметными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .