สารบัญ
วันนี้เราจะแสดงวิธีใช้ สูตร VLOOKUP กับหลายชีตใน Excel ที่จริงแล้ว หนึ่งในฟังก์ชันที่สำคัญที่สุดและใช้กันอย่างแพร่หลายของ Excel คือ ฟังก์ชัน VLOOKUP นอกจากนี้ เราสามารถใช้ ฟังก์ชัน VBA VLOOKUP เพื่อค้นหาข้อมูลเฉพาะในเวิร์กชีตเดียวหรือภายในช่วงของเวิร์กชีต
นอกจากนี้ วันนี้เราจะแสดงวิธีที่เราสามารถใช้ สูตร VLOOKUP เพื่อค้นหาข้อมูลเฉพาะบางอย่างใน เวิร์กชีตหลายแผ่น ใน Excel
ดาวน์โหลดแบบฝึกหัดแบบฝึกหัด
คุณสามารถดาวน์โหลดแบบฝึกหัดแบบฝึกหัดได้จากที่นี่:
สูตร VLOOKUP ที่มีหลาย Sheets.xlsx Mock Test Marks.xlsxบทนำเกี่ยวกับฟังก์ชัน VLOOKUP ของ Excel
=VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
- ฟังก์ชันนี้ใช้ช่วงของเซลล์ที่เรียกว่า table_array เป็น อาร์กิวเมนต์
- จากนั้น ค้นหาค่าเฉพาะที่เรียกว่า lookup_value ใน คอลัมน์ แรกของ table_array
- นอกจากนี้ ให้มองหาค่าที่ตรงกันโดยประมาณหากอาร์กิวเมนต์ [range_lookup] คือ TRUE หรือค้นหาค่าที่ตรงกันทุกประการ ที่นี่ ค่าเริ่มต้นคือ TRUE .
- หากพบการจับคู่ใดๆ ของ lookup_value ใน คอลัมน์ แรกของ table_array ย้ายสองสามขั้นตอนไปทางขวาไปยังคอลัมน์ที่ต้องการ (col_index_number)
จากนั้น ส่งกลับค่าจากค่านั้นไม่มีในชีตที่กล่าวถึง
ข้อจำกัดของฟังก์ชัน VLOOKUP และทางเลือกบางอย่างใน Excel
- ที่นี่ คุณไม่สามารถใช้ VLOOKUP ฟังก์ชันเมื่อ lookup_value ไม่อยู่ใน คอลัมน์ แรกของตาราง ตัวอย่างเช่น ในตัวอย่างก่อนหน้านี้ คุณไม่สามารถใช้ฟังก์ชัน VLOOKUP เพื่อทราบชื่อของผู้สอบที่ได้ 90 ในการสอบข้อเขียน
- อย่างไรก็ตาม คุณสามารถใช้ฟังก์ชัน IF , IFS , INDEX MATCH , XLOOKUP หรือ FILTER ของ Excel เพื่อแก้ปัญหา นี้ (ที่นี่ คุณสามารถเยี่ยมชม บทความนี้ )
- นอกจากนี้ VLOOKUP จะส่งกลับเฉพาะค่า แรก หากมีมากกว่าหนึ่งค่าที่ตรงกับ lookup_value ในกรณีเหล่านี้ คุณสามารถใช้ฟังก์ชัน กรอง เพื่อรับค่าทั้งหมด (ที่นี่ คุณสามารถไปที่ บทความนี้ )
วิธีสมัคร VLOOKUP สูตรใน Excel ที่มีสมุดงานหลายชุด
ในส่วนนี้ เราจะพูดถึงวิธีการใช้สูตร VLOOKUP ใน Excel กับสมุดงานหลายชุด ตอนนี้ มามีสมุดงานต่อไปนี้ชื่อ Mock Test Marks นอกจากนี้ ในสมุดงานนั้นมีแผ่นงาน สาม แผ่นด้วย ได้แก่ สัปดาห์ที่ 1 สัปดาห์ที่ 2 และ สัปดาห์ที่ 3
ในขณะนี้ เราต้องการเปรียบเทียบข้อมูลเบื้องต้นและ คะแนนข้อเขียนขั้นสุดท้ายที่ได้รับจากผู้สมัคร ตอนแรกเราพบเครื่องหมายเขียนสุดท้าย ที่นี่คุณจะพบได้โดยทำตามข้อใดข้อหนึ่งวิธีการก่อนหน้านี้ ตอนนี้ เราจะแยกเครื่องหมายเขียนเบื้องต้นออกจากสมุดงานอื่น
- ดังนั้น จดสูตรต่อไปนี้ในเซลล์ D5
=IFERROR(VLOOKUP(B5,'[Mock Test Marks.xlsx]Week 1'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5, '[Mock Test Marks.xlsx]Week 2'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5,'[Mock Test Marks.xlsx]Week 3'!$B$5:$D$10,2,FALSE),"Absent")))
ที่นี่ เมื่อใช้สูตรนี้ คุณต้องเปิดสมุดงานทั้งสองเล่ม มิฉะนั้น คุณต้องใช้ เติมเส้นทาง/ตำแหน่ง แทนการใช้ชื่อไฟล์เท่านั้น
- จากนั้น กด ENTER .<10
- จากนั้น ลากไอคอน Fill Handle ลงมา
สุดท้าย คุณจะเห็นทั้ง ข้อเขียนข้อสุดท้ายและข้อเขียนเบื้องต้นสำหรับผู้เข้าสอบทุกคน
ส่วนแบบฝึกหัด
ตอนนี้ คุณสามารถฝึกวิธีการอธิบายได้ด้วยตัวเอง
สรุป
เมื่อใช้วิธีการเหล่านี้ คุณสามารถใช้ฟังก์ชัน VLOOKUP ของ Excel เป็นสูตรเพื่อแยกข้อมูลจากหลายแผ่นในสมุดงาน แล้วคุณมีคำถามอื่นอีกไหม? อย่าลังเลที่จะถามเรา
เซลล์นอกจากนี้ เราได้แนบตัวอย่างฟังก์ชัน VLOOKUP นี้ ทีนี้ ดูรูปต่อไปนี้
รายละเอียดของสูตร
ที่นี่ สูตร VLOOKUP(G8,B4:D15,3,FALSE) ค้นหาค่าของ G8 เซลล์ “ Angela ” ในคอลัมน์ แรก ของตาราง : B4:D15 .
หลังจากพบคอลัมน์แล้ว ก็จะย้ายไปทางขวาไปยังคอลัมน์ ที่สาม (เนื่องจาก col_index_number คือ 3 .)
จากนั้นคืนค่าจากตรงนั้น คือ 322
5 วิธีในการใช้สูตร VLOOKUP ใน Excel ด้วยชีตหลายแผ่น
ที่นี่ เรามีสมุดงานที่มีคะแนนในการสอบข้อเขียนและข้อสอบ viva ของผู้เข้าสอบบางคนในสามสัปดาห์ในเวิร์กชีตต่างๆ นอกจากนี้ ชื่อแรกคือ สัปดาห์ที่ 1 .
จากนั้น ชื่อของเวิร์กชีต ที่ 2 คือ สัปดาห์ที่ 2 .
สุดท้าย ชื่อของเวิร์กชีต ที่ 3 ที่มีเครื่องหมายของ Marco Group คือ สัปดาห์ที่ 3 .
ตอนนี้ วัตถุประสงค์ของเราคือแยกคะแนนจากเวิร์กชีต สาม ไปยังเวิร์กชีตใหม่โดยใช้ <1 ฟังก์ชัน>VLOOKUP ของ Excel
1. สูตร VLOOKUP สำหรับค้นหาในแต่ละเวิร์กชีตแยกกัน
ที่นี่ เรามีเวิร์กชีตใหม่ที่ชื่อว่า “VLOOKUP เท่านั้น” พร้อมด้วย ชื่อของผู้สมัครทั้งหมดเรียงตามตัวอักษร (A ถึง Z) ตอนนี้เราจะใช้สูตร VLOOKUP เพื่อค้นหาจากหลายชีตในExcel
ก่อนอื่น เราจะค้นหาเวิร์กชีต สาม แผ่นแยกกัน
ที่นี่เราจะค้นหา lookup_value จากแผ่นงานหนึ่งไปยังช่วงของเซลล์ของแผ่นงานอื่น
ไวยากรณ์ของสูตรจะเป็น:
=VLOOKUP(lookup_value,'Sheet_name'! table_array, col_index_number,FALSE)
- ค้นหา เครื่องหมาย ใน ข้อเขียน ของ ผู้สมัครประจำสัปดาห์ที่ 1 ป้อนสูตรนี้ในเซลล์ C5 ของแผ่นงานใหม่:
=VLOOKUP(B5,'Week 1'!$B$5:$D$10,2,FALSE)
- จากนั้น กด ENTER .
สิ่งนี้กำลังแสดง #N/A! ข้อผิดพลาด เนื่องจากค่าของเซลล์ B5 ในแผ่นงาน “VLOOKUP เท่านั้น” Alex Hales ไม่มีอยู่ในช่วง B5:D10 ของแผ่นงาน “สัปดาห์ที่ 1 “ .
- จากนั้น ลากไอคอน Fill Handle
ด้วยเหตุนี้ เราจึงเห็นเฉพาะคะแนนของผู้สมัครที่ปรากฏใน สัปดาห์ที่ 1 แสดงอยู่ ส่วนที่เหลือแสดงข้อผิดพลาด
- ซิม illy เพื่อหาเครื่องหมาย viva ให้จดสูตรต่อไปนี้ลงในเซลล์ D5
=VLOOKUP(B5,'Week 1'!$B$5:$D$10,3,FALSE)
- จากนั้น กด ENTER .
- จากนั้น ลากไอคอน Fill Handle เพื่อใช้ สูตรในเซลล์ที่เหลือ
ดังนั้นเราจึงเห็นเฉพาะผู้สมัครที่ปรากฏใน สัปดาห์ที่ 1 แสดงอยู่ ส่วนที่เหลือแสดงข้อผิดพลาด
นอกจากนี้เราสามารถทำงานที่คล้ายกันสำหรับ สัปดาห์ที่ 2 และ สัปดาห์ที่ 3 ได้เช่นกัน แต่นั่นจะไม่ตอบสนองความต้องการของเรา ดังนั้น เราต้องค้นหาวิธีการที่ดีกว่า
ประกาศ: ที่นี่ เราใช้การอ้างอิงเซลล์สัมพัทธ์สำหรับ lookup_value (B5) แต่การอ้างอิงเซลล์แบบสัมบูรณ์สำหรับ table_array ($B$5:$D$10) เนื่องจากเราต้องการให้ lookup_value เพิ่มขึ้นทีละรายการระหว่างการลากไอคอน Fill Handle แต่ table_array คงที่
อ่านเพิ่มเติม: เหตุใด VLOOKUP จึงส่งคืน #N/A เมื่อตรงกัน (5 สาเหตุและวิธีแก้ไข)
2. ค้นหาหลายชีตด้วยฟังก์ชัน IFERROR ใน Excel
คราวนี้เราจะค้นหาผู้สมัครในเวิร์กชีตแรกก่อน ( สัปดาห์ที่ 1 ).
จากนั้น หากเราไม่พบเขา/เธอในแผ่นงานแรก เราจะค้นหาในแผ่นงานที่สอง ( สัปดาห์ที่ 2 ).
และหากเรายังไม่พบเขา/เธอ เราจะค้นหาในใบงานที่ 3 ( สัปดาห์ที่ 3 )
หากเรายังไม่พบเขา/เธอ เราจะตัดสินใจ ว่าเขา/เธอ ขาดเรียน จากการสอบ
ในส่วนที่แล้ว เราเห็น VLOOKUP ส่งคืน N/A! เกิดข้อผิดพลาดหากไม่พบการจับคู่ใดๆ กับ lookup_value ใน table_array .
คราวนี้เราจะซ้อนฟังก์ชัน VLOOKUP ภายใน ฟังก์ชัน IFERROR เพื่อจัดการกับข้อผิดพลาด
ดังนั้น ไวยากรณ์ของสูตรจะเป็น:
=IFERROR(VLOOKUP(lookup_value,”Sheet1_Name”!table_array,col_index_number,FALSE),IFERROR(VLOOKUP(lookup_value,”Sheet2_Name”!table_array,col_index_number,FALSE),IFERROR (VLOOKUP(lookup_value,”Sheet3_Name”!table_array,col_index_number,FALSE),”Absent”)))
- ตอนนี้ ป้อนสูตรต่อไปนี้ในเซลล์ C5 ของ “VLOOKUP & IFERROR” แผ่นงาน
=IFERROR(VLOOKUP(B5,'Week 1'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5, 'Week 2'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5,'Week 3'!$B$5:$D$10,2,FALSE),"Absent")))
- จากนั้นกด ENTER .
ดังนั้น คุณจะเห็นรอยเขียนของ Alex Hales .
จากนั้น เราจะพบเครื่องหมาย viva ของ Alex เฮลส์
- ดังนั้น เขียนสูตรต่อไปนี้ในเซลล์ D5
=IFERROR(VLOOKUP(B5,'Week 1'!$B$5:$D$10,3,FALSE),IFERROR(VLOOKUP(B5, 'Week 2'!$B$5:$D$10,3,FALSE),IFERROR(VLOOKUP(B5,'Week 3'!$B$5:$D$10,3,FALSE),"Absent")))
<0- หลังจากนั้น กด ENTER .
- จากนั้น เลือกทั้งสองเซลล์ C5 และ D5 .
- ดังนั้น ลากไอคอน Fill Handle ไปยัง ป้อนอัตโนมัติ ข้อมูลที่เกี่ยวข้องในส่วนที่เหลือของเซลล์ C6:D24 .
สุดท้ายนี้ คุณจะเห็นทั้งเครื่องหมายที่เป็นลายลักษณ์อักษรและ viva สำหรับผู้เข้าสอบทุกคน
อ่านเพิ่มเติม: ตัวอย่าง VLOOKUP ระหว่างสองชีตใน Excel
การอ่านที่คล้ายกัน
- VLOOKUP ไม่ทำงาน (8 เหตุผลและแนวทางแก้ไข)
- Excel LOOKUP เทียบกับ VLOOKUP: ด้วย 3 ตัวอย่าง
- A คืออะไร อาร์เรย์ตารางใน VLOOKUP? (อธิบายด้วยตัวอย่าง)
- วิธีใช้ VLOOKUP ที่ซ้อนกันใน Excel (เกณฑ์ 3 ข้อ)
- ใช้ VLOOKUP กับหลายรายการเกณฑ์ใน Excel (6 วิธี + ทางเลือก)
3. การใช้สูตรรวมเพื่อค้นหาหลายชีตใน Excel
ที่จริงแล้ว ซ้อนกัน IFERROR และสูตร VLOOKUP ที่เราใช้ก่อนหน้านี้ก็มีประโยชน์ แต่ก็ยังค่อนข้างซับซ้อนในการใช้งาน โดยทั่วไป มีความเป็นไปได้สูงที่จะสับสนและเกิดข้อผิดพลาดหากมีแผ่นงานจำนวนมาก
ดังนั้น เราจะสร้างสูตรอื่นโดยใช้ INDIRECT , INDEX<2 ฟังก์ชัน>, MATCH และ COUNTIF ที่ดูซับซ้อนยิ่งขึ้น แต่นำไปใช้ได้ง่ายกว่าเมื่อมีเวิร์กชีตจำนวนมาก
- อันดับแรก ทั้งหมด สร้างอาร์เรย์แนวนอนพร้อมชื่อของแผ่นงานทั้งหมด ที่นี่ เราได้สร้างหนึ่งในเซลล์ F5:H5
- จากนั้นใส่สูตรต่อไปนี้ในช่อง C5 เซลล์
=IFERROR(VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,1,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!B5:B10"),B5)>0,0))&"'!$B$5:$D$10"),2,FALSE),"Absent")
- จากนั้น กด ENTER .<10
รายละเอียดสูตร
- ประการแรก COUNTIF(INDIRECT(“' ”&$F$5:$H$5&”'!B5:B10”),B5) คืนค่าจำนวนครั้งที่ค่าในเซลล์ B5 อยู่ในช่วง ' สัปดาห์ที่ 1′!B5:B10 , 'สัปดาห์ที่ 2'!B5:B10 และ 'สัปดาห์ที่ 3'!B5:B10 ตามลำดับ [ที่นี่ $F$5:$H$5 คือชื่อของแผ่นงาน ดังนั้น สูตร INDIRECT จะได้รับ 'Sheet_Name'!B5:B10 .]
- เอาต์พุต: {0,0,1} .<10
- ประการที่สอง MATCH(TRUE,{0,0,1}>0,0) ส่งคืนแผ่นงานใดค่าใน B5 เป็นปัจจุบัน
- เอาต์พุต: 3 .
- ที่นี่จะส่งกลับ 3 เป็นค่าใน B5 ( Alex Hales ) อยู่ในเวิร์กชีตหมายเลข 3 ( สัปดาห์ที่ 3 )
- ประการที่สาม INDEX( $F$5:$H$5,1,3) ส่งกลับชื่อของแผ่นงานโดยที่ค่าในเซลล์ B5 คือ
- ผลลัพธ์: “สัปดาห์ที่ 3” .
- ประการที่สี่ INDIRECT(“'”&”สัปดาห์ที่ 3″&” '!$B$4:$D$9”) ส่งคืนช่วงเซลล์ทั้งหมดของเวิร์กชีตที่มีค่าใน B5 อยู่
- ผลลัพธ์: {“Nathan Mills”,72,59;”Ruth Williamson”,53,55;”Alex Hales”,67,70;”Matthew Shepherd”,76,45;”Christina Paul”,69,75;”Ricardo Moyes”,57,61}
- สุดท้าย VLOOKUP(B5,{“Nathan Mills”,72,59 ;”รูธ วิลเลียมสัน”,53,55;”อเล็กซ์ เฮลส์”,67,70;”แมทธิว เชพเพิร์ด”,76,45;”คริสตินา พอล”,69,75;”ริคาร์โด มอยส์”,57,61},2,FALSE ) ส่งกลับ คอลัมน์ที่ 2 ของแถวจากช่วงที่ค่าในเซลล์ B5 ตรงกัน
- ผลลัพธ์: 67 .
- นี่คือคะแนนสอบข้อเขียนที่เรากำลังมองหา
- และในกรณี ไม่พบชื่อในแผ่นงานใด ๆ มันจะส่งคืน "ขาด" เนื่องจากเราซ้อนไว้ในฟังก์ชัน IFERROR
ที่นี่ คุณสามารถใช้ สูตรที่คล้ายกันเพื่อค้นหาเครื่องหมาย Viva ของผู้เข้าสอบ
- ดังนั้น เปลี่ยน col_index_number จาก 2 เป็น 3 และเขียนสูตร
=IFERROR(VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,1,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!B5:B10"),B5)>0,0))&"'!$B$5:$D$10"),3,FALSE),"Absent")
- จากนั้น กด ENTER เพื่อรับผลลัพธ์<10
- จากนั้นลากไอคอน Fill Handle
สุดท้าย เราได้ทั้งส่วนที่เขียนและ คะแนน viva ของผู้สมัครทั้งหมด ยิ่งไปกว่านั้น ไม่พบชื่อที่ถูกทำเครื่องหมายว่าไม่มีอยู่
อ่านเพิ่มเติม: INDEX MATCH vs VLOOKUP Function (9 ตัวอย่าง)
4. สูตร VLOOKUP ที่มีหมายเลขดัชนีคอลัมน์แบบไดนามิก
จนถึงตอนนี้ ในการแยกคะแนนในข้อสอบข้อเขียน เราใช้ col_index_num เป็น 2 . และสำหรับเครื่องหมาย viva 3 .
อันที่จริง เรากำลังแทรกสูตรแยกกันในทั้งสองคอลัมน์
ในที่สุด เมื่อเรามีหลายคอลัมน์ มันจะค่อนข้าง ยุ่งยากในการแทรกสูตรในทุกคอลัมน์แยกกัน
ดังนั้น ในครั้งนี้ เราจะสร้างสูตรเพื่อให้เราสามารถแทรกสูตรในคอลัมน์ แรก และลากไปยังคอลัมน์ทั้งหมด ผ่านไอคอน Fill Handle
อย่างง่าย แทนที่จะใส่ตัวเลขบริสุทธิ์เป็น col_index_num ให้ใส่ COLUMNS($C$1:D1) ถ้าสูตรอยู่ใน คอลัมน์ C ( For Written เครื่องหมาย ).
จากนั้น มันจะกลับมา 2 .
จากนั้น ถ้าเราลากไปที่ คอลัมน์ E ก็จะกลายเป็น COLUMNS($C$1:E1) และส่งคืน 3 และอื่นๆ
- ตอนนี้เราเปลี่ยนสูตรในส่วนที่แล้วเป็น:
=IFERROR(VLOOKUP($B5,INDIRECT("'"&INDEX($F$5:$H$5,1,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!B5:B10"),$B5)>0,0))&"'!$B$5:$D$10"),COLUMNS($C$1:D1),FALSE),"Absent")
<0- จากนั้น กด ENTER .
- หลังจากนั้น ลากไอคอน Fill Handle ไปทางด้านขวาเพื่อรับ Viva เครื่องหมาย
- จากนั้น ลากไอคอน Fill Handle ลง
สุดท้าย คุณจะเห็นทั้งเครื่องหมายในข้อเขียนและ viva สำหรับผู้เข้าสอบทุกคน
ประกาศ:ที่นี่ เราได้เปลี่ยน lookup_valueจาก B5 ถึง $B5เพื่อไม่ให้มีการเปลี่ยนแปลงเมื่อลากไปทางขวา แต่จะเปลี่ยนเมื่อลากลง
อ่านเพิ่มเติม: <2 Excel Dynamic VLOOKUP (มี 3 สูตร)
5. สูตร VLOOKUP พร้อมฟังก์ชันรวมใน Excel
ในที่นี้ เราจะใช้อีก VLOOKUP สูตร ใน Excel ที่มีหลายชีตโดยไม่สนใจฟังก์ชัน IFERROR มาดูขั้นตอนด้านล่างกัน
ขั้นตอน:
- ประการแรก คุณต้องเลือกเซลล์ใหม่ C5 โดยที่คุณ ต้องการเก็บเครื่องหมายที่เขียนไว้
- ประการที่สอง คุณควรใช้สูตรที่ระบุด้านล่างในเซลล์ C5
=VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,MATCH(1,--(COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!$B$5:$D$10"),B5)>0),0))&"'!$B$5:$D$10"),2,FALSE)
- ประการที่สาม กด ENTER .
- ในทำนองเดียวกัน ใช้สูตรต่อไปนี้ใน เซลล์ D5 เพื่อรับเครื่องหมาย Viva
=VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,MATCH(1,--(COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!$B$5:$D$10"),B5)>0),0))&"'!$B$5:$D$10"),3,FALSE)
- จากนั้นกด ENTER .
- จากนั้นลากไอคอน Fill Handle
สุดท้าย คุณจะเห็นทั้งข้อเขียนและเครื่องหมาย viva ของผู้เข้าสอบทั้งหมด นอกจากนี้ คุณจะเห็นข้อผิดพลาด #N/A ที่ชื่ออยู่