สารบัญ
บทช่วยสอนแสดงสูตรต่างๆ สองสามสูตรเพื่อทำการค้นหาแบบสองมิติใน Excel เพียงแค่ดูตัวเลือกอื่นๆ แล้วเลือกรายการโปรดของคุณ :)
เมื่อค้นหาบางอย่างในสเปรดชีต Excel ส่วนใหญ่คุณจะค้นหาในแนวตั้งในคอลัมน์หรือในแนวนอนในแถว แต่บางครั้งคุณต้องมองข้ามทั้งแถวและคอลัมน์ กล่าวอีกนัยหนึ่ง คุณต้องการค้นหาค่าที่จุดตัดของแถวและคอลัมน์ที่ต้องการ สิ่งนี้เรียกว่า การค้นหาเมทริกซ์ (หรือที่เรียกว่า 2 มิติ หรือ การค้นหา 2 ทาง ) และบทช่วยสอนนี้จะแสดงวิธีการดำเนินการใน 4 วิธีที่แตกต่างกัน<3
สูตร Excel INDEX MATCH MATCH
วิธีที่ได้รับความนิยมมากที่สุดในการค้นหาแบบสองทางใน Excel คือการใช้ INDEX MATCH MATCH นี่เป็นรูปแบบหนึ่งของสูตรการจับคู่ INDEX แบบคลาสสิก ซึ่งคุณเพิ่มฟังก์ชัน MATCH อีกหนึ่งฟังก์ชันเพื่อรับทั้งแถวและหมายเลขคอลัมน์:
INDEX ( data_array , MATCH ( vlookup_value , lookup_column_range , 0), MATCH ( hlookup value , lookup_row_range , 0))ตามตัวอย่าง ลองสร้างสูตรเพื่อดึงประชากร ของสัตว์ชนิดใดชนิดหนึ่งในปีนั้นๆ จากตารางด้านล่าง สำหรับการเริ่มต้น เรากำหนดอาร์กิวเมนต์ทั้งหมด:
- Data_array - B2:E4 (เซลล์ข้อมูล ไม่รวมส่วนหัวของแถวและคอลัมน์)
- Vlookup_value - H1 (สัตว์เป้าหมาย)
- Lookup_column_range - A2:A4 (ส่วนหัวของแถว: ชื่อสัตว์) -A3:A4
- Hlookup_value - H2 (ปีเป้าหมาย)
- Lookup_row_range - B1:E1 (ส่วนหัวของคอลัมน์: ปี) <7
- Table_array - A2:E4 (เซลล์ข้อมูลรวมถึงส่วนหัวของแถว)
- Vlookup_value - H1 (สัตว์เป้าหมาย)
- Hlookup_value - H2 (ปีเป้าหมาย)
- Lookup_row_range - A1:E1 (ส่วนหัวของคอลัมน์: ปี)
- เลือกทั้งตาราง (กรณีของเราคือ A1:E4)
- ในแท็บ สูตร ในกลุ่ม ชื่อที่กำหนด ให้คลิก สร้าง จากส่วนที่เลือก หรือกดปุ่มลัด Ctrl + Shift + F3
- ในกล่องโต้ตอบ สร้างชื่อจากส่วนที่เลือก เลือก แถวบนสุด และ ซ้าย คอลัมน์ แล้วคลิก ตกลง
- หากคอลัมน์ของคุณ และ/หรือส่วนหัวของแถวเป็นตัวเลขหรือมีอักขระเฉพาะที่ไม่อนุญาตในชื่อ Excel ชื่อสำหรับคอลัมน์และแถวดังกล่าวจะไม่ถูกสร้างขึ้น หากต้องการดูรายชื่อที่สร้างขึ้น ให้เปิดตัวจัดการชื่อ ( Ctrl + F3 ) หากบางชื่อหายไป ให้กำหนดด้วยตนเองตามที่อธิบายไว้ในวิธีตั้งชื่อช่วงใน Excel
- หากส่วนหัวของแถวหรือคอลัมน์บางรายการมีช่องว่าง ช่องว่างจะถูกแทนที่ด้วยเครื่องหมายขีดล่าง เช่น Polar_bear .
- ในเซลล์ ที่คุณต้องการให้ผลลัพธ์ปรากฏ ให้พิมพ์เครื่องหมายความเท่าเทียม (=)
- เริ่มพิมพ์ชื่อแถวเป้าหมาย เช่น Blue_whale หลังจากคุณพิมพ์อักขระสองสามตัว Excel จะแสดงชื่อที่มีอยู่ทั้งหมดที่ตรงกับที่คุณป้อน ดับเบิลคลิกที่ชื่อที่ต้องการเพื่อป้อนลงในสูตรของคุณ:
- หลังชื่อแถว ให้พิมพ์ ช่องว่าง ซึ่งทำหน้าที่เป็น ตัวดำเนินการทางแยก ใน กรณีนี้
- ป้อนชื่อคอลัมน์เป้าหมาย ( _1990 ในกรณีของเรา)
- ทันทีที่ป้อนทั้งชื่อแถวและคอลัมน์ Excel จะเน้นแถวและคอลัมน์ที่เกี่ยวข้องในตารางของคุณ และคุณกด Enter เพื่อกรอกสูตร:
นำอาร์กิวเมนต์ทั้งหมดมารวมกันแล้วคุณจะได้สูตรนี้สำหรับการค้นหาแบบสองทาง:
=INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))
วิธีการทำงานของสูตรนี้
แม้ว่าจะดูเล็กน้อย ซับซ้อนตั้งแต่แรกเห็น ตรรกะของสูตรนั้นตรงไปตรงมาและเข้าใจง่ายจริงๆ ฟังก์ชัน INDEX ดึงค่าจากอาร์เรย์ข้อมูลตามหมายเลขแถวและคอลัมน์ และฟังก์ชัน MATCH สองตัวจะระบุค่าเหล่านี้:
INDEX(B2:E4, row_num, column_num)
ในที่นี้ เราใช้ประโยชน์จากความสามารถของ MATCH(lookup_value, lookup_array, [match_type]) เพื่อส่งคืน ตำแหน่งสัมพัทธ์ ของ lookup_value ใน lookup_array .
ดังนั้น เพื่อให้ได้หมายเลขแถว เราจึงค้นหา สำหรับสัตว์ที่น่าสนใจ (H1) ในส่วนหัวของแถว (A2:A4):
MATCH(H1, A2:A4, 0)
เพื่อให้ได้หมายเลขคอลัมน์ เราจะค้นหาปีเป้าหมาย (H2) ในส่วนหัวของคอลัมน์ (B1:E1):
MATCH(H2, B1:E1, 0)
ในทั้งสองกรณี เรามองหาการจับคู่แบบตรงทั้งหมดโดยตั้งค่าอาร์กิวเมนต์ที่ 3 เป็น 0
ในตัวอย่างนี้ ค่า MATCH แรกจะส่งกลับ 2 เนื่องจากค่า vlookup ของเรา (หมีขั้วโลก) อยู่ใน A3 ซึ่งเป็นเซลล์ที่ 2 ใน A2:A4 MATCH ที่สองส่งกลับ 3 เนื่องจากพบค่า hlookup (2000) ใน D1 ซึ่งเป็นเซลล์ที่ 3 ใน B1:E1
เมื่อพิจารณาจากข้างต้น สูตรจึงลดลงเป็น:
INDEX(B2:E4, 2, 3)
และส่งกลับค่าที่จุดตัดของแถวที่ 2 และคอลัมน์ที่ 3 ในอาร์เรย์ข้อมูล B2:E4 ซึ่งก็คือค่าในเซลล์ D3
สูตร VLOOKUP และ MATCH สำหรับการค้นหาแบบ 2 ทาง
อีกวิธีในการค้นหาแบบสองมิติใน Excel คือการใช้ฟังก์ชัน VLOOKUP และ MATCH ร่วมกัน:
VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)สำหรับตารางตัวอย่างของเรา สูตรใช้รูปร่างต่อไปนี้:
=VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)
ที่ไหน:
วิธีการทำงานของสูตรนี้
แกนหลักของสูตรคือฟังก์ชัน VLOOKUP ที่กำหนดค่าสำหรับการจับคู่แบบตรงทั้งหมด (อาร์กิวเมนต์สุดท้าย ตั้งเป็น FALSE) ซึ่งค้นหาค่าการค้นหา (H1) ในคอลัมน์แรกของอาร์เรย์ตาราง (A2:E4) และส่งกลับค่าจากคอลัมน์อื่นในแถวเดียวกัน ในการพิจารณาว่าจะส่งคืนค่าจากคอลัมน์ใด ให้ใช้ฟังก์ชัน MATCH ที่กำหนดค่าสำหรับการจับคู่แบบตรงทั้งหมด (อาร์กิวเมนต์สุดท้ายที่ตั้งค่าเป็น 0):
MATCH(H2, A1:E1, 0)
MATCH ค้นหาค่าใน H2 ข้ามส่วนหัวของคอลัมน์ (A1:E1) และส่งกลับตำแหน่งสัมพัทธ์ของเซลล์ที่พบ ในกรณีของเรา ปีเป้าหมาย (2010) พบได้ใน E1 ซึ่งเป็นลำดับที่ 5 ในอาร์เรย์การค้นหา ดังนั้น หมายเลข 5 ไปที่อาร์กิวเมนต์ col_index_num ของ VLOOKUP:
VLOOKUP(H1, A2:E4, 5, FALSE)
VLOOKUP นำมาจากที่นั่น ค้นหาตรงกับค่าการค้นหาใน A2 และส่งกลับค่าจากคอลัมน์ที่ 5 ในแถวเดียวกัน ซึ่งก็คือเซลล์ E2
หมายเหตุสำคัญ! เพื่อให้สูตรทำงานได้อย่างถูกต้อง table_array (A2:E4) ของ VLOOKUP และ lookup_array ของ MATCH (A1:E1) จะต้องมีจำนวนคอลัมน์เท่ากัน มิฉะนั้น จำนวนที่ส่งผ่านโดย MATCH ถึง col_index_num จะไม่ถูกต้อง (จะไม่สอดคล้องกับตำแหน่งของคอลัมน์ใน table_array )
ฟังก์ชัน XLOOKUP เพื่อค้นหาในแถวและคอลัมน์
เมื่อเร็ว ๆ นี้ Microsoft ได้เปิดตัวอีกหนึ่งฟังก์ชันใน Excel ซึ่งมีวัตถุประสงค์เพื่อแทนที่ฟังก์ชันการค้นหาที่มีอยู่ทั้งหมด เช่น VLOOKUP, HLOOKUP และ INDEX MATCH เหนือสิ่งอื่นใด XLOOKUP สามารถดูจุดตัดของแถวและคอลัมน์ที่ต้องการได้:
XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))สำหรับชุดข้อมูลตัวอย่างของเรา สูตรจะเป็นดังนี้:
=XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))
หมายเหตุ ปัจจุบัน XLOOKUP เป็นฟังก์ชันเบต้า ซึ่งพร้อมใช้งานสำหรับสมาชิก Office 365 ที่เป็นส่วนหนึ่งของโปรแกรม Office Insiders เท่านั้น
วิธีการทำงานของสูตรนี้
สูตรนี้ใช้ความสามารถของ XLOOKUP เพื่อส่งคืน ทั้งแถวหรือทั้งคอลัมน์ ฟังก์ชันภายในค้นหาปีเป้าหมายในแถวส่วนหัวและส่งกลับค่าทั้งหมดสำหรับปีนั้น (ในตัวอย่างนี้คือปี 1980) ค่าเหล่านั้นไปที่อาร์กิวเมนต์ return_array ของส่วนนอกXLOOKUP:
XLOOKUP(H1, A2:A4, {22000;25000;700}))
ฟังก์ชัน XLOOKUP ภายนอกค้นหาสัตว์เป้าหมายในส่วนหัวของคอลัมน์และส่งกลับค่าในตำแหน่งเดียวกันจาก return_array
สูตร SUMPRODUCT สำหรับสอง -way lookup
ฟังก์ชัน SUMPRODUCT เปรียบเสมือนมีดสวิสใน Excel มันสามารถทำอะไรได้หลายอย่างนอกเหนือจากวัตถุประสงค์ที่กำหนดไว้ โดยเฉพาะอย่างยิ่งเมื่อต้องประเมินเกณฑ์หลายข้อ
หากต้องการค้นหาสองอย่าง เกณฑ์ ในแถวและคอลัมน์ ใช้สูตรทั่วไปนี้:
SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )หากต้องการค้นหาแบบ 2 ทางในชุดข้อมูลของเรา สูตรจะเป็นดังนี้:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)
ไวยากรณ์ด้านล่างจะใช้ได้เช่นกัน:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)
วิธีการทำงานของสูตรนี้
ที่หัวใจของสูตร เราเปรียบเทียบค่าการค้นหาสองค่ากับส่วนหัวของแถวและคอลัมน์ (สัตว์เป้าหมายใน H1 กับสัตว์ทั้งหมด ชื่อใน A2:A4 และปีเป้าหมายในครึ่งหลังเทียบกับปีทั้งหมดใน B1:E1):
(A2:A4=H1) * (B1:E1=H2)
ความละเอียดนี้ ults ใน 2 อาร์เรย์ของค่า TRUE และ FALSE โดยที่ TRUE แทนค่าที่ตรงกัน:
{FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}
การดำเนินการคูณจะบังคับให้ค่า TRUE และ FALSE เป็น 1 และ 0 และสร้างอาร์เรย์สองมิติเป็น 4 คอลัมน์และ 3 แถว (แถวคั่นด้วยเครื่องหมายอัฒภาคและแต่ละคอลัมน์ของข้อมูลด้วยเครื่องหมายจุลภาค):
{0,0,0,0;0,0,0,0;0,1,0,0}
ฟังก์ชัน SUMPRODUCT จะคูณองค์ประกอบของอาร์เรย์ด้านบนด้วยรายการของB2:E4 ในตำแหน่งเดียวกัน:
{0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}
และเนื่องจากการคูณด้วยศูนย์จะให้ศูนย์ เฉพาะรายการที่สอดคล้องกับ 1 ในอาร์เรย์แรกเท่านั้นที่จะอยู่รอด:
SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})
สุดท้าย SUMPRODUCT จะเพิ่มองค์ประกอบของอาร์เรย์ที่เป็นผลลัพธ์และส่งคืนค่า 2000
หมายเหตุ ถ้าตารางของคุณมีแถวหรือ/และส่วนหัวของคอลัมน์ที่มีชื่อเดียวกันมากกว่าหนึ่งแถว อาร์เรย์สุดท้ายจะมีตัวเลขมากกว่าหนึ่งตัวนอกเหนือจากศูนย์ และตัวเลขทั้งหมดจะถูกรวมเข้าด้วยกัน ดังนั้น คุณจะได้รับผลรวมของค่าที่ตรงกับทั้งสองเกณฑ์ นี่คือสิ่งที่ทำให้สูตร SUMPRODUCT แตกต่างจาก INDEX MATCH MATCH และ VLOOKUP ซึ่งจะส่งคืนค่าที่ตรงกันที่พบครั้งแรก
การค้นหาเมทริกซ์ด้วยช่วงที่มีชื่อ (จุดตัดที่ชัดเจน)
อีกหนึ่งวิธีง่ายๆ ที่น่าอัศจรรย์ การค้นหาเมทริกซ์ใน Excel คือการใช้ช่วงที่มีชื่อ มีวิธีการดังนี้:
ส่วนที่ 1: ตั้งชื่อคอลัมน์และแถว
วิธีที่เร็วที่สุดในการตั้งชื่อแต่ละแถวและแต่ละคอลัมน์ในตารางของคุณคือ:
สิ่งนี้จะสร้างชื่อโดยอัตโนมัติตามส่วนหัวของแถวและคอลัมน์ อย่างไรก็ตาม มีข้อแม้บางประการ:
สำหรับตารางตัวอย่างของเรา Excel จะสร้างเฉพาะชื่อแถวโดยอัตโนมัติ ต้องสร้างชื่อคอลัมน์ด้วยตนเองเนื่องจากส่วนหัวของคอลัมน์เป็นตัวเลข เพื่อแก้ปัญหานี้ คุณสามารถนำหน้าตัวเลขด้วยเครื่องหมายขีดล่าง เช่น _1990
ด้วยเหตุนี้ เราจึงมีช่วงที่มีชื่อดังต่อไปนี้:
ส่วนที่ 2 : สร้างสูตรการค้นหาเมทริกซ์
หากต้องการดึงค่าที่จุดตัดของแถวและคอลัมน์ที่กำหนด ให้พิมพ์หนึ่งในสูตรทั่วไปต่อไปนี้ในเซลล์ว่าง:
= row_name column_nameหรือในทางกลับกัน:
= column_name row_nameตัวอย่างเช่น เพื่อให้ได้จำนวนประชากรของวาฬสีน้ำเงินในปี 1990 สูตรง่ายๆ เช่น:
=Blue_whale _1990
หากมีคนต้องการคำแนะนำโดยละเอียด ขั้นตอนต่อไปนี้จะนำคุณเข้าสู่กระบวนการ:
การค้นหาเมทริกซ์ของคุณเสร็จสิ้น และภาพหน้าจอด้านล่างแสดงผลลัพธ์:
นั่นคือวิธีการค้นหาในแถวและคอลัมน์ใน Excel ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
ดาวน์โหลดได้
สมุดงานตัวอย่างการค้นหา 2 มิติ