Відповіді:
Спробуйте скористатися цим:
=ISNUMBER(SEARCH("Some Text", A3))
Це повернеться, TRUE
якщо комірка A3
містить Some Text
.
CONTAINS("Text", cell)
функція.
FIND()
замістьSEARCH()
,
замість ;
. Після зміни наданої формули до =ISNUMBER(SEARCH("Some Text"; A3))
неї спрацювало. Дякую!
Наступна формула визначає, чи з'являється текст "ПЕРЕВІРИТИСЯ" у комірці С10. Якщо цього немає, результат порожній. Якщо це так, результат - робота "ПЕРЕВІРИТЬ".
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
Ця формула здається мені більш інтуїтивно зрозумілою:
=SUBSTITUTE(A1,"SomeText","") <> A1
це повертає TRUE, якщо "SomeText" міститься в межах A1.
Формули IsNumber / Search і IsError / Find, згадані в інших відповідях, безумовно, спрацьовують, але я завжди вважаю, що мені потрібно занадто часто шукати допомогу або експериментувати в Excel з цими.
Для тих, хто хотів би зробити це за допомогою однієї функції всередині оператора IF, я використовую
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
щоб побачити, чи знаходиться підрядка TEXT у комірці A1
[ПРИМІТКА: TEXT повинен мати навколо себе зірочки]
Мені подобається відповідь Rink.Atetendant.6. Я дійсно хочу перевірити наявність декількох рядків і зробив це так:
По-перше, ситуація: імена, які можуть бути домашніми або громадськими іменами, і мені потрібно з’єднати будівельників як одну групу. Для цього я шукаю слово "будівельник" або "будівництво" тощо. Отже -
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
Це давнє запитання, але я думаю, що воно все ще діє.
Оскільки немає функції CONTAINS, чому б не оголосити її у VBA? У наведеному нижче коді використовується функція Instr VBA, яка шукає підрядку в рядку. Він повертає 0, коли рядок не знайдено.
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
Це старе питання, але для тих, хто використовує Excel 2016 або новішу версію, ви можете усунути потребу вкладених структур, використовуючи новий 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
як String1,String2,String3
вище, а мої клітинні рядок був Surfing
би, це відповідатиме першому терміну, а не другому через те, що підрядок Surf
. Таким чином, загальні знаменники повинні бути останніми у списку. Моїм IFS
потрібно було б наказати Surfing, Surfs, Surf
працювати коректно (міняти місцями, Surfing
а Surfs
також працювати в цьому простому прикладі), але Surf
він повинен бути останнім.
Ось формула, яку я використовую
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)