Як в Excel перевірити, чи є комірка у списку значень (діапазон комірок)


88

У мене є діапазон (A3: A10), який містить імена, і я хотів би перевірити, чи вміст іншої комірки (D1) відповідає одному з імен у моєму списку.

Я назвав діапазон A3: A10 'some_names', і я хотів би формулу excel, яка дасть мені True / False або 1/0 залежно від вмісту.

Відповіді:


92

= COUNTIF (деякі імена, D1)

повинен працювати (1, якщо ім'я присутнє - більше, якщо більше одного екземпляра).


як я можу змінити формулу, щоб вона працювала у випадку, коли вона some_namesмістить 2 стовпчики, а також замість D1 у мене D1: E1?
user1993

66

Моя бажана відповідь (змінена з Ian's):

=COUNTIF(some_names,D1)>0

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

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


26

Я знаю, що ОП спеціально заявила, що список походить з діапазону комірок, але інші можуть натрапити на це, шукаючи конкретний діапазон значень.

Ви також можете шукати конкретні значення, а не діапазон за допомогою MATCHфункції. Це дасть вам число, де це збігається (у даному випадку друге місце, тому 2). Він поверне # N / A, якщо не буде збігу.

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

Ви також можете замінити перші чотири на клітинку. Помістіть 4 у комірку А1 та введіть її в будь-яку іншу клітинку.

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

1
Дуже хороша. Не забудьте додати "котирування", якщо ваше значення не є числом (у мене було кілька спроб розібратися).
дан

1
На жаль, ви не можете використовувати це в умовному форматуванні :(
StarWeaver

Звичайно, ти можеш. З Excel 2007 та новіших версій ви можете використовувати функцію IFERROR. = IFERROR (МАТЧ (A1, {2,4,6,8}, 0), 0) Потім ви можете виконати своє умовне форматування, залежно від того, що це клітинка = 0 або> 0, залежно від того, що вам зручніше.
RPh_Coder

6
=OR(4={2,4,6,8})
Слай

З цієї відповіді зрозуміло, що рішення повертає # N / A - це правда. Але це здається не корисним: ви не можете використовувати # N / A у клавіші if, тому ви не можете сказати IF (MATCH (4 {2,3}, 0), "yay", "boo") ... відповідь # N / A не "бу"
GreenAsJade

18

Якщо ви хочете перетворити коефіцієнт на якийсь інший вихід (наприклад, булевий), ви також можете зробити:

= ЯКЩО (COUNTIF (деякі імена, D1)> 0, ІСТИНА, ЛЖА)

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




4

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

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

Зауважте, це НЕ формула масиву


На насправді, це є формула масиву. Що це не так, це формула, що вводиться до масиву ;-)
robinCTS

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)

Це працює. Я думаю, що це отримало пониження, тому що downvoter не знав, як ввести формулу масиву ... він повинен виглядати як {= АБО (R34: R36 = T34)} після його введення, якщо ви ввели його з точністю
GreenAsJade

-1

У таких ситуаціях я хочу лише отримувати сповіщення про можливі помилки, тому я вирішував би ситуацію таким чином ...

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

Тоді я б скопіювати цю формулу від E1до E100. Якщо значення у Dстовпці відсутнє у списку, я отримаю повідомлення MISSING, але якщо значення існує, я отримаю порожню клітинку. Це робить відсутніх значень набагато більше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.