“Varsa” için Google Sayfa Formülü


40

IFBir hücrede bir öğelerin listesini bir değer veya dize içeren nasıl tanımlayacağımı bulmaya çalışıyorum .

ÖRNEK

A1 hücresi içerir sites, sheets, docs, slides.

B1 hücresinin 1 'görüntülenmesini istiyorum, eğer' A1 hücresi dizgiyi içeriyorsa sites.

FORMÜLÜ

=if(A1 ?????? "sites", 1,0)

??????Yukarıdaki formülün içinde Neyin değiştirileceğinden emin değilim VEYA bu formül mümkünse. İstenilen sonucu nasıl elde edeceğinize dair herhangi bir fikir büyük beğeni topluyor.

Yanıtlar:


55

REGEXMATCH kullanabilirsiniz:

=IF(REGEXMATCH(A1, "sites"), 1, 0)

Açıklamak gerekirse, REGEXMATCH ifadesi, yalnızca argüman dizginizin bir alt dize olması durumunda geçerlidir.


10
Kullanımı regexmatchkolay olurdu: if(regexmatch(A1, "sites"), 1, 0).

1
Regexmatch zaten bir boole döndürdüğü için "if" gerekli değil, bu yüzden sadece "REGEXMATCH (A1," sites ")"
David,

2
Varsa, doğruyu 1 veya 0
değerine çevirebilirlerse

7

=if(search("sites",B2)>0,1,0)

=if(IFERROR(search("sites",B2)>0,0),1,0)

İkisi de çalışıyor. Bir hata varsa, ikinci 0 yazar.


2
İlk formül asla 0 döndürmez çünkü bulunmazsa SEARCH(search_for, text_to_search, [starting_at])hata verir search_for.
Rubén

1

Muhtemelen bunu yapıyorsunuz çünkü içinde "siteler" kelimesini içeren sıra sayısını veya ortalama satır sayısını bilmek istiyorsunuz. A sütununda 100 satırlık bir girişiniz olduğunu varsayarsak, bu işlevi içinde kaç tane "site" kelimesi olduğunu bulmak için kullanabilirsiniz:

=QUERY(A1:A100, "select count(A) where A like '%sites%'")

Bu, 1'ler ve sıfırlardan oluşan bir sütun oluşturmaktan ve ardından bu yeni sütun üzerinde çalışmaktan çok daha hızlıdır.


Bu sadece bir sütun yerine bir kutunun üzerinde çalışabilir mi?
Adam Starrh

Evet. yerine A1:A100bunu yapabilir A1:C100ve daha sonra sütunlar A, B ve C ile bir sorgu yazmak
Ryan Shillington

1

REGEX içermeyen bir çözüm:

=if(iserror(FIND("sites",B2)),0,1)

büyük harf kullanımı ve ifmantık tersine çevrilmelidir, bunun cevabı truedize bulunamadığı zamandır.


Bu temelde bu cevapla aynıdır , ancak büyük / küçük harfe duyarlı olanı tanıtmak. Bu arada OP tarafından sağlanan örnek veri içerir sheetsdeğildir Sheets.
Rubén,

0

=IF(QUERY(A1, "where A contains 'sites'")<>"", 1, )

0


0

Ryan Shillington'un önerdiği gibi, içinde "siteler" olan bir aralıktaki hücrelerin sayısını bilmek istiyorsanız, deneyebilirsiniz:

=COUNTIF(A1:A100;"*sites*") 

*, Joker karakter olarak işlev görür, bu nedenle yalnızca tüm hücre için tam bir eşleşme değil, hücrenin herhangi bir yerinde bir eşleşme arar.

Bunu ayrıca " sites " yerine bir hücre başvurusuyla yaptım , ancak daha sonra hücre içindeki metne joker karakter yıldızları eklemeniz gerekiyor.


0

Yıldız seçenekleriyle giderseniz ve hücre başvurusu istiyorsanız, yıldız işaretleri eklemek için CONCATENATE işlevini kullanabilirsiniz.

=COUNTIF(A1:A100,CONCATENATE("*",A1,"*"))

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.