Есть ли встроенная функция, чтобы проверить, содержит ли ячейка данный символ / подстроку?
Это означало бы, что вы можете применять текстовые функции, такие как Left
/ Right
/, Mid
на условной основе, не выдавая ошибок, если символы-разделители отсутствуют.
excel
excel-formula
geotheory
источник
источник
CONTAINS("Text", cell)
функция.FIND()
вместоSEARCH()
,
вместо;
. После изменения предоставленной формулы к=ISNUMBER(SEARCH("Some Text"; A3))
нему сработало. Спасибо!Следующая формула определяет, появляется ли текст «ПРОВЕРКА» в ячейке C10. Если это не так, результат будет пустым. Если это так, результатом является работа «ПРОВЕРКА».
источник
Эта формула кажется мне более понятной:
это возвращает TRUE, если "SomeText" содержится в A1.
Формулы IsNumber / Search и IsError / Find, упомянутые в других ответах, безусловно, работают, но мне всегда приходится обращать внимание на помощь или слишком часто экспериментировать с Excel.
источник
Для тех, кто хотел бы сделать это, используя единственную функцию внутри оператора IF, я использую
чтобы увидеть, находится ли подстрока TEXT в ячейке A1
[ПРИМЕЧАНИЕ: ТЕКСТ должен иметь звездочки вокруг него]
источник
Проверьте
FIND()
функцию в Excel.Синтаксис:
Возвращает,
#VALUE!
если не находит подстроку.источник
ISNUMBER
это также работает, только для чувствительных к регистру совпадений.Мне нравится Rink.Attendant.6 ответ. Я на самом деле хочу проверить наличие нескольких строк и сделал это следующим образом:
Сначала ситуация: имена, которые могут быть домостроителями или названиями сообществ, и мне нужно объединить строителей в одну группу. Для этого я ищу слово «строитель» или «строительство» и т. Д. Итак -
источник
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
Это старый вопрос, но я думаю, что он все еще актуален.
Поскольку нет функции CONTAINS, почему бы не объявить ее в VBA? В приведенном ниже коде используется функция VBA Instr, которая ищет подстроку в строке. Возвращает 0, когда строка не найдена.
источник
Это старый вопрос, но решение для тех, кто использует Excel 2016 или новее, состоит в том, что вы можете устранить потребность во вложенных структурах if, используя новое
IFS( condition1, return1 [,condition2, return2] ...)
условное выражение .Я отформатировал его, чтобы сделать его визуально более понятным, как использовать его для случая с этим вопросом:
Поскольку
SEARCH
возвращает ошибку, если строка не найдена, я обернул ееISERROR(...)=FALSE
проверкой на истинность и затем вернул искомое значение. Было бы здорово, если быSEARCH
вместо ошибки читалась ошибка 0, но, к сожалению, так оно и есть.Еще одно важное замечание заключается в том, что
IFS
он вернет соответствие, которое он находит первым, и, следовательно, упорядочение важно. Например, если бы мои строки былиSurf, Surfing, Surfs
такими же, как иString1,String2,String3
выше, а строка ячеек былаSurfing
бы такой, то она соответствовала бы первому члену, а не второму из-за наличия подстрокиSurf
. Таким образом, общие знаменатели должны быть последними в списке. MyIFS
нужно было бы приказать,Surfing, Surfs, Surf
чтобы он работал правильно (поменялся местамиSurfing
иSurfs
также работал бы в этом простом примере), ноSurf
должен быть последним.источник
Вот формула, которую я использую
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
источник
IFERROR(LEN(A1) - FIND(".", A1), 0)