คำสั่ง IF ของ Excel สำหรับการจับคู่ข้อความบางส่วน (สัญลักษณ์แทน)

  • แบ่งปันสิ่งนี้
Michael Brown

พยายามสร้างคำสั่ง IF ด้วยข้อความตัวแทน แต่ล้มเหลวทุกครั้งใช่หรือไม่ ปัญหาไม่ได้อยู่ที่สูตรของคุณ แต่อยู่ที่ตัวฟังก์ชัน - Excel IF ไม่รองรับอักขระตัวแทน อย่างไรก็ตาม มีวิธีการทำงานสำหรับการจับคู่ข้อความบางส่วน และบทช่วยสอนนี้จะสอนวิธีการให้คุณ

เมื่อใดก็ตามที่คุณต้องการทำการจับคู่บางส่วนหรือคลุมเครือใน Excel วิธีแก้ไขที่ชัดเจนที่สุดคือ เพื่อใช้สัญลักษณ์แทน แต่จะเป็นอย่างไรหากฟังก์ชันเฉพาะที่คุณต้องใช้ไม่รองรับอักขระตัวแทน น่าเศร้าที่ Excel IF เป็นหนึ่งในฟังก์ชันดังกล่าว สิ่งนี้น่าผิดหวังอย่างยิ่งเมื่อพิจารณาว่าฟังก์ชัน "เงื่อนไข" อื่นๆ เช่น COUNTIF, SUMIF และ AVERAGEIFS ทำงานร่วมกับสัญลักษณ์แทนได้อย่างสมบูรณ์แบบ

โชคดีที่ไม่ใช่อุปสรรคที่สามารถหยุดผู้ใช้ Excel ที่สร้างสรรค์ได้ :) ด้วยการรวม IF ด้วยฟังก์ชันอื่นๆ คุณสามารถบังคับให้ประเมินการจับคู่บางส่วนและรับทางเลือกที่ดีสำหรับสูตรสัญลักษณ์ตัวแทน IF ของ Excel

    เหตุใดฟังก์ชัน Excel IF ที่มีสัญลักษณ์ตัวแทนไม่ทำงาน

    ในตารางตัวอย่างด้านล่าง สมมติว่าคุณต้องการตรวจสอบว่า ID ในคอลัมน์แรกมีตัวอักษร "A" หรือไม่ หากพบ - แสดง "ใช่" ในคอลัมน์ B หากไม่พบ - แสดง "ไม่ใช่"

    ดูเหมือนว่าการรวมข้อความตัวแทนในการทดสอบตรรกะจะเป็นวิธีแก้ปัญหาที่ง่าย:

    =IF(A2="*a*","Yes", "No")

    แต่น่าเสียดายที่มันไม่ได้ผล สูตรจะส่งกลับ "ไม่" สำหรับเซลล์ทั้งหมด แม้แต่เซลล์ที่มี "A":

    ทำไมคำสั่ง IF wildcard ล้มเหลว? จากลักษณะที่ปรากฏทั้งหมด Excel ไม่รู้จักสัญลักษณ์ตัวแทนที่ใช้กับเครื่องหมายเท่ากับหรือตัวดำเนินการทางตรรกะอื่นๆ เมื่อดูรายการฟังก์ชันที่รองรับไวด์การ์ดอย่างละเอียด คุณจะสังเกตเห็นว่าไวยากรณ์ของฟังก์ชันถือว่าข้อความไวด์การ์ดปรากฏขึ้นโดยตรงในอาร์กิวเมนต์ดังนี้:

    =COUNTIF(A2:A10, "*a*")

    Excel IF มีข้อความบางส่วน

    ตอนนี้คุณทราบสาเหตุที่สูตร wildcard IF ล้มเหลวแล้ว มาลองหาวิธีทำให้สูตรทำงานกัน สำหรับสิ่งนี้ เราจะฝังฟังก์ชันที่ยอมรับไวด์การ์ดในการทดสอบตรรกะของ IF ซึ่งก็คือฟังก์ชัน COUNTIF:

    IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)

    ด้วยวิธีนี้ IF ไม่มีปัญหาในการทำความเข้าใจไวลด์การ์ดและระบุเซลล์ที่มี "A" หรือ "a" ได้อย่างไร้ที่ติ (เนื่องจาก COUNTIF ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่):

    =IF(COUNTIF(A2, "*a*"),"Yes", "No")

    สูตรนี้ไปที่ B2 หรือเซลล์อื่นๆ ในแถวที่ 2 จากนั้นคุณสามารถลากลงไปได้มากเท่าที่ต้องการ:

    วิธีนี้สามารถใช้เพื่อค้นหา สตริงของรูปแบบเฉพาะ สมมติว่าเฉพาะ ID ที่ประกอบด้วย 2 กลุ่ม 2 อักขระที่คั่นด้วยยัติภังค์เท่านั้นที่ใช้ได้ คุณสามารถใช้ "??-???" สตริงอักขระตัวแทนเพื่อระบุ:

    =IF(COUNTIF(A2, "??-??"), "Valid", "")

    สูตรนี้ทำงานอย่างไร:

    สำหรับการทดสอบเชิงตรรกะของ IF เราใช้ฟังก์ชัน COUNTIF ที่นับจำนวนเซลล์ที่ตรงกับอักขระตัวแทนที่ระบุสตริง เนื่องจากช่วงเกณฑ์เป็นเซลล์เดียว (A2) ผลลัพธ์จึงเป็น 1 เสมอ (พบรายการที่ตรงกัน) หรือ 0 (ไม่พบรายการที่ตรงกัน) เนื่องจาก 1 เท่ากับ TRUE และ 0 เป็น FALSE สูตรจึงคืนค่า "Valid" (value_if_true) เมื่อจำนวนเท่ากับ 1 และสตริงว่าง (value_if_false) เมื่อจำนวนเท่ากับ 0

    IF ISNUMBER SEARCH สูตรสำหรับบางส่วน ตรงกัน

    อีกวิธีหนึ่งในการบังคับให้ Excel IF ทำงานสำหรับการจับคู่ข้อความบางส่วนคือการรวมฟังก์ชัน FIND หรือ SEARCH ในการทดสอบเชิงตรรกะ ข้อแตกต่างคือ FIND คำนึงถึงตัวพิมพ์เล็กและใหญ่ในขณะที่ SEARCH ไม่เป็นเช่นนั้น

    ดังนั้น ขึ้นอยู่กับว่าคุณต้องการถือว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นอักขระตัวเดียวกันหรือต่างกัน สูตรใดสูตรหนึ่งเหล่านี้จะใช้ได้ผล:<3

    ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ สูตรสำหรับการจับคู่บางส่วน:

    IF(ISNUMBER(SEARCH(" text ", cell )), value_if_true, value_if_false )

    ตรงตามตัวพิมพ์เล็กและใหญ่ สูตรสำหรับการจับคู่บางส่วน:

    IF(ISNUMBER(FIND(" text ", cell )), value_if_true, value_if_false )

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

    ตัวอย่างเช่น เพื่อตรวจหารหัสที่มี "A" หรือ "a" สูตรคือ:

    =IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")

    หากต้องการค้นหาเฉพาะตัวพิมพ์ใหญ่ "A" และละเว้น "a" สูตรคือ:

    =IF(ISNUMBER(FIND("A", A2)), "Yes", "No")

    ใน B6 ในภาพหน้าจอด้านล่าง คุณสามารถสังเกตความแตกต่างในผลลัพธ์:

    วิธีการทำงานของสูตรนี้:

    ที่ หัวใจของสูตร มีการรวมกันของ ISNUMBER และ SEARCH (หรือ FIND):

    ISNUMBER(SEARCH("A", A2))

    ฟังก์ชัน SEARCH จะค้นหาข้อความที่ระบุ ("A" ในตัวอย่างนี้) และส่งกลับตำแหน่งภายใน สตริงใน A2 หากไม่พบข้อความ ระบบจะส่งกลับข้อผิดพลาด #VALUE เนื่องจากทั้ง SEARCH และ FIND ได้รับการออกแบบมาให้จับคู่ประเภท "เซลล์มี" ในกรณีนี้ ไวลด์การ์ดจึงไม่จำเป็นต้องใช้จริงๆ

    ฟังก์ชัน ISNUMBER แปลงตัวเลขเป็น TRUE และค่าอื่นๆ รวมถึงข้อผิดพลาดเป็น FALSE . ค่าตรรกะไปที่การทดสอบตรรกะของ IF โดยตรง ในกรณีของเรา A2 มี "A" ดังนั้น ISNUMBER จึงส่งกลับ TRUE:

    IF(TRUE, "Yes", "No")

    ตามผลลัพธ์ IF จึงส่งกลับค่าที่ตั้งไว้สำหรับอาร์กิวเมนต์ value_if_true ซึ่งก็คือ "ใช่"

    คำสั่ง Excel IF OR ที่มีไวด์การ์ด

    จำเป็นต้องระบุเซลล์ที่มีหนึ่งในสตริงข้อความไวด์การ์ดหรือไม่ ในกรณีนี้ คุณสามารถรวมคำสั่ง IF OR แบบคลาสสิกเข้ากับสูตร COUNTIF หรือ ISNUMBER SEARCH ที่กล่าวถึงข้างต้น

    ตัวอย่างเช่น หากต้องการค้นหา "aa" OR "bb" ใน A2 โดยไม่สนใจตัวอักษรตัวพิมพ์ใหญ่และส่งคืน " ใช่" หากพบอย่างใดอย่างหนึ่ง ให้ใช้สูตรใดสูตรหนึ่งต่อไปนี้:

    =IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")

    หรือ

    =IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")

    การเพิ่มฟังก์ชัน COUNTIF สองฟังก์ชันจะใช้ได้เช่นกัน ในกรณีนี้ เครื่องหมายบวกจะทำงานเหมือนตัวดำเนินการ OR:

    =IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")

    แทนที่จะใช้สตริงอักขระตัวแทนฮาร์ดโค้ดในสูตร คุณสามารถป้อนสตริงเหล่านี้ในเซลล์แยกกัน เช่น D2 และ F2 ดังที่แสดง ในภาพหน้าจอด้านล่าง โปรดสังเกตสิ่งเหล่านี้การอ้างอิงเซลล์ถูกล็อกด้วยเครื่องหมาย $ เพื่อให้สูตรคัดลอกไปยังเซลล์ด้านล่างได้อย่างถูกต้อง:

    =IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")

    สูตรด้านบนใช้ได้ดีกับ 2 ส่วนที่ตรงกันบางส่วน แต่ถ้าคุณกำลังค้นหาตั้งแต่ 3 รายการขึ้นไป รายการเหล่านั้นจะยาวเกินไป ในกรณีนี้ มีเหตุผลที่จะเข้าหางานด้วยวิธีอื่น:

    ป้อนสตริงย่อยหลายรายการให้กับฟังก์ชัน SEARCH ในค่าคงที่อาร์เรย์ นับจำนวนที่ส่งคืน และตรวจสอบว่าผลลัพธ์มีค่ามากกว่าศูนย์หรือไม่ (ซึ่งจะหมายความว่า อย่างน้อยหนึ่งสตริงย่อยหากพบ):

    =IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")

    วิธีนี้ คุณจะได้ผลลัพธ์เดียวกันทุกประการด้วยสูตรที่กระชับมากขึ้น:

    สูตร Excel IF AND ที่มีสัญลักษณ์แทน

    เมื่อคุณต้องการตรวจสอบว่าเซลล์มีสตริงย่อยที่แตกต่างกันตั้งแต่ 2 รายการขึ้นไปหรือไม่ วิธีที่ง่ายที่สุดคือการใช้ฟังก์ชัน COUNTIFS ที่มีสัญลักษณ์แทนสำหรับการทดสอบเชิงตรรกะ

    สมมติว่าคุณต้องการค้นหาเซลล์ในคอลัมน์ A ที่มีทั้ง "b" และ "2" หากต้องการดำเนินการ ให้ใช้ "*b*" และ "*2*" สำหรับเกณฑ์ของ COUNTIFS และ A2 สำหรับช่วงเกณฑ์:

    =IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")

    อีกวิธีหนึ่งคือการใช้สูตร IF AND ร่วมกัน ด้วย ISNUMBER SEARCH:

    =IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")

    แม้ว่าเราจะไม่รวมอักขระตัวแทนใดๆ ในสูตรนี้ แต่ก็ทำงานเหมือนกับการค้นหาสตริงอักขระตัวแทนสองชุด ("*b*" และ "*2*" ) ในเซลล์เดียวกัน

    แน่นอนว่าไม่มีอะไรขัดขวางไม่ให้คุณป้อนค่าการค้นหาในเซลล์ที่กำหนดไว้ล่วงหน้า D2 และ F2 ในกรณีของเรา และจัดหาเซลล์อ้างอิงถึงสูตร:

    =IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")

    หากคุณต้องการใช้สูตรที่กระชับมากขึ้นหากเป็นไปได้ คุณอาจชอบวิธีค่าคงที่ของอาร์เรย์มากกว่า สูตร IF COUNT SEARCH เหมือนกับในตัวอย่างก่อนหน้านี้ แต่เนื่องจากเวลานี้สตริงย่อยทั้งสองต้องปรากฏใน A2 เราจึงตรวจสอบว่าการนับเท่ากับ 2 หรือไม่:

    =IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")

    ต่อไปนี้เป็นวิธีการหลักในการใช้สัญลักษณ์แทนในคำสั่ง IF ใน Excel หากคุณทราบวิธีแก้ปัญหาอื่น ๆ ผู้ใช้รายอื่นจะประทับใจอย่างแน่นอนหากคุณแบ่งปันประสบการณ์ของคุณในความคิดเห็น ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    สมุดงานแบบฝึกหัดสำหรับการดาวน์โหลด

    ตัวอย่างสูตรสัญลักษณ์ตัวแทนของ Excel IF (ไฟล์ .xlsx)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้