สารบัญ
หากคุณมีรายการข้อความและต้องการค้นหาเซลล์และส่งคืนค่าตามรายการ คุณจะต้องสร้างสูตรเนื่องจาก 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:
- find_text : อาร์กิวเมนต์นี้ระบุข้อความที่จะค้นหา
- within_text: ระบุตำแหน่งที่จะค้นหาข้อความ
- start_num [ทางเลือก]: ด้วยสิ่งนี้ คุณจะระบุ- จากตำแหน่งใดในสตริงข้อความที่คุณจะนับตำแหน่งของข้อความที่ระบุ ไม่บังคับและค่าเริ่มต้นเป็น 1 จากซ้าย
-
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
-
=IF(OR({1;0}), B5, "")
-
=IF(TRUE, "Ruffles - Chips", "")
-
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
-
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
-
=IF(OR(TRUE,FALSE)),B5,"")
<11 ฟังก์ชัน OR -
=IF(TRUE, "Ruffles - Chips","")
- ที่นี่ ฉันได้แสดงเซลล์ที่ตรงกัน แต่คุณสามารถแสดงผลลัพธ์ใดๆ ที่คุณต้องการได้โดยเปลี่ยน IF ฟังก์ชันเอาต์พุตพร้อมเอาต์พุตที่คุณต้องการ
- ประโยชน์หลักของสิ่งนี้ สูตรคือนี่ไม่ใช่สูตรอาร์เรย์ แต่ไม่แนะนำถ้าคุณมีหลายเซลล์ใน รายการ เนื่องจากคุณต้องป้อนทุกเซลล์ของ รายการ ด้วยตนเอง
- สำหรับสถานการณ์ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ เราสามารถใช้สูตรด้านล่างตามฟังก์ชัน FIND แทนฟังก์ชัน SEARCH
- วิธีหาผลรวมหากเซลล์มีข้อความเฉพาะใน Excel (6 วิธี)
- ใช้ VLOOKUP หากเซลล์มีคำภายในข้อความใน Excel
- วิธีค้นหาข้อความในช่วงของ Excel & คืนค่าการอ้างอิงเซลล์ (3 วิธี)
-
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))
-
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
-
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
-
TEXTJOIN(", ",TRUE,{"Chips";""})
-
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
-
IFERROR(INDEX($E$5:$E$6,1),"")
-
IFERROR("Chips","")
-
EXACT(C5:C14,$F$5)
-
IF(EXACT(C5:C14,$F$5),B5:B14,"")
-
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
ฟังก์ชันนี้รับตำแหน่งของข้อความในสตริง ไวยากรณ์ของ ฟังก์ชัน SEARCH มีดังนี้
=SEARCH (find_text, within_text, [start_num])
5 สูตรส่งคืนค่าใน Excel หากเซลล์มีข้อความบางอย่างจากรายการ
ฉันจะพยายามนำเสนอ ตัวอย่างชีวิตจริงในชุดข้อมูลนี้ เครื่องดื่มบางชนิดแสดงไว้ที่นี่ มันฝรั่งทอด , เครื่องดื่มเย็น และ ซีเรียล เป็นเครื่องดื่มสามประเภทในชุดข้อมูลนี้ ในคอลัมน์เดียวที่ชื่อ ผลิตภัณฑ์ทั้งหมด ชื่อและหมวดหมู่ของเครื่องดื่มจะเชื่อมโยงเข้าด้วยกัน สองประเภทเหล่านี้ ชิป และ เย็นเครื่องดื่ม อยู่ในคอลัมน์ รายการ ตามคอลัมน์ รายการ ผลลัพธ์ที่ต้องการจะแสดงในคอลัมน์ที่สอง
1. รวม COUNTIF, IF & หรือ ฟังก์ชันส่งกลับค่า ถ้าเซลล์มีข้อความจากรายการ
นี่เป็นสูตรที่มีประโยชน์มากที่สุด ถ้าคุณต้องการส่งกลับค่าของทั้งเซลล์หลังจากจับคู่
ที่นี่ ฉันได้ดึงค่าเซลล์ของ ผลิตภัณฑ์ ที่ตรงกับเกณฑ์ของคอลัมน์ รายการ และแสดงค่าเหล่านี้ให้กับ ผลิตภัณฑ์ตามรายการ คอลัมน์นั้น
สูตรมีดังนี้:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
รายละเอียดสูตร:
ที่นี่ เครื่องหมายดอกจัน ( * ) เป็นอักขระตัวแทน ค้นหาสตริงย่อย “ ชิป ” และ “เครื่องดื่มเย็น” ภายใน เซลล์ B5 ซึ่งก็คือสตริง "
Ruffles - Chips
"
ฟังก์ชัน COUNTIF ส่งกลับค่าหนึ่งสำหรับทุกการจับคู่สตริงย่อย เนื่องจากพบ "
Chips
"
ใน เซลล์ B5 จึงส่งคืน { 1:0 }.
ฟังก์ชัน OR ส่งคืนค่า TRUE หากอาร์กิวเมนต์ใดๆ เป็น TRUE ในกรณีนี้ หนึ่ง (1)= TRUE .
เป็น 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,"")
รายละเอียดสูตร:
ฟังก์ชัน SEARCH ค้นหาค่าของคอลัมน์ รายการ ใน เซลล์ B5 สำหรับ “ ชิป ” จะส่งคืน 11 ซึ่งเป็นตำแหน่งเริ่มต้นของสตริงย่อย สำหรับ Cold Drinks จะส่งกลับข้อผิดพลาด
ฟังก์ชัน ISNUMBER ถูกแปลง 11 เป็นค่า TRUE และข้อผิดพลาดเป็นค่า FALSE
ส่งกลับค่า จริง ถ้าอาร์กิวเมนต์ใด ๆ เป็น จริง เนื่องจากมีอาร์กิวเมนต์ TRUE จึงส่งคืนค่า TRUE ในกรณีนี้
เนื่องจากค่าของฟังก์ชัน IF คือ TRUE จึงส่งคืนอาร์กิวเมนต์แรกซึ่งเป็นเอาต์พุตที่ต้องการ
เอาต์พุตสุดท้าย: Ruffles –ชิป
หมายเหตุ:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
อ่านเพิ่มเติม: Excel ถ้าเซลล์ประกอบด้วยข้อความ จากนั้นส่งคืนค่า (8 วิธีง่ายๆ)
การอ่านที่คล้ายกัน:
3. ใช้สูตร TEXTJOIN เพื่อส่งกลับค่าในเซลล์อื่นหากเซลล์มีข้อความจากรายการ
สูตรนี้มีประโยชน์เมื่อคุณต้องแสดงว่าสตริงใดจาก รายการ ที่ตรงกัน .
ที่นี่ ฉันได้ดึงค่าเซลล์จากคอลัมน์ LIST ซึ่งตรงกับ ผลิตภัณฑ์ และแสดงค่าเหล่านั้นเป็นค่าที่ตรงกันจาก รายการ คอลัมน์
สูตรมีดังนี้:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))
สูตรรายละเอียด:
ที่นี่ เครื่องหมายดอกจัน ( * ) เป็นอักขระตัวแทน ค้นหาสตริงย่อย “ ชิปส์ ” และ “เครื่องดื่มเย็น” ภายในเซลล์ B5 ซึ่งเป็นสตริง “ รัฟเฟิล – ชิปส์ ”
ฟังก์ชัน COUNTIF ส่งกลับค่าหนึ่งสำหรับทุกการจับคู่สตริงย่อย เนื่องจากพบ “ ชิป ” ใน เซลล์ B5 จึงส่งคืน { 1:0 }.
ฟังก์ชัน IF ส่งกลับเฉพาะค่า “ ชิป ” เนื่องจากค่าแรกของอาร์กิวเมนต์คือหนึ่งเท่านั้น = True .
ฟังก์ชัน TEXTJOIN ไม่ได้ทำอะไรที่นี่เนื่องจากมีเพียงค่าเดียวจาก รายการ ถูกจับคู่ หากมีค่าหลายค่าที่จะจับคู่ มันจะส่งคืนค่าทั้งหมดโดยมีเครื่องหมายจุลภาค (,) คั่นระหว่างค่าเหล่านั้น
ผลลัพธ์สุดท้าย: ชิป
อ่านเพิ่มเติม: หากเซลล์มีข้อความ ให้เพิ่มข้อความในเซลล์อื่นใน Excel
4. ใช้สูตรการจับคู่ดัชนีเพื่อส่งกลับค่าหากเซลล์มีข้อความเฉพาะ
นี่เป็นทางเลือกแทนสูตร TEXTJOIN สูตรนี้ยังแสดงสตริงหรือสตริงใดจาก รายการ ที่ตรงกัน
ที่นี่ ฉันได้ดึงค่าเซลล์จากคอลัมน์ รายการ ที่ค่าเหล่านั้นตรงกับ ผลิตภัณฑ์ และแสดงเป็นค่าที่ตรงกันจาก รายการ คอลัมน์
สูตรเป็นดังนี้:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")
รายละเอียดสูตร:
ที่นี่ เครื่องหมายดอกจัน ( * ) คือ อักขระตัวแทน ค้นหาสตริงย่อย “ ชิป ” และ “ เครื่องดื่มเย็น ๆ ” ภายใน เซลล์ B5 ซึ่งก็คือสตริง “ รัฟเฟิล – ชิปส์ ” <1
ฟังก์ชัน COUNTIF ส่งกลับค่าหนึ่งสำหรับทุกการจับคู่สตริงย่อย เนื่องจากพบ “ ชิป ” ใน เซลล์ B5 จึงส่งคืน { 1:0 }.
ฟังก์ชัน MATCH คืนค่า 1 เนื่องจากมีค่า " ชิป " เพียงค่าเดียวที่ตรงกัน
ฟังก์ชัน INDEX ส่งคืน " ชิป " เนื่องจากเป็นค่าในอาร์เรย์ รายการ
ที่นี่ ฟังก์ชัน IFERROR ใช้เพื่อจัดการกับข้อผิดพลาดที่จะเกิดขึ้นหากไม่มีรายการที่ตรงกัน .
ผลลัพธ์สุดท้าย: ชิป
หมายเหตุ:
ที่นี่ ฉันได้แสดงเซลล์ที่ตรงกัน แต่คุณสามารถแสดง เอาต์พุตใด ๆ ตามที่คุณต้องการโดยเปลี่ยน IF เอาต์พุตของฟังก์ชันด้วยเอาต์พุตที่คุณต้องการ
อ่านเพิ่มเติม: สูตร Excel หากเซลล์ประกอบด้วยข้อความ จากนั้นส่งคืนค่าใน อีกเซลล์
5. ใช้ฟังก์ชัน EXACT กับ IF และ TEXTJOIN
นี่เป็นอีกหนึ่งวิธีแก้ปัญหาในสถานการณ์ต่างๆ ที่นี่ ฉันได้ดึงค่าเซลล์จากคอลัมน์รายการด้วยสมาชิกคนเดียว เราจับคู่ค่านี้กับผลิตภัณฑ์และแสดงค่าที่ตรงกันทั้งหมดในเซลล์เดียว
สูตรมีดังนี้ดังนี้:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
การแจกแจงสูตร :
ส่วนนี้จะตรวจสอบว่าค่าใดของ ช่วง C5:14 ที่ตรงกับ เซลล์ F5 และส่งกลับ TRUE และ FALSE .
ส่วนนี้ส่งคืนชื่อที่เราได้รับ จริง .<1
สุดท้าย การรวมชื่อทั้งหมดด้วยเครื่องหมายจุลภาคหลังแต่ละชื่อ
บันทึกย่อ
สูตรทั้งหมดที่นี่ (ยกเว้นสูตรที่ 2) เป็นสูตรอาร์เรย์ นั่นหมายความว่าคุณต้องกด Ctrl+Shift+Enter แทนที่จะกดปุ่ม Enter เพื่อป้อนสูตรนี้ แต่ถ้าคุณเป็นผู้ใช้ Office 365 คุณสามารถใช้ได้โดยกด Enter
บทสรุป
ในบทความนี้ ฉันได้จำกัดสูตรต่างๆ ให้แคบลงสำหรับกรณีต่างๆ เพื่อส่งคืนค่าหากเซลล์มีข้อความเฉพาะจากรายการ ฉันหวังว่าคุณจะสามารถหาทางออกให้กับปัญหาของคุณได้ กรุณาแสดงความคิดเห็นหากคุณมีข้อเสนอแนะหรือคำถามใด ๆ นอกจากนี้ คุณสามารถเยี่ยมชม บล็อก ของเราสำหรับบทความดังกล่าวเพิ่มเติม