Yanıtlar:
Bunu kullanmayı deneyin:
=ISNUMBER(SEARCH("Some Text", A3))
TRUE
Hücre A3
içeriyorsa bu geri döner Some Text
.
CONTAINS("Text", cell)
fonksiyon olsaydı iyi olurdu .
FIND()
, yerine kullanmalısınızSEARCH()
,
yerine bir hata aldım ;
. Sağlanan formülü değiştirdikten sonra =ISNUMBER(SEARCH("Some Text"; A3))
çalıştı. Teşekkürler!
Aşağıdaki formül, C10 hücresinde "CHECK" metninin görünüp görünmeyeceğini belirler. Değilse, sonuç boştur. Eğer öyleyse, sonuç "CHECK" çalışmasıdır.
=IF(ISERROR(FIND("CHECK",C10,1)),"","CHECK")
Bu formül benim için daha sezgisel görünüyor:
=SUBSTITUTE(A1,"SomeText","") <> A1
A1 içinde "SomeText" varsa bu TRUE değerini döndürür.
Diğer cevaplarda bahsedilen IsNumber / Search ve IsError / Find formülleri kesinlikle işe yarıyor, ancak kendimi her zaman yardıma bakmaya veya Excel'de bu türlerle çok sık denemeye ihtiyaç duyuyorum.
Bunu IF deyimi içinde tek bir işlev kullanarak yapmak isteyenler için
=IF(COUNTIF(A1,"*TEXT*"),TrueValue,FalseValue)
alt dize METİN A1 hücresinde olup olmadığını görmek için
[NOT: TEXT'in çevresinde yıldız işaretleri olması gerekir]
FIND()
Excel'deki işlevi kontrol edin .
Sözdizimi:
FIND( substring, string, [start_position])
Alt #VALUE!
dizeyi bulamazsa döndürür .
ISNUMBER
Bu iç içe Evet , yalnızca büyük / küçük harfe duyarlı eşleşmeler için de geçerlidir.
Rink.Attendant.6 cevabını seviyorum. Aslında birden çok dizeleri kontrol etmek istiyorum ve bu şekilde yaptım:
Öncelikle durum: Ev inşaatçıları veya topluluk isimleri olabilecek isimler ve inşaatçıları bir grup olarak gruplandırmam gerekiyor. Bunu yapmak için ben "oluşturucu" veya "inşaat", vb arıyorum. Yani -
=IF(OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*builder*")),"Builder","Community")
=OR(COUNTIF(A1,"*builder*"),COUNTIF(A1,"*construction*"))
?
COUNTIFS
:COUNTIFS(A1,"*builder*",A1,"*construction*")
Bu eski bir soru ama bence hala geçerli.
CONTAINS işlevi olmadığından, neden VBA'da bildirilmiyor? Aşağıdaki kod, bir dizede bir alt dize arayan VBA Enstrüman işlevini kullanır. Dize bulunamadığında 0 değerini döndürür.
Public Function CONTAINS(TextString As String, SubString As String) As Integer
CONTAINS = InStr(1, TextString, SubString)
End Function
Bu eski bir soru ama Excel 2016 veya daha yenisini kullananlar için bir çözüm, yeni IFS( condition1, return1 [,condition2, return2] ...)
koşulu kullanarak yapıların iç içe geçmesi ihtiyacını kaldırabilirsiniz .
Bu soru için görsel olarak nasıl kullanılacağı konusunda daha net hale getirmek için biçimlendirdim:
=IFS(
ISERROR(SEARCH("String1",A1))=FALSE,"Something1",
ISERROR(SEARCH("String2",A1))=FALSE,"Something2",
ISERROR(SEARCH("String3",A1))=FALSE,"Something3"
)
Yana SEARCH
bir dize bulunmazsa getiriler bir hata Bir ile sarılmış ISERROR(...)=FALSE
gerçeği denetlemek ve ardından değeri istedik dönmek için. SEARCH
Okunabilirlik için bir hata yerine 0 döndürürseniz harika olurdu , ancak bu ne yazık ki nasıl çalıştığını gösteriyor.
Bir diğer önemli not, IFS
ilk bulduğu maçı geri getireceğidir ve bu nedenle sıralama önemlidir. Örneğin benim dizeleri sanki Surf, Surfing, Surfs
olarak String1,String2,String3
yukarıda ve benim hücreleri dize oldu Surfing
çünkü alt dize varlığının saniyenin yerine ilk vadede eşleşir Surf
. Bu nedenle, ortak paydaların listede sonuncu olması gerekir. Siparişimin IFS
alınması gerekirSurfing, Surfs, Surf
düzgün çalışması (takas Surfing
ve Surfs
bu basit örnekte de işe yarayacaktı), ama Surf
son olması gerekir.
İşte kullandığım formül
=IF( ISNUMBER(FIND(".",A1)), LEN(A1) - FIND(".",A1), 0 )
IFERROR(LEN(A1) - FIND(".", A1), 0)