“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.