Odpowiedzi:
Spróbuj użyć tego:
=ISNUMBER(SEARCH("Some Text", A3))
Zwróci, TRUE
jeśli komórka A3
zawiera Some Text
.
CONTAINS("Text", cell)
funkcja.
FIND()
zamiastSEARCH()
,
zamiast ;
. Po zmianie podanej formuły na =ISNUMBER(SEARCH("Some Text"; A3))
to działało. Dzięki!
Poniższa formuła określa, czy tekst „SPRAWDŹ” pojawia się w komórce C10. Jeśli nie, wynik jest pusty. Jeśli tak, wynikiem jest praca „SPRAWDŹ”.
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
Ta formuła wydaje mi się bardziej intuicyjna:
=SUBSTITUTE(A1,"SomeText","") <> A1
zwraca PRAWDA, jeśli „SomeText” jest zawarty w A1.
Formuły IsNumber / Search i IsError / Find wspomniane w innych odpowiedziach z pewnością działają, ale zawsze potrzebuję zbyt często szukać pomocy lub eksperymentować z nimi w programie Excel.
Dla tych, którzy chcieliby to zrobić za pomocą jednej funkcji w instrukcji IF, używam
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
aby sprawdzić, czy podciąg tekstowy znajduje się w komórce A1
[UWAGA: TEKST musi zawierać gwiazdki]
Sprawdź FIND()
funkcję w Excelu.
Składnia:
FIND( substring, string, [start_position])
Zwraca, #VALUE!
jeśli nie znajdzie podłańcucha.
ISNUMBER
tym również działa, tylko w przypadku rozróżniania wielkości liter.
Lubię odpowiedź Rink.Attendant.6. Naprawdę chcę sprawdzić wiele ciągów i zrobiłem to w ten sposób:
Po pierwsze sytuacja: nazwy, które mogą być nazwami budowniczych domów lub nazwami społeczności, a ja muszę grupować budowniczych jako jedną grupę. Aby to zrobić, szukam słowa „konstruktor” lub „budownictwo” itp. Więc -
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
To stare pytanie, ale myślę, że nadal jest aktualne.
Ponieważ nie ma funkcji ZAWIERA, dlaczego nie zadeklarować jej w VBA? Poniższy kod używa funkcji VBA Instr, która szuka podłańcucha w ciągu znaków. Zwraca 0, gdy ciąg nie zostanie znaleziony.
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
Jest to stare pytanie, ale rozwiązaniem dla osób korzystających z programu Excel 2016 lub nowszych jest to, że można usunąć potrzebę zagnieżdżania struktur if przy użyciu nowego IFS( condition1, return1 [,condition2, return2] ...)
warunkowego.
Sformatowałem go, aby był wizualnie bardziej zrozumiały, jak go używać w przypadku tego pytania:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Ponieważ SEARCH
zwraca błąd, jeśli łańcuch nie zostanie znaleziony, otoczyłem go znakiem, ISERROR(...)=FALSE
aby sprawdzić prawdę, a następnie zwrócił żądaną wartość. Byłoby wspaniale, gdyby SEARCH
zwrócił 0 zamiast błędu czytelności, ale tak właśnie działa niestety.
Inną ważną kwestią jest to, że IFS
zwróci dopasowanie, które znajdzie jako pierwsze, dlatego ważna jest kolejność. Na przykład, jeśli moje ciągi były takie Surf, Surfing, Surfs
jak String1,String2,String3
powyżej, a ciąg moich komórek Surfing
byłby zgodny na pierwszym terminie zamiast na drugim ze względu na istnienie podłańcucha Surf
. Zatem wspólne mianowniki muszą być ostatnie na liście. My IFS
musiałaby być zamawiane Surfing, Surfs, Surf
do pracy prawidłowo (zamiana Surfing
i Surfs
również prace w tym prostym przykładzie), ale Surf
musiałby być ostatnim.
Oto wzór, którego używam
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)