Czy jest wbudowana funkcja sprawdzania, czy komórka zawiera dany znak / podłańcuch?
Oznaczałoby to, że możesz stosować funkcje tekstowe, takie jak Left
/ Right
/ Mid
na zasadzie warunkowej, bez zgłaszania błędów w przypadku braku znaków ograniczających.
excel
excel-formula
geotheory
źródło
źródło
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Ź”.
źródło
Ta formuła wydaje mi się bardziej intuicyjna:
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.
źródło
Dla tych, którzy chcieliby to zrobić za pomocą jednej funkcji w instrukcji IF, używam
aby sprawdzić, czy podciąg tekstowy znajduje się w komórce A1
[UWAGA: TEKST musi zawierać gwiazdki]
źródło
Sprawdź
FIND()
funkcję w Excelu.Składnia:
Zwraca,
#VALUE!
jeśli nie znajdzie podłańcucha.źródło
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 -
źródło
=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.
źródło
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:
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, gdybySEARCH
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 takieSurf, Surfing, Surfs
jakString1,String2,String3
powyżej, a ciąg moich komórekSurfing
byłby zgodny na pierwszym terminie zamiast na drugim ze względu na istnienie podłańcuchaSurf
. Zatem wspólne mianowniki muszą być ostatnie na liście. MyIFS
musiałaby być zamawianeSurfing, Surfs, Surf
do pracy prawidłowo (zamianaSurfing
iSurfs
również prace w tym prostym przykładzie), aleSurf
musiałby być ostatnim.źródło
Oto wzór, którego używam
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
źródło
IFERROR(LEN(A1) - FIND(".", A1), 0)