Проверьте, содержит ли ячейка подстроку
есть ли встроенная функция для проверки, содержит ли ячейка заданный символ / подстроку?
Это означает, что вы можете применять текстовые функции, такие как Left
/Right
/Mid
на условной основе без бросания ошибок при разделении символов отсутствуют.
8 ответов
попробуйте использовать этот:
=ISNUMBER(SEARCH("Some Text", A3))
возвращает TRUE
если ячейка A3
содержит Some Text
.
следующая формула определяет, появляется ли текст "CHECK" в ячейке C10. Если это не так, результат будет пустым. Если это так, результатом является работа "проверка".
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
для тех, кто хотел бы сделать это, используя одну функцию внутри оператора IF, я использую
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
чтобы увидеть, находится ли текст подстроки в ячейке A1
[Примечание: текст должен иметь звездочки вокруг него]
Проверьте FIND()
функции в Excel.
синтаксис:
FIND( substring, string, [start_position])
возвращает #VALUE!
если он не найдет подстроку.
эта формула кажется мне более интуитивной:
=SUBSTITUTE(A1,"SomeText","") <> A1
Это возвращает TRUE, если "SomeText" содержится в A1.
формулы IsNumber/Search и IsError/Find, упомянутые в других ответах, конечно, работают, но мне всегда нужно смотреть на помощь или экспериментировать в Excel слишком часто с этими.
Мне нравится каток.Сопровождающий.6 ответа. Я хочу посмотреть на несколько строк и сделал это таким образом:
сначала ситуация: имена, которые могут быть домашними строителями или именами сообщества, и мне нужно собрать строителей как одну группу. Для этого я ищу слово "строитель" или "строительство", и т. д. Итак ... --2-->
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
это старый вопрос, но решение для тех, кто использует Excel 2016 или новее, вы можете удалить необходимость вложенных структур if с помощью нового IFS( condition1, return1 [,condition2, return2] ...)
условное.
я отформатировал его, чтобы сделать его визуально более ясным о том, как использовать его для случая этого вопроса:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
С SEARCH
возвращает ошибку, если строка не найдена, я обернул ее ISERROR(...)=FALSE
чтобы проверить истину, а затем вернуть требуемое значение. Было бы здорово, если SEARCH
возвратил 0 вместо ошибки для удобочитаемости, но именно так это работает, к сожалению.
еще одна важная нота заключается в том, что IFS
вернет матч, который он находит первым, и, таким образом, порядок важен. Например, если мои строки были Surf, Surfing, Surfs
as String1,String2,String3
выше и моя строка ячеек была Surfing
он будет соответствовать первому члену вместо второго из-за подстроки Surf
. Таким образом, общие знаменатели должны быть последними в списке. Мой IFS
должны быть приказано Surfing, Surfs, Surf
для правильной работы (замены Surfing
и Surfs
также будет работать в этом простом примере), но Surf
должно быть последним.