วิธีคืนค่าใน Excel หากเซลล์มีข้อความจากรายการ

  • แบ่งปันสิ่งนี้
Hugh West

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

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

คุณสามารถดาวน์โหลดแบบฝึกหัดที่ฉันใช้ในบทความนี้ได้จากปุ่มต่อไปนี้และฝึกฝนด้วยตนเอง

ถ้าเซลล์มีข้อความจาก List.xlsx

ความรู้เบื้องต้นเกี่ยวกับฟังก์ชันที่ใช้ในบทความนี้

สูตรที่ฉันใช้ที่นี่ใช้ฟังก์ชันต่อไปนี้:

  • ฟังก์ชัน COUNTIFS:

ฟังก์ชันนี้จะนับเซลล์ที่ตรงกับหลายเกณฑ์ ไวยากรณ์ของ ฟังก์ชัน COUNTIFS เป็นดังนี้

=COUNTIFS (range1, criteria1, [range2], [criteria2], …) <4

  • range1 – ช่วงที่ 1 ที่จะประเมิน
  • เกณฑ์ 1 – เกณฑ์ที่จะใช้กับช่วงที่ 1
  • range2 [ทางเลือก]: ช่วงที่ 2 ทำหน้าที่เหมือนกับช่วง 1
  • เกณฑ์ 2 [ทางเลือก]: เกณฑ์ที่จะใช้ ในช่วงที่ 2 ฟังก์ชันนี้อนุญาตสูงสุด 127 คู่ช่วงและเกณฑ์
  • ฟังก์ชัน TEXTJOIN:

ฟังก์ชันนี้ รวมข้อความค่าที่มีตัวคั่น ไวยากรณ์ของฟังก์ชัน TEXTJOIN เป็นดังนี้

=TEXTJOIN (ตัวคั่น, เว้นว่าง, text1, [text2], …)

  • ตัวคั่น: ตัวคั่นระหว่างข้อความที่ฟังก์ชันจะรวมเข้าด้วยกัน
  • ignore_empty: อาร์กิวเมนต์นี้ระบุว่าฟังก์ชันจะละเว้นค่าว่าง เซลล์หรือไม่
  • text1: ค่าข้อความที่ 1 (หรือช่วง)
  • text2 [ไม่บังคับ]: ค่าข้อความที่ 2 (หรือช่วง) .
  • ฟังก์ชัน MATCH:

ฟังก์ชันนี้รับตำแหน่งของรายการในอาร์เรย์ ไวยากรณ์ของ ฟังก์ชัน MATCH มีดังนี้

=MATCH (lookup_value, lookup_array, [match_type])

  • lookup_value: ค่าที่จะจับคู่ใน lookup_array .
  • lookup_array: ช่วงของเซลล์หรือการอ้างอิงอาร์เรย์<10
  • match_type [ไม่บังคับ]: 1 = ตรงทั้งหมดหรือเล็กที่สุดถัดไป, 0 = ตรงทั้งหมด, -1 = ตรงทั้งหมดหรือใหญ่ถัดไป โดยค่าเริ่มต้น match_type=1
  • ฟังก์ชัน INDEX:

ฟังก์ชันนี้รับค่าในรายการหรือตารางตามตำแหน่ง . ไวยากรณ์ของ ฟังก์ชัน INDEX เป็นดังนี้

=INDEX (อาร์เรย์, row_num, [col_num], [area_num])

  • อาร์เรย์: ช่วงของเซลล์หรือค่าคงที่อาร์เรย์
  • row_num: ตำแหน่งแถวในการอ้างอิง
  • col_num [ทางเลือก] : ตำแหน่งคอลัมน์ในการอ้างอิง
  • area_num [ทางเลือก]: ช่วงในการอ้างอิงที่ควรใช้
  • ฟังก์ชัน IFERROR:

ฟังก์ชันนี้จะดักจับและจัดการกับข้อผิดพลาด ไวยากรณ์ของ ฟังก์ชัน IFERROR มีดังนี้

=IFERROR (value, value_if_error)

  • value: ค่า การอ้างอิง หรือสูตรเพื่อตรวจสอบข้อผิดพลาด
  • value_if_error: ค่าที่จะส่งคืนหากพบข้อผิดพลาด
  • <11
    • ฟังก์ชัน SEARCH:

    ฟังก์ชันนี้รับตำแหน่งของข้อความในสตริง ไวยากรณ์ของ ฟังก์ชัน SEARCH มีดังนี้

    =SEARCH (find_text, within_text, [start_num])

    • find_text : อาร์กิวเมนต์นี้ระบุข้อความที่จะค้นหา
    • within_text: ระบุตำแหน่งที่จะค้นหาข้อความ
    • start_num [ทางเลือก]: ด้วยสิ่งนี้ คุณจะระบุ- จากตำแหน่งใดในสตริงข้อความที่คุณจะนับตำแหน่งของข้อความที่ระบุ ไม่บังคับและค่าเริ่มต้นเป็น 1 จากซ้าย

    5 สูตรส่งคืนค่าใน Excel หากเซลล์มีข้อความบางอย่างจากรายการ

    ฉันจะพยายามนำเสนอ ตัวอย่างชีวิตจริงในชุดข้อมูลนี้ เครื่องดื่มบางชนิดแสดงไว้ที่นี่ มันฝรั่งทอด , เครื่องดื่มเย็น และ ซีเรียล เป็นเครื่องดื่มสามประเภทในชุดข้อมูลนี้ ในคอลัมน์เดียวที่ชื่อ ผลิตภัณฑ์ทั้งหมด ชื่อและหมวดหมู่ของเครื่องดื่มจะเชื่อมโยงเข้าด้วยกัน สองประเภทเหล่านี้ ชิป และ เย็นเครื่องดื่ม อยู่ในคอลัมน์ รายการ ตามคอลัมน์ รายการ ผลลัพธ์ที่ต้องการจะแสดงในคอลัมน์ที่สอง

    1. รวม COUNTIF, IF & หรือ ฟังก์ชันส่งกลับค่า ถ้าเซลล์มีข้อความจากรายการ

    นี่เป็นสูตรที่มีประโยชน์มากที่สุด ถ้าคุณต้องการส่งกลับค่าของทั้งเซลล์หลังจากจับคู่

    ที่นี่ ฉันได้ดึงค่าเซลล์ของ ผลิตภัณฑ์ ที่ตรงกับเกณฑ์ของคอลัมน์ รายการ และแสดงค่าเหล่านี้ให้กับ ผลิตภัณฑ์ตามรายการ คอลัมน์นั้น

    สูตรมีดังนี้:

    =IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")

    รายละเอียดสูตร:

    • =IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")

    ที่นี่ เครื่องหมายดอกจัน ( * ) เป็นอักขระตัวแทน ค้นหาสตริงย่อย “ ชิป ” และ “เครื่องดื่มเย็น” ภายใน เซลล์ B5 ซึ่งก็คือสตริง " Ruffles - Chips "

    • =IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")

    ฟังก์ชัน COUNTIF ส่งกลับค่าหนึ่งสำหรับทุกการจับคู่สตริงย่อย เนื่องจากพบ " Chips " ใน เซลล์ B5 จึงส่งคืน { 1:0 }.

    • =IF(OR({1;0}), B5, "")

    ฟังก์ชัน OR ส่งคืนค่า TRUE หากอาร์กิวเมนต์ใดๆ เป็น TRUE ในกรณีนี้ หนึ่ง (1)= TRUE .

    • =IF(TRUE, "Ruffles - Chips", "")

    เป็น IF ค่าของฟังก์ชันคือ TRUE ซึ่งจะคืนค่าอาร์กิวเมนต์แรกซึ่งเป็นเอาต์พุตที่ต้องการ

    สุดท้าย เอาต์พุต : Ruffles – Chips

    หมายเหตุ:

    ในที่นี้ ฉันได้แสดงเซลล์ที่ตรงกัน แต่คุณสามารถแสดงเอาต์พุตใดๆ ตามที่คุณต้องการโดยเปลี่ยนเอาต์พุตของฟังก์ชัน IF ด้วยเอาต์พุตที่คุณต้องการ

    =IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)

    อ่านเพิ่มเติม: หากเซลล์มี Word ให้กำหนดค่าใน Excel (4 สูตร)

    2. ใช้การรวม IF-OR กับฟังก์ชัน SEARCH เพื่อส่งคืนค่าที่มีหลายเงื่อนไข

    ที่นี่ ฉันได้ดึงค่าเซลล์ของ ผลิตภัณฑ์ ที่ตรงกับ รายการ เกณฑ์ของคอลัมน์และแสดงให้คอลัมน์ สินค้าตามรายการนั้น

    สูตรเป็นดังนี้:

    =IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")

    รายละเอียดสูตร:

    • =IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")

    ฟังก์ชัน SEARCH ค้นหาค่าของคอลัมน์ รายการ ใน เซลล์ B5 สำหรับ “ ชิป ” จะส่งคืน 11 ซึ่งเป็นตำแหน่งเริ่มต้นของสตริงย่อย สำหรับ Cold Drinks จะส่งกลับข้อผิดพลาด

    • =IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")

    ฟังก์ชัน ISNUMBER ถูกแปลง 11 เป็นค่า TRUE และข้อผิดพลาดเป็นค่า FALSE

    • =IF(OR(TRUE,FALSE)),B5,"")
    • <11 ฟังก์ชัน OR

      ส่งกลับค่า จริง ถ้าอาร์กิวเมนต์ใด ๆ เป็น จริง เนื่องจากมีอาร์กิวเมนต์ TRUE จึงส่งคืนค่า TRUE ในกรณีนี้

      • =IF(TRUE, "Ruffles - Chips","")

      เนื่องจากค่าของฟังก์ชัน IF คือ TRUE จึงส่งคืนอาร์กิวเมนต์แรกซึ่งเป็นเอาต์พุตที่ต้องการ

      เอาต์พุตสุดท้าย: Ruffles –ชิป

      หมายเหตุ:

      • ที่นี่ ฉันได้แสดงเซลล์ที่ตรงกัน แต่คุณสามารถแสดงผลลัพธ์ใดๆ ที่คุณต้องการได้โดยเปลี่ยน IF ฟังก์ชันเอาต์พุตพร้อมเอาต์พุตที่คุณต้องการ
      =IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)

      • ประโยชน์หลักของสิ่งนี้ สูตรคือนี่ไม่ใช่สูตรอาร์เรย์ แต่ไม่แนะนำถ้าคุณมีหลายเซลล์ใน รายการ เนื่องจากคุณต้องป้อนทุกเซลล์ของ รายการ ด้วยตนเอง
      • สำหรับสถานการณ์ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ เราสามารถใช้สูตรด้านล่างตามฟังก์ชัน FIND แทนฟังก์ชัน SEARCH
      =IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")

      อ่านเพิ่มเติม: Excel ถ้าเซลล์ประกอบด้วยข้อความ จากนั้นส่งคืนค่า (8 วิธีง่ายๆ)

      การอ่านที่คล้ายกัน:

      • วิธีหาผลรวมหากเซลล์มีข้อความเฉพาะใน Excel (6 วิธี)
      • ใช้ VLOOKUP หากเซลล์มีคำภายในข้อความใน Excel
      • วิธีค้นหาข้อความในช่วงของ Excel & คืนค่าการอ้างอิงเซลล์ (3 วิธี)

      3. ใช้สูตร TEXTJOIN เพื่อส่งกลับค่าในเซลล์อื่นหากเซลล์มีข้อความจากรายการ

      สูตรนี้มีประโยชน์เมื่อคุณต้องแสดงว่าสตริงใดจาก รายการ ที่ตรงกัน .

      ที่นี่ ฉันได้ดึงค่าเซลล์จากคอลัมน์ LIST ซึ่งตรงกับ ผลิตภัณฑ์ และแสดงค่าเหล่านั้นเป็นค่าที่ตรงกันจาก รายการ คอลัมน์

      สูตรมีดังนี้:

      =TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))

      สูตรรายละเอียด:

      • =TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))

      ที่นี่ เครื่องหมายดอกจัน ( * ) เป็นอักขระตัวแทน ค้นหาสตริงย่อย “ ชิปส์ ” และ “เครื่องดื่มเย็น” ภายในเซลล์ B5 ซึ่งเป็นสตริง “ รัฟเฟิล – ชิปส์

      • TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))

      ฟังก์ชัน COUNTIF ส่งกลับค่าหนึ่งสำหรับทุกการจับคู่สตริงย่อย เนื่องจากพบ “ ชิป ” ใน เซลล์ B5 จึงส่งคืน { 1:0 }.

      • TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))

      ฟังก์ชัน IF ส่งกลับเฉพาะค่า “ ชิป ” เนื่องจากค่าแรกของอาร์กิวเมนต์คือหนึ่งเท่านั้น = True .

      • TEXTJOIN(", ",TRUE,{"Chips";""})

      ฟังก์ชัน TEXTJOIN ไม่ได้ทำอะไรที่นี่เนื่องจากมีเพียงค่าเดียวจาก รายการ ถูกจับคู่ หากมีค่าหลายค่าที่จะจับคู่ มันจะส่งคืนค่าทั้งหมดโดยมีเครื่องหมายจุลภาค (,) คั่นระหว่างค่าเหล่านั้น

      ผลลัพธ์สุดท้าย: ชิป

      อ่านเพิ่มเติม: หากเซลล์มีข้อความ ให้เพิ่มข้อความในเซลล์อื่นใน Excel

      4. ใช้สูตรการจับคู่ดัชนีเพื่อส่งกลับค่าหากเซลล์มีข้อความเฉพาะ

      นี่เป็นทางเลือกแทนสูตร TEXTJOIN สูตรนี้ยังแสดงสตริงหรือสตริงใดจาก รายการ ที่ตรงกัน

      ที่นี่ ฉันได้ดึงค่าเซลล์จากคอลัมน์ รายการ ที่ค่าเหล่านั้นตรงกับ ผลิตภัณฑ์ และแสดงเป็นค่าที่ตรงกันจาก รายการ คอลัมน์

      สูตรเป็นดังนี้:

      =IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")

      รายละเอียดสูตร:

      • =IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")

      ที่นี่ เครื่องหมายดอกจัน ( * ) คือ อักขระตัวแทน ค้นหาสตริงย่อย “ ชิป ” และ “ เครื่องดื่มเย็น ๆ ” ภายใน เซลล์ B5 ซึ่งก็คือสตริง “ รัฟเฟิล – ชิปส์ ” <1

      • IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")

      ฟังก์ชัน COUNTIF ส่งกลับค่าหนึ่งสำหรับทุกการจับคู่สตริงย่อย เนื่องจากพบ “ ชิป ” ใน เซลล์ B5 จึงส่งคืน { 1:0 }.

      • IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")

      ฟังก์ชัน MATCH คืนค่า 1 เนื่องจากมีค่า " ชิป " เพียงค่าเดียวที่ตรงกัน

      • IFERROR(INDEX($E$5:$E$6,1),"")

      ฟังก์ชัน INDEX ส่งคืน " ชิป " เนื่องจากเป็นค่าในอาร์เรย์ รายการ

      • IFERROR("Chips","")

      ที่นี่ ฟังก์ชัน IFERROR ใช้เพื่อจัดการกับข้อผิดพลาดที่จะเกิดขึ้นหากไม่มีรายการที่ตรงกัน .

      ผลลัพธ์สุดท้าย: ชิป

      หมายเหตุ:

      ที่นี่ ฉันได้แสดงเซลล์ที่ตรงกัน แต่คุณสามารถแสดง เอาต์พุตใด ๆ ตามที่คุณต้องการโดยเปลี่ยน IF เอาต์พุตของฟังก์ชันด้วยเอาต์พุตที่คุณต้องการ

      อ่านเพิ่มเติม: สูตร Excel หากเซลล์ประกอบด้วยข้อความ จากนั้นส่งคืนค่าใน อีกเซลล์

      5. ใช้ฟังก์ชัน EXACT กับ IF และ TEXTJOIN

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

      สูตรมีดังนี้ดังนี้:

      =TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))

      การแจกแจงสูตร :

      • EXACT(C5:C14,$F$5)

      ส่วนนี้จะตรวจสอบว่าค่าใดของ ช่วง C5:14 ที่ตรงกับ เซลล์ F5 และส่งกลับ TRUE และ FALSE .

      • IF(EXACT(C5:C14,$F$5),B5:B14,"")

      ส่วนนี้ส่งคืนชื่อที่เราได้รับ จริง .<1

      • TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))

      สุดท้าย การรวมชื่อทั้งหมดด้วยเครื่องหมายจุลภาคหลังแต่ละชื่อ

      บันทึกย่อ

      สูตรทั้งหมดที่นี่ (ยกเว้นสูตรที่ 2) เป็นสูตรอาร์เรย์ นั่นหมายความว่าคุณต้องกด Ctrl+Shift+Enter แทนที่จะกดปุ่ม Enter เพื่อป้อนสูตรนี้ แต่ถ้าคุณเป็นผู้ใช้ Office 365 คุณสามารถใช้ได้โดยกด Enter

      บทสรุป

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

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