สารบัญ
บทช่วยสอนจะอธิบายวิธีทำให้ Excel VLOOKUP คำนึงถึงขนาดตัวพิมพ์ สาธิตสูตรอื่นๆ อีกสองสามสูตรที่แยกแยะตัวพิมพ์เล็ก และชี้ให้เห็นถึงจุดแข็งและข้อจำกัดของแต่ละฟังก์ชัน
ฉันคิดว่าทุกๆ ผู้ใช้ Excel รู้ว่าฟังก์ชันใดทำการค้นหาแนวตั้งใน Excel ใช่แล้ว มันคือ VLOOKUP อย่างไรก็ตาม มีคนจำนวนน้อยมากที่ทราบว่า VLOOKUP ของ Excel นั้นไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ซึ่งหมายความว่ามันจะถือว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นอักขระตัวเดียวกัน
ต่อไปนี้คือตัวอย่างสั้นๆ ที่แสดงให้เห็นว่า VLOOKUP ไม่สามารถแยกแยะตัวพิมพ์ใหญ่หรือเล็กได้ สมมติว่าคุณมี "บิล" ในเซลล์ A2 และ "บิล" ใน A4 สูตรด้านล่างจะจับ "บิล" เพราะมันมาก่อนในอาร์เรย์การค้นหา และส่งกลับค่าที่ตรงกันจาก B2
=VLOOKUP("Bill", A2:B4, 2, FALSE)
เพิ่มเติมในเรื่องนี้ ในบทความ ฉันจะแสดงวิธีทำให้ VLOOKUP คำนึงถึงตัวพิมพ์เล็กและใหญ่ นอกจากนี้ เราจะสำรวจฟังก์ชันอื่นๆ อีกสองสามฟังก์ชันที่สามารถจับคู่ตัวพิมพ์เล็กและใหญ่ใน Excel ได้
สูตร VLOOKUP ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ตามที่กล่าวไว้ข้างต้น สูตร VLOOKUP ปกติ ไม่รู้จักตัวอักษรตัวพิมพ์ อย่างไรก็ตาม มีวิธีทำให้ Excel VLOOKUP คำนึงถึงตัวพิมพ์เล็กและใหญ่ตามที่แสดงในตัวอย่างด้านล่าง
สมมติว่าคุณมี รหัสรายการ ในคอลัมน์ A และต้องการดึงราคาและความคิดเห็นของรายการ จากคอลัมน์ B และ C ปัญหาคือ ID มีทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตัวอย่างเช่น ค่าใน A4 (001Tvci3u) และ A5 (001Tvci3U) แตกต่างกันเฉพาะในอักขระตัวสุดท้าย "u" และ "U" ตามลำดับ
เมื่อค้นหา "001Tvci3 U " สูตร VLOOKUP มาตรฐานจะแสดงผล $90 ซึ่งเชื่อมโยงกับ "001Tvci3 u " เพราะมันมาก่อน "001Tvci3 U " ในอาร์เรย์การค้นหา แต่นี่ไม่ใช่สิ่งที่คุณต้องการใช่ไหม
=VLOOKUP(F2, A2:C7, 2, FALSE)
หากต้องการค้นหาแบบคำนึงถึงตัวพิมพ์เล็กและใหญ่ใน Excel เราจะรวม VLOOKUP, CHOOSE และ EXACT ฟังก์ชัน:
VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( lookup_value, lookup_array), return_array), 2, 0)สูตรทั่วไปนี้ใช้ได้อย่างสมบูรณ์แบบในทุกสถานการณ์ คุณยังสามารถค้นหา จากขวาไปซ้าย ซึ่งเป็นสิ่งที่สูตร VLOOKUP ปกติไม่สามารถทำได้ ขอชื่นชม Poriya ที่แนะนำโซลูชันที่เรียบง่ายและสง่างามนี้!
ในกรณีของเรา สูตรจริงจะเป็นดังนี้
ในการดึงราคาใน F3:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
<3
หากต้องการดึงความคิดเห็น F4:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
หมายเหตุ ใน Excel เวอร์ชันอื่นที่ไม่ใช่ Excel 365 การทำงานนี้เป็นสูตรอาร์เรย์เท่านั้น ดังนั้นอย่าลืมกด Ctrl + Shift + Enter เพื่อทำให้ถูกต้อง ใน Excel 365 เนื่องจากรองรับอาร์เรย์แบบไดนามิก จึงทำงานเป็นสูตรปกติได้ด้วย
สูตรนี้ทำงานอย่างไร:
ส่วนหลักที่ใช้เคล็ดลับคือสูตร CHOOSE ที่มี EXACT ซ้อนกัน:
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
ที่นี่ ฟังก์ชัน EXACT จะเปรียบเทียบค่าใน F2 กับแต่ละค่าใน A2:A7 และส่งกลับค่า TRUE หากค่าเหล่านั้นเหมือนกันทุกประการ รวมทั้งตัวพิมพ์เล็กและใหญ่FALSE มิฉะนั้น:
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
สำหรับอาร์กิวเมนต์ index_num ของ CHOOSE เราใช้ค่าคงที่อาร์เรย์ {1,2} ผลที่ได้คือ ฟังก์ชันจะรวมค่าตรรกะจากอาร์เรย์ด้านบนและค่าจาก C2:C7 เป็นอาร์เรย์สองมิติดังนี้:
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
ฟังก์ชัน VLOOKUP จะดึงค่าจากตรงนั้น และค้นหาค่าการค้นหา (ซึ่งเป็น TRUE) ในคอลัมน์ที่ 1 ของอาร์เรย์ 2 มิติ (แสดงด้วยค่าตรรกะ) และส่งกลับค่าที่ตรงกันจากคอลัมน์ที่ 2 ซึ่งเป็นราคาที่เรากำลังมองหา:
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
สูตร XLOOKUP ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่
สมาชิก Microsoft 365 สามารถทำการค้นหาที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ใน Excel ด้วยสูตรที่ง่ายกว่า อย่างที่คุณเดาได้ ฉันกำลังพูดถึงตัวตายตัวแทนที่มีประสิทธิภาพมากกว่าของ VLOOKUP นั่นคือฟังก์ชัน XLOOKUP
เนื่องจาก XLOOKUP ดำเนินการค้นหาและส่งคืนอาร์เรย์แยกกัน เราจึงไม่ต้องการเคล็ดลับอาร์เรย์สองมิติจากก่อนหน้านี้ ตัวอย่าง. เพียงใช้ EXACT สำหรับอาร์กิวเมนต์ lookup_array :
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , " ไม่พบ") อาร์กิวเมนต์สุดท้าย ("ไม่พบ") เป็นทางเลือก เป็นเพียงการกำหนดค่าที่จะส่งคืนหากไม่พบรายการที่ตรงกัน หากคุณละเว้น ข้อผิดพลาด #N/A มาตรฐานจะถูกส่งกลับในกรณีที่สูตรไม่พบอะไรเลย
สำหรับตารางตัวอย่างของเรา สูตรเหล่านี้เป็นสูตร XLOOKUP ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ที่จะใช้
หากต้องการรับราคาใน F3:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")
หากต้องการแยกไฟล์ความคิดเห็น F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")
สูตรนี้ทำงานอย่างไร:
เหมือนในตัวอย่างก่อนหน้า ส่งคืนค่า EXACT อาร์เรย์ของค่า TRUE และ FALSE โดยที่ TRUE แสดงถึงการจับคู่ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ XLOOKUP ค้นหาอาร์เรย์ด้านบนเพื่อหาค่า TRUE และส่งกลับค่าที่ตรงกันจาก return_array โปรดทราบว่าหากมีค่าเหมือนกันทุกประการ 2 ค่าขึ้นไปในคอลัมน์การค้นหา (รวมถึงตัวพิมพ์ใหญ่และเล็ก) สูตรจะแสดงค่าที่ตรงกันครั้งแรก
ข้อจำกัดของ XLOOKUP : ใช้ได้เท่านั้น ใน Excel 365 และ Excel 2021
SUMPRODUCT - การค้นหาที่คำนึงถึงตัวพิมพ์เล็กและใหญ่เพื่อส่งคืนตัวเลขที่ตรงกัน
ตามที่คุณเข้าใจจากหัวข้อ SUMPRODUCT เป็นอีกหนึ่งฟังก์ชันของ Excel ที่สามารถทำการค้นหาที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ แต่สามารถส่งคืน ค่าตัวเลข เท่านั้น หากไม่ใช่กรณีของคุณ ให้ข้ามไปที่ตัวอย่าง INDEX MATCH ที่ให้โซลูชันสำหรับข้อมูลทุกประเภท
อย่างที่คุณคงทราบแล้วว่า SUMPRODUCT ของ Excel จะคูณส่วนประกอบในอาร์เรย์ที่ระบุและส่งคืนผลรวมของผลิตภัณฑ์ เนื่องจากเราต้องการค้นหาตามตัวพิมพ์เล็กและใหญ่ เราจึงใช้ฟังก์ชัน EXACT เพื่อรับอาร์เรย์แรก:
=SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))
ขออภัย ฟังก์ชัน SUMPRODUCT ไม่สามารถส่งคืนข้อความที่ตรงกันเนื่องจากไม่สามารถคูณค่าข้อความได้ ในกรณีนี้ คุณจะได้รับ #VALUE! ข้อผิดพลาดเช่นในเซลล์ F4 ในภาพหน้าจอด้านล่าง:
สูตรนี้ทำงานอย่างไร:
เช่นเดียวกับในตัวอย่าง VLOOKUP ตรง ตรวจสอบฟังก์ชั่นค่าใน F2 เทียบกับค่าทั้งหมดใน A2:A7 และส่งกลับ TRUE สำหรับการจับคู่ที่ตรงตามตัวพิมพ์เล็กและใหญ่ FALSE มิฉะนั้น:
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))
ในสูตรส่วนใหญ่ Excel จะประเมิน TRUE เป็น 1 และ FALSE เป็น 0 ดังนั้น เมื่อ SUMPRODUCT คูณองค์ประกอบของสองอาร์เรย์ในตำแหน่งเดียวกัน ค่าที่ไม่ตรงกัน (FALSE) ทั้งหมดจะกลายเป็นศูนย์:
SUMPRODUCT({0;0;0;54;0;0})
ผลลัพธ์ที่ได้คือสูตรจะส่งกลับตัวเลขจาก คอลัมน์ B ที่สอดคล้องกับการจับคู่ที่ตรงตามตัวพิมพ์เล็กและใหญ่ในคอลัมน์ A
ข้อจำกัดของ SUMPRODUCT : สามารถส่งคืนค่าตัวเลขเท่านั้น
INDEX MATCH - การค้นหาที่คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับ ข้อมูลทุกประเภท
ในที่สุด เราใกล้จะได้สูตรการค้นหาที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แบบไร้ข้อจำกัด ซึ่งใช้ได้กับ Excel ทุกรุ่นและชุดข้อมูลทั้งหมด
ตัวอย่างนี้ไม่ได้เป็นเพียงเพราะ สิ่งที่ดีที่สุดจะถูกบันทึกไว้สำหรับสิ่งสุดท้าย แต่เนื่องจากความรู้ที่คุณได้รับในตัวอย่างก่อนหน้านี้อาจช่วยให้คุณเข้าใจสูตร MATCH INDEX ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ได้ดีขึ้น
มักใช้ฟังก์ชัน INDEX และ MATCH ร่วมกัน ในตัวอย่าง cel เป็นทางเลือกที่ยืดหยุ่นและหลากหลายกว่าสำหรับ VLOOKUP บทความต่อไปนี้ทำงานได้ดี (หวังว่า :) จะอธิบายว่าทั้งสองฟังก์ชันทำงานร่วมกันอย่างไร - การใช้ INDEX MATCH แทน VLOOKUP
ฉันจะเตือนคุณถึงประเด็นสำคัญดังนี้:
- ฟังก์ชัน MATCH ค้นหาค่าการค้นหาในอาร์เรย์การค้นหาที่ระบุและส่งกลับตำแหน่งสัมพัทธ์
- ค่าสัมพัทธ์ตำแหน่งของค่าการค้นหาจะตรงไปยังอาร์กิวเมนต์ row_num ของฟังก์ชัน INDEX ซึ่งสั่งให้ส่งคืนค่าจากแถวนั้น
สำหรับสูตรในการจดจำตัวพิมพ์เล็กและใหญ่ คุณเพียงแค่ จำเป็นต้องเพิ่มอีกหนึ่งฟังก์ชันให้กับชุดค่าผสม INDEX MATCH แบบคลาสสิก แน่นอน คุณต้องใช้ฟังก์ชัน EXACT อีกครั้ง:
INDEX( return_array , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))สูตรจริงใน F3 คือ:
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
ใน F4 เราใช้สูตรนี้:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
โปรดจำไว้ว่าจะใช้ได้เฉพาะใน สูตรอาร์เรย์ในทุกเวอร์ชันที่ไม่ใช่ Excel 365 ดังนั้นโปรดป้อนโดยกดแป้น Ctrl + Shift + Enter พร้อมกัน หากทำถูกต้อง สูตรจะอยู่ในวงเล็บปีกกาตามที่แสดงในภาพด้านล่าง:
วิธีการทำงานของสูตรนี้:
เช่นเดียวกับในตัวอย่างก่อนหน้านี้ EXACT ส่งกลับ TRUE สำหรับแต่ละค่าใน A2:A7 ที่ตรงกับค่าใน F2 ทุกประการ เนื่องจากเราใช้ TRUE สำหรับ lookup_value ของ MATCH จึงส่งคืนตำแหน่งสัมพัทธ์ของการจับคู่ที่ตรงตามตัวพิมพ์เล็กและใหญ่ ซึ่งเป็นสิ่งที่ INDEX ต้องการเพื่อส่งคืนการจับคู่จาก B2:B7
สูตรการค้นหาแบบคำนึงถึงตัวพิมพ์เล็กและใหญ่
สูตร INDEX MATCH ที่กล่าวถึงข้างต้นดูสมบูรณ์แบบใช่ไหม แต่ในความเป็นจริงมันไม่ใช่ ให้ฉันแสดงสาเหตุ
สมมติว่าเซลล์ในคอลัมน์ส่งกลับที่ตรงกับค่าการค้นหาว่างเปล่า อะไรจะกลับสูตร? ไม่มีอะไร.และตอนนี้ มาดูกันว่ามันคืนค่าอะไร:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
อ๊ะ สูตรคืนค่าศูนย์! อาจไม่ใช่เรื่องสำคัญนักเมื่อต้องจัดการกับค่าข้อความเพียงอย่างเดียว อย่างไรก็ตาม หากเวิร์กชีตของคุณมีตัวเลขและบางค่าเป็นศูนย์จริง นั่นเป็นปัญหา
อันที่จริง สูตรการค้นหาอื่นๆ ทั้งหมดที่กล่าวถึงก่อนหน้านี้จะทำงานในลักษณะเดียวกัน แต่ตอนนี้คุณต้องการสูตรที่ไร้ที่ติใช่ไหม
ในการทำให้สูตร INDEX MATCH ที่ตรงตามตัวพิมพ์ใหญ่-เล็กสมบูรณ์แบบที่สุด ให้รวมไว้ในฟังก์ชัน IF ที่ตรวจสอบว่าเซลล์ที่ส่งกลับว่างเปล่าหรือไม่และไม่ส่งคืนสิ่งใดใน กรณีนี้:
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
ในสูตรด้านบน:
- "C" คือคอลัมน์ส่งคืน
- "1" คือตัวเลข ที่เปลี่ยน ตำแหน่งสัมพัทธ์ ของเซลล์ที่ส่งกลับโดยฟังก์ชัน MATCH เป็น ที่อยู่เซลล์จริง .
ตัวอย่างเช่น อาร์เรย์การค้นหาในฟังก์ชัน MATCH ของเรา คือ A2:A7 หมายความว่าตำแหน่งสัมพัทธ์ของเซลล์ A2 คือ "1" เนื่องจากเป็นเซลล์แรกในอาร์เรย์ แต่ในความเป็นจริง อาร์เรย์การค้นหาเริ่มต้นในแถวที่ 2 เพื่อชดเชยความแตกต่าง เราเพิ่ม 1 ดังนั้นฟังก์ชัน INDIRECT จะส่งกลับค่าจากเซลล์ด้านขวา
ภาพหน้าจอด้านล่างแสดงการปรับปรุง INDEX ที่พิจารณาตัวพิมพ์เล็กและใหญ่ จับคู่สูตรที่ใช้งานจริง
หากเซลล์ส่งกลับว่างเปล่า สูตรจะไม่แสดงผลอะไรเลย (สตริงว่าง):
หากเซลล์ส่งกลับมีศูนย์ สูตรจะส่งกลับ 0:
ถ้าคุณต้องการแสดงข้อความเมื่อเซลล์ส่งคืนว่างเปล่า แทนที่สตริงว่าง ("") ในอาร์กิวเมนต์สุดท้ายของ IF ด้วยข้อความ:
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")
ทำ VLOOKUP ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ด้วยวิธีง่ายๆ
ผู้ใช้ Ultimate Suite for Excel ของเรามีเครื่องมือพิเศษที่ทำให้การค้นหาในตารางขนาดใหญ่และซับซ้อนง่ายขึ้นและไร้กังวล สิ่งที่ดีที่สุดคือ Merge Two Tables มีตัวเลือกที่พิจารณาตัวพิมพ์เล็กและใหญ่ และตัวอย่างด้านล่างแสดงให้เห็นการทำงานจริง
สมมติว่าคุณต้องการดึงจำนวน จากตาราง ค้นหา ไปยังตาราง หลัก ตามรหัสรายการที่ไม่ซ้ำกัน:
สิ่งที่คุณทำคือการเรียกใช้ตารางผสาน ตัวช่วยสร้างและทำตามขั้นตอนเหล่านี้:
- เลือกตารางหลักที่จะดึงข้อมูลใหม่
- เลือกตารางค้นหาที่จะค้นหาข้อมูลใหม่
- เลือกหนึ่งหรือหลายคอลัมน์หลัก (รหัสรายการในกรณีของเรา) และอย่าลืมทำเครื่องหมายในช่อง การจับคู่ตามตัวพิมพ์เล็กและใหญ่
อีกสักครู่ คุณจะได้ผลลัพธ์ที่ต้องการ :)
นั่นคือวิธีการค้นหาใน Excel โดยคำนึงถึงตัวพิมพ์ข้อความ ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
คู่มือฝึกปฏิบัติสำหรับการดาวน์โหลด
ตัวอย่าง VLOOKUP ที่พิจารณาตัวพิมพ์เล็กและใหญ่ (ไฟล์ .xlsx)