สารบัญ
บทช่วยสอนมีตัวอย่างสูตร "Excel ถ้ามี" จำนวนหนึ่งที่แสดงวิธีคืนค่าบางอย่างในคอลัมน์อื่นหากเซลล์เป้าหมายมีค่าที่ต้องการ วิธีค้นหาด้วยการจับคู่บางส่วน และทดสอบหลายเกณฑ์ด้วย OR เป็น รวมทั้งตรรกะและตรรกะ
งานทั่วไปอย่างหนึ่งใน Excel คือการตรวจสอบว่าเซลล์มีค่าที่สนใจหรือไม่ สิ่งนั้นมีค่าอะไรได้บ้าง? เพียงแค่ข้อความหรือตัวเลข ข้อความเฉพาะ หรือค่าใดๆ เลย (ไม่ใช่เซลล์ว่าง)
สูตร "ถ้าเซลล์มี" มีอยู่หลายรูปแบบใน Excel ขึ้นอยู่กับค่าที่คุณต้องการค้นหา โดยทั่วไป คุณจะใช้ฟังก์ชัน IF เพื่อทำการทดสอบเชิงตรรกะ และส่งคืนค่าหนึ่งเมื่อตรงตามเงื่อนไข (เซลล์มี) และ/หรืออีกค่าหนึ่งเมื่อไม่ตรงตามเงื่อนไข (เซลล์ไม่มี) ตัวอย่างด้านล่างครอบคลุมสถานการณ์ที่เกิดขึ้นบ่อยที่สุด
หากเซลล์มีค่าใดๆ ดังนั้น
สำหรับการเริ่มต้น เรามาดูวิธีค้นหาเซลล์ที่มีค่าใดๆ เลย: ใดๆ ข้อความ ตัวเลข หรือวันที่ สำหรับสิ่งนี้ เราจะใช้สูตร IF อย่างง่ายที่ตรวจสอบเซลล์ที่ไม่ว่าง
IF( เซลล์"", value_to_return, "")สำหรับ ตัวอย่างเช่น หากต้องการส่งคืนค่าเป็น "ไม่ว่าง" ในคอลัมน์ B หากเซลล์ของคอลัมน์ A ในแถวเดียวกันมีค่าใดๆ ให้ป้อนสูตรต่อไปนี้ใน B2 จากนั้นดับเบิลคลิกสี่เหลี่ยมเล็กๆ สีเขียวที่มุมขวาล่างเพื่อคัดลอกสูตรลงมา เดอะคอลัมน์:
=IF(A2"", "Not blank", "")
ผลลัพธ์จะมีลักษณะดังนี้:
หากเซลล์มีข้อความ ดังนั้น
หากคุณต้องการค้นหาเฉพาะเซลล์ที่มีค่าข้อความโดยไม่สนใจตัวเลขและวันที่ ให้ใช้ IF ร่วมกับฟังก์ชัน ISTEXT ต่อไปนี้เป็นสูตรทั่วไปในการคืนค่าบางค่าในเซลล์อื่น หากเซลล์เป้าหมายมี ข้อความใดๆ :
IF(ISTEXT( cell), value_to_return, " ")สมมติว่าคุณต้องการแทรกคำว่า "ใช่" ในคอลัมน์ B หากเซลล์ในคอลัมน์ A มีข้อความ หากต้องการดำเนินการ ให้ใส่สูตรต่อไปนี้ใน B2:
=IF(ISTEXT(A2), "Yes", "")
หากเซลล์มีตัวเลข ดังนั้น
ในลักษณะเดียวกัน คุณสามารถระบุเซลล์ด้วยค่าตัวเลข (ตัวเลขและวันที่) สำหรับสิ่งนี้ ให้ใช้ฟังก์ชัน IF ร่วมกับ ISNUMBER:
IF(ISNUMBER( cell), value_to_return, "")สูตรต่อไปนี้จะคืนค่า "yes" ในคอลัมน์ B ถ้าเซลล์ที่ตรงกันในคอลัมน์ A มีตัวเลขใดๆ:
=IF(ISNUMBER(A2), "Yes", "")
ถ้าเซลล์มีข้อความเฉพาะ
การค้นหาเซลล์ที่มีข้อความเฉพาะ (หรือตัวเลขหรือวันที่) เป็นเรื่องง่าย คุณเขียนสูตร IF ปกติที่จะตรวจสอบว่าเซลล์เป้าหมายมีข้อความที่ต้องการหรือไม่ และพิมพ์ข้อความที่จะส่งคืนในอาร์กิวเมนต์ value_if_true
IF( cell=" ข้อความ", value_to_return, "")ตัวอย่างเช่น หากต้องการดูว่าเซลล์ A2 มี "แอปเปิ้ล" ให้ใช้สูตรนี้:
=IF(A2="apples", "Yes", "")
หากเซลล์ไม่มีการเจาะจงข้อความ
หากคุณกำลังมองหาผลลัพธ์ที่ตรงกันข้าม เช่น คืนค่าบางส่วนไปยังคอลัมน์อื่น หากเซลล์เป้าหมายไม่มีข้อความที่ระบุ ("แอปเปิ้ล") ให้เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้
ระบุสตริงว่าง ("") ในอาร์กิวเมนต์ value_if_true และข้อความที่จะส่งคืนในอาร์กิวเมนต์ value_if_false :
=IF(A2="apples", "", "Not apples")
หรือ ให้ใส่ตัวดำเนินการ "ไม่เท่ากับ" ใน logical_test และข้อความที่จะส่งคืนใน value_if_true:
=IF(A2"apples", "Not apples", "")
ไม่ว่าจะด้วยวิธีใด สูตรก็จะสร้าง ผลลัพธ์นี้:
หากเซลล์มีข้อความ: สูตรที่คำนึงถึงตัวพิมพ์เล็กและใหญ่
หากต้องการบังคับให้สูตรแยกความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ให้ใช้ฟังก์ชัน EXACT ที่ ตรวจสอบว่าสตริงข้อความสองสตริงเท่ากันหรือไม่ รวมถึงตัวพิมพ์ใหญ่และเล็ก:
=IF(EXACT(A2,"APPLES"), "Yes", "")
คุณยังสามารถป้อนสตริงข้อความแบบจำลองในบางเซลล์ (พูดใน C1) แก้ไขการอ้างอิงเซลล์ด้วยเครื่องหมาย $ ($C$1) และเปรียบเทียบเซลล์เป้าหมายกับเซลล์นั้น:
=IF(EXACT(A2,$C$1), "Yes", "")
เซลล์ If มีสตริงข้อความเฉพาะ (การจับคู่บางส่วน)
เราได้ทำงานเล็กน้อยเสร็จแล้วและไปยังงานที่ท้าทายและน่าสนใจมากขึ้น :) ในตัวอย่างนี้ ต้องใช้ฟังก์ชันที่แตกต่างกันสามฟังก์ชันเพื่อค้นหาว่าอักขระหรือสตริงย่อยที่กำหนดเป็นส่วนหนึ่งของเซลล์หรือไม่ เนื้อหา:
การทำงานจากภายในสู่ภายนอก นี่คือการทำงานของสูตร:
- Theฟังก์ชัน SEARCH จะค้นหาสตริงข้อความ และหากพบสตริงดังกล่าว จะส่งกลับตำแหน่งของอักขระตัวแรก ซึ่งก็คือ #VALUE! ข้อผิดพลาดเป็นอย่างอื่น
- ฟังก์ชัน ISNUMBER ตรวจสอบว่า SEARCH สำเร็จหรือล้มเหลว ถ้า SEARCH ส่งกลับตัวเลขใด ๆ ISNUMBER ส่งกลับ TRUE ถ้า SEARCH ส่งผลให้เกิดข้อผิดพลาด ISNUMBER จะส่งกลับ FALSE
- สุดท้าย ฟังก์ชัน IF จะส่งกลับค่าที่ระบุสำหรับเซลล์ที่มี TRUE ในการทดสอบตรรกะ มิฉะนั้นจะเป็นสตริงว่าง ("")
และตอนนี้ เรามาดูกันว่าสูตรทั่วไปนี้ทำงานอย่างไรในแผ่นงานจริง
หากเซลล์มีข้อความบางอย่าง ให้ใส่ค่าในเซลล์อื่น
สมมติว่าคุณมีรายการของ คำสั่งซื้อในคอลัมน์ A และคุณต้องการค้นหาคำสั่งซื้อที่มีตัวระบุเฉพาะ ให้พูดว่า "A-" คุณสามารถทำงานให้สำเร็จได้ด้วยสูตรนี้:
=IF(ISNUMBER(SEARCH("A-",A2)),"Valid","")
แทนที่จะฮาร์ดโค้ดสตริงในสูตร คุณสามารถป้อนลงในเซลล์แยกต่างหาก (E1) ซึ่งเป็นการอ้างอิงเซลล์นั้นในสูตรของคุณ :
=IF(ISNUMBER(SEARCH($E$1,A2)),"Valid","")
เพื่อให้สูตรทำงานได้อย่างถูกต้อง อย่าลืมล็อกที่อยู่ของเซลล์ที่มีสตริงด้วยเครื่องหมาย $ (การอ้างอิงเซลล์แบบสัมบูรณ์)
หากเซลล์มีข้อความเฉพาะ ให้คัดลอกไปยังคอลัมน์อื่น
หากคุณต้องการคัดลอกเนื้อหาของเซลล์ที่ถูกต้องไปที่อื่น เพียงระบุที่อยู่ของเซลล์ที่ประเมิน (A2) ใน value_if_true อาร์กิวเมนต์:
=IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")
ภาพหน้าจอด้านล่างแสดงผลลัพธ์:
หากเซลล์มีข้อความเฉพาะ: สูตรที่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ในทั้งสองตัวอย่างข้างต้น สูตรจะไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ในสถานการณ์เมื่อคุณทำงานกับข้อมูลที่ตรงตามตัวพิมพ์เล็ก ให้ใช้ฟังก์ชัน FIND แทน SEARCH เพื่อแยกแยะตัวพิมพ์เล็กและใหญ่
ตัวอย่างเช่น สูตรต่อไปนี้จะระบุเฉพาะคำสั่งซื้อที่มีตัวพิมพ์ใหญ่ "A-" โดยไม่สนใจตัวพิมพ์เล็ก " a-".
=IF(ISNUMBER(FIND("A-",A2)),"Valid","")
หากเซลล์มีหนึ่งในสตริงข้อความจำนวนมาก (หรือลอจิก)
หากต้องการระบุเซลล์ที่มีอย่างน้อย หนึ่งในหลายๆ สิ่งที่คุณกำลังมองหา ให้ใช้หนึ่งในสูตรต่อไปนี้
สูตร IF OR ISNUMBER SEARCH
วิธีที่ชัดเจนที่สุดคือการตรวจสอบสตริงย่อยแต่ละรายการทีละรายการและมีฟังก์ชัน OR คืนค่า TRUE ในการทดสอบตรรกะของสูตร IF หากพบสตริงย่อยอย่างน้อยหนึ่งรายการ:
IF(OR(ISNUMBER(SEARCH(" string1", cell)), ISNUMBER (SEARCH(" string2", cell))), value_to_return, "")สมมติว่าคุณมีรายการ SKU ในคอลัมน์ A และคุณ ต้องการค้นหาสิ่งที่มีทั้ง "เดรส" หรือ "กระโปรง" คุณสามารถทำได้โดยใช้สูตรนี้:
=IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))),"Valid ","")
สูตรนี้ใช้ได้ดีกับบางรายการ แต่แน่นอนว่าไม่ใช่วิธี ไปถ้าคุณต้องการตรวจสอบหลายสิ่งหลายอย่าง ในกรณีนี้ วิธีที่ดีกว่าคือการใช้ฟังก์ชัน SUMPRODUCT ตามที่แสดงในตัวอย่างถัดไป
สูตร SUMPRODUCT ISNUMBER SEARCH
หากคุณเป็นการจัดการกับสตริงข้อความหลาย ๆ สตริง การค้นหาแต่ละสตริงจะทำให้สูตรของคุณยาวเกินไปและอ่านยาก วิธีแก้ปัญหาที่สวยงามกว่าคือการฝังชุดค่าผสม ISNUMBER SEARCH ลงในฟังก์ชัน SUMPRODUCT และดูว่าผลลัพธ์มีค่ามากกว่าศูนย์หรือไม่:
SUMPRODUCT(--ISNUMBER(SEARCH( strings, cell)))>0ตัวอย่างเช่น หากต้องการดูว่า A2 มีคำใดๆ ที่ป้อนในเซลล์ D2:D4 หรือไม่ ให้ใช้สูตรนี้:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
อีกทางหนึ่ง คุณสามารถสร้างช่วงที่มีชื่อซึ่งมีสตริงเพื่อค้นหา หรือระบุคำโดยตรงในสูตร:
=SUMPRODUCT(--ISNUMBER(SEARCH({"dress","skirt","jeans"},A2)))>0
ไม่ว่าจะด้วยวิธีใด ผลลัพธ์จะคล้ายกับสิ่งนี้:
เพื่อให้ผลลัพธ์เป็นมิตรกับผู้ใช้มากขึ้น คุณสามารถซ้อนสูตรข้างต้นลงในฟังก์ชัน IF และส่งกลับข้อความของคุณเองแทนค่า TRUE/FALSE:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")
สูตรนี้ทำงานอย่างไร
โดยหลักแล้ว คุณใช้ ISNUMBER ร่วมกับ SEARCH ตามที่อธิบายไว้ในตัวอย่างก่อนหน้า ในกรณีนี้ ผลการค้นหาจะแสดงในรูปแบบของอาร์เรย์ เช่น {TRUE;FALSE;FALSE} ถ้าเซลล์มีสตริงย่อยที่ระบุอย่างน้อยหนึ่งรายการ จะมี TRUE ในอาร์เรย์ ตัวดำเนินการอูนารีคู่ (--) บังคับค่า TRUE / FALSE เป็น 1 และ 0 ตามลำดับ และส่งอาร์เรย์เช่น {1;0;0} สุดท้าย ฟังก์ชัน SUMPRODUCT จะบวกเลข และเราเลือกเซลล์ที่ผลลัพธ์มากกว่าศูนย์
ถ้าเซลล์มีหลายสตริง (AND ลอจิก)
ในสถานการณ์ที่คุณต้องการค้นหาเซลล์ที่มีสตริงข้อความที่ระบุทั้งหมด ให้ใช้ชุดค่าผสม ISNUMBER SEARCH ที่คุ้นเคยอยู่แล้วร่วมกับ IF AND:
IF(AND(ISNUMBER (SEARCH(" string1", เซลล์)), ISNUMBER(SEARCH(" string2", เซลล์))), value_to_return,"")ตัวอย่างเช่น คุณสามารถค้นหา SKU ที่มีทั้ง "dress" และ "blue" โดยใช้สูตรนี้:
=IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))),"Valid ","")
หรือพิมพ์ สตริงในเซลล์ที่แยกจากกันและอ้างอิงเซลล์เหล่านั้นในสูตรของคุณ:
=IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))),"Valid ","")
เป็นอีกทางเลือกหนึ่ง คุณสามารถนับจำนวนการเกิดขึ้นของแต่ละสตริงและตรวจสอบ หากแต่ละจำนวนมากกว่าศูนย์:
=IF(AND(COUNTIF(A2,"*dress*")>0,COUNTIF(A2,"*blue*")>0),"Valid","")
ผลลัพธ์จะเหมือนกับที่แสดงในภาพหน้าจอด้านบนทุกประการ
วิธีส่งคืนผลลัพธ์ที่แตกต่างกันตามค่าเซลล์
ในกรณีที่คุณต้องการเปรียบเทียบแต่ละเซลล์ในคอลัมน์เป้าหมายกับรายการอื่น และส่งกลับค่าที่แตกต่างกันสำหรับแต่ละรายการที่ตรงกัน ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้
ซ้อน IFs
ตรรกะของสูตร IF ที่ซ้อนกันมีความเรียบง่ายดังนี้ คุณใช้ฟังก์ชัน IF แยกต่างหากเพื่อทดสอบแต่ละเงื่อนไข และส่งกลับค่าต่างๆ โดยขึ้นอยู่กับผลลัพธ์ของการทดสอบเหล่านั้น
IF( cell=" lookup_text1", " return_ text1", IF( cell=" lookup_text2", " return_ text2", IF( cell=" lookup_text3", " return_ text3", "")))สมมติว่าคุณมีรายการสินค้าในคอลัมน์ A และคุณต้องการให้มีตัวย่อในคอลัมน์ B เมื่อต้องการดำเนินการ ให้ใช้สูตรต่อไปนี้:
=IF(A2="apple", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="lemon", "L", ""))))
สำหรับรายละเอียดทั้งหมดเกี่ยวกับไวยากรณ์และตรรกะของ IF ที่ซ้อนกัน โปรดดูที่ IF ที่ซ้อนกันของ Excel - หลายเงื่อนไขในสูตรเดียว
สูตรการค้นหา
หากคุณกำลังมองหาข้อมูลเพิ่มเติม สูตรที่กระชับและเข้าใจได้ดีขึ้น ใช้ฟังก์ชัน LOOKUP ที่มีการค้นหาและส่งคืนค่าที่เป็นค่าคงที่อาร์เรย์แนวตั้ง:
LOOKUP( cell, {" lookup_text1";" lookup_text2";" lookup_text3";…}, {" return_ text1";" return_ text2";" return_ text3";…})เพื่อให้ได้ผลลัพธ์ที่แม่นยำ อย่าลืมระบุค่าการค้นหาใน ลำดับตัวอักษร จาก A ถึง Z
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
เมื่อเปรียบเทียบกับ IF ที่ซ้อนกัน สูตรการค้นหามีข้อดีอีกข้อหนึ่ง นั่นคือ เข้าใจ อักขระตัวแทน ดังนั้นจึงสามารถระบุการจับคู่บางส่วนได้
ตัวอย่างเช่น หากคอลัมน์ A มีไม่กี่ประเภท ของกล้วย คุณสามารถค้นหา "*banana*" และแสดงตัวย่อเดียวกัน ("B") สำหรับเซลล์ดังกล่าวทั้งหมด:
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
สำหรับข้อมูลเพิ่มเติม โปรดดูสูตรการค้นหาแทน IF ที่ซ้อนกัน
สูตร Vlookup
เมื่อทำงานกับชุดข้อมูลตัวแปร อาจสะดวกกว่าในการป้อนรายการที่ตรงกันแยกจากกัน เซลล์และเรียกข้อมูลโดยใช้สูตร Vlookupเช่น:
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
สำหรับข้อมูลเพิ่มเติม โปรดดูบทช่วยสอน Excel VLOOKUP สำหรับผู้เริ่มต้น
นี่คือวิธีตรวจสอบว่าเซลล์ มีค่าใด ๆ หรือข้อความเฉพาะใน Excel สัปดาห์หน้า เราจะดูเซลล์ถ้าเซลล์มีสูตรของ Excel ต่อไป และเรียนรู้วิธีนับหรือรวมเซลล์ที่เกี่ยวข้อง คัดลอกหรือลบทั้งแถวที่มีเซลล์เหล่านั้น และอื่นๆ โปรดคอยติดตาม!
ฝึกสมุดงาน
Excel ถ้าเซลล์ประกอบด้วย - ตัวอย่างสูตร (ไฟล์ .xlsx)