สูตร Google ชีตสำหรับ“ ถ้ามี”


37

ฉันพยายามหาวิธีระบุIFรายการในเซลล์หนึ่งที่มีค่าหรือสตริง

ตัวอย่าง

เซลล์ A1 sites, sheets, docs, slidesมี

ฉันต้องการเซลล์ B1 เพื่อแสดง 1 'ถ้า' เซลล์ A1 sitesมีสตริง

สูตร

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

ฉันไม่แน่ใจว่าจะแทนที่สิ่งใด??????ภายในสูตรด้านบนหรือถ้าเป็นไปได้สูตรนี้ ความคิดเห็นใด ๆ เกี่ยวกับวิธีการบรรลุผลลัพธ์ที่ต้องการได้รับการชื่นชมอย่างมาก

คำตอบ:


52

คุณสามารถใช้ REGEXMATCH:

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

ในการอธิบาย REGEXMATCH จะส่งกลับค่า true ถ้าอาร์กิวเมนต์นั้นเป็นสตริงย่อยของสตริงของคุณ


10
การใช้regexmatchจะง่ายกว่า: if(regexmatch(A1, "sites"), 1, 0).

1
ไม่จำเป็นต้องใช้ "if" เนื่องจาก regexmatch ส่งคืนบูลีนแล้วดังนั้นเพียงแค่ "REGEXMATCH (A1," sites ")"
David

2
ถ้ามีเพื่อให้พวกเขาสามารถแปลงค่าจริงเป็น 1 หรือ 0 หากเป็นเท็จ
Aurielle Perlmann

7

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

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

ทั้งงาน วินาทีเขียน 0 ถ้ามีข้อผิดพลาด


2
สูตรแรกจะไม่ส่งคืน 0 เพราะSEARCH(search_for, text_to_search, [starting_at])จะส่งคืนข้อผิดพลาดเมื่อsearch_forไม่พบ
Rubén

1

คุณอาจทำเช่นนี้เพราะคุณต้องการทราบจำนวนหรือจำนวนแถวเฉลี่ยที่มีคำว่า "เว็บไซต์" อยู่ในนั้น สมมติว่าคุณมีรายการ 100 แถวในคอลัมน์ A คุณสามารถใช้ฟังก์ชันนี้เพื่อค้นหาจำนวนแถวที่มีคำว่า "sites" อยู่ในนั้น:

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

สิ่งนี้เร็วกว่าการสร้างคอลัมน์ 1s และศูนย์จากนั้นดำเนินการกับคอลัมน์ใหม่นั้น


สามารถทำงานผ่านกล่องแทนที่จะเป็นเพียงคอลัมน์ได้หรือไม่?
อดัม Starrh

ได้. แทนที่จะA1:A100สร้างมันขึ้นA1:C100มาแล้วเขียนแบบสอบถามด้วยคอลัมน์ A, B และ C
Ryan Shillington

1

วิธีการแก้ปัญหาที่ไม่มี REGEX:

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

เรื่องตัวพิมพ์ใหญ่และifตรรกะต้องย้อนกลับเนื่องจากคำตอบนั้นคือtrueเมื่อไม่พบสตริง


นี่เป็นพื้นฐานเหมือนกับคำตอบนี้แต่แนะนำสิ่งที่เล็กและใหญ่ โดยวิธีการที่ข้อมูลตัวอย่างที่มีให้โดย OP รวมถึงไม่ได้sheets Sheets
Rubén


0

หากคุณตามที่ Ryan Shillington แนะนำต้องการทราบจำนวนเซลล์ภายในช่วงที่มี "ไซต์" อยู่ภายในคุณอาจลอง:

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

* ทำหน้าที่เป็นสัญลักษณ์แทนดังนั้นจึงจะมองหาการจับคู่ที่ใดก็ได้ภายในเซลล์ไม่ใช่แค่การจับคู่ที่ตรงกันสำหรับทั้งเซลล์

ฉันได้ทำสิ่งนี้ด้วยการอ้างอิงเซลล์แทนที่จะเป็น " sites " แต่คุณต้องเพิ่ม wildcard-asterixes ลงในข้อความในเซลล์


0

หากคุณไปกับตัวเลือกเครื่องหมายดอกจันและต้องการการอ้างอิงเซลล์คุณสามารถใช้ฟังก์ชัน CONCATENATE เพื่อเพิ่มเครื่องหมายดอกจัน

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.