2013-02-10 2 views
12

Я использую это удобное уравнение для поиска термина внутри ячейки в excel.Excel: поиск нескольких терминов в ячейке

=IF(ISNUMBER(SEARCH("*Gingrich*",C1)),"1","") 

Это уравнение ищет присутствие Гингрича в С1, если он существует, то он отображает 1.

Все, что я хотел бы сделать, это поиск более чем на один срок в то время. Кто-нибудь знает, как добавить в него функцию ИЛИ, чтобы я мог искать Джингриха ИЛИ Обаму или Ромни и т. Д. ...?

ответ

22

Другой способ

=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH({"Gingrich","Obama","Romney"},C1)))))>0,"1","") 

Кроме того, если вы храните список значений в, скажем, от A1 до A3, то вы можете использовать

=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH($A$1:$A$3,C1)))))>0,"1","") 

Подстановочные знаки вообще не нужны в функции Search(), так как Search() возвращает позицию найденной строки.

+0

Вау! Мне нравится, как просто вводить термины по запятой. Кроме того, было бы удобно ввести диапазон из другого места. Кому нужен инструмент для поиска, если у вас есть преимущество! –

+0

Отличное решение (даже если оно было на SO). Жаль, что я не смог бы его дважды увеличить. Я только подстраивал его, чтобы вытащить значения из таблицы, а не из диапазона. Благодарю. – dav

+0

Вместо использования 'NOT (ISERR())' не было бы проще 'ISNUMBER()' достаточно? – Iakovosian

2

Это будет делать это для вас:

=IF(OR(ISNUMBER(SEARCH("Gingrich",C3)),ISNUMBER(SEARCH("Obama",C3))),"1","") 

Учитывая эту функцию в колонке справа от имен (которые находятся в столбце С), результат:

Romney 
Gingrich 1 
Obama  1 
+0

Большое спасибо, я вижу, что просто добавление другого ISNUMBER и SEARCH работает отлично. –

+0

Я отредактировал свой ответ, чтобы удалить подстановочные знаки, которые не нужны, как предположил @teylyn. В этом случае ответы с несколькими терминами в 'SEARCH()' превосходят, и я их поддерживал, но объединение нескольких тестов с «OR()» необходимо, когда отдельные тесты различны, поэтому я оставил этот пример для другие, которые могут найти это полезным. – Simon

5

Попробуйте использовать функцию COUNT, как этого

=IF(COUNT(SEARCH({"Romney","Obama","Gingrich"},C1)),1,"")

Обратите внимание, что вам не нужны метасимволы (как говорит teylyn), и если нет особых причин «1» не нуждается в кавычках (на самом деле что делает его текстовым значением)