Formula Google Sheets untuk "jika mengandung"

40

Saya mencoba mencari cara mengidentifikasi IFdaftar item dalam satu sel berisi nilai atau string.

CONTOH

Sel A1 mengandung sites, sheets, docs, slides.

Saya ingin sel B1 untuk menampilkan 1 'jika' sel A1 berisi string sites.

RUMUS

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

Saya tidak yakin apa yang harus diganti di ??????dalam rumus di atas ATAU jika rumus ini memungkinkan. Setiap ide tentang bagaimana mencapai hasil yang diinginkan sangat dihargai.

Tuan B
sumber

Jawaban:

55

Anda dapat menggunakan REGEXMATCH:

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

Untuk menjelaskan, REGEXMATCH mengembalikan true jika dan hanya jika argumennya adalah substring dari string Anda.

Aurielle Perlmann
sumber
10
Menggunakan regexmatchakan lebih sederhana: if(regexmatch(A1, "sites"), 1, 0).
1
"Jika" tidak diperlukan karena regexmatch sudah mengembalikan boolean, jadi cukup "REGEXMATCH (A1," sites ")"
David
2
Jika ada di sana sehingga mereka dapat mengubah yang benar menjadi 1 atau 0 jika salah
Aurielle Perlmann
7

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

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

Keduanya bekerja. Yang kedua menulis 0 jika ada kesalahan.

Tom Woodward
sumber
2
Rumus pertama tidak akan pernah mengembalikan 0 karena SEARCH(search_for, text_to_search, [starting_at])akan mengembalikan kesalahan ketika search_fortidak ditemukan.
Rubén
1

Anda mungkin melakukan ini karena Anda ingin mengetahui jumlah atau rata-rata # baris yang memiliki kata "situs" di dalamnya. Dengan asumsi Anda memiliki 100 baris entri pada kolom A, Anda dapat menggunakan fungsi ini untuk mengetahui berapa banyak baris yang memiliki kata "situs" di dalamnya:

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

Ini jauh lebih cepat daripada membuat kolom 1s dan nol dan kemudian beroperasi pada kolom baru itu.

Ryan Shillington
sumber
Bisakah ini bekerja lebih dari satu kotak, bukan hanya kolom?
Adam Starrh
Ya. alih-alih A1:A100Anda bisa membuatnya A1:C100dan kemudian menulis kueri dengan kolom A, B dan C.
Ryan Shillington
1

Solusi tanpa REGEX:

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

hal-hal kapitalisasi dan iflogika harus dibalik, mengingat bahwa jawabannya adalah trueketika string tidak ditemukan.

Adrià
sumber
Ini pada dasarnya sama dengan jawaban ini , tetapi memperkenalkan hal sensitif pada kasus. By the way data sampel yang disediakan oleh OP termasuk sheetstidak Sheets.
Rubén
0

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

0

pengguna0
sumber
0

Jika Anda, seperti yang disarankan Ryan Shillington, ingin tahu jumlah sel dalam rentang yang memiliki "situs" di dalamnya, Anda dapat mencoba:

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

* Bertindak sebagai gagasan wildcard, sehingga ia akan mencari kecocokan di mana saja di dalam sel, bukan hanya kecocokan persis untuk seluruh sel.

Saya juga telah melakukan ini dengan referensi sel alih-alih " situs ", tetapi kemudian Anda harus menambahkan wildcard-asterix ke teks di dalam sel.

Heidi
sumber
0

Jika Anda menggunakan opsi tanda bintang dan ingin referensi sel, Anda dapat menggunakan fungsi CONCATENATE untuk menambahkan tanda bintang

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

arh
sumber