Back to: What’s New in Excel?
แทนที่จะต้องเสียเวลานำตารางจากชีทนั้นแฟ้มนี้มาต่อกันก่อน หรือใช้หลายสูตรแยกหาตามตารางที่อยู่ต่างที่กัน เราสามารถใช้ VLookup สูตรเดียวไปหาค่าจากหลายๆที่ได้โดยตรงครับ
จากเดิมถ้ามี 3 ตาราง Class1 Class2 Class3 ต้องใช้หลายสูตร
=VLOOKUP( $B$6, Class1, 2, 0)
=VLOOKUP( $B$6, Class2, 2, 0)
=VLOOKUP( $B$6, Class3, 2, 0)
แค่ใช้สูตร Choose ช่วยเลือกตารางที่ต้องการมาให้ ปรับมาเป็น VLookup สูตรเดียวตามนี้
=VLOOKUP( $B$6, CHOOSE(Class, Class1, Class2, Class3), 2, 0)
พอ Class = 1 จะดึงพื้นที่ตารางชื่อ Class1 มาใช้
พอ Class = 2 จะดึงพื้นที่ตารางชื่อ Class2 มาใช้
พอ Class = 3 จะดึงพื้นที่ตารางชื่อ Class3 มาใช้
+++++++++++++++++++++++++++++++++++++++++
ให้จับสาเหตุที่ทำให้ตอนแรกต้องแยกข้อมูลออกไปเป็นหลายตารางหรือหลายชีท อย่างตัวอย่างในภาพนี้ สาเหตุที่แยกตารางออกจากกันนั้นเพื่อเก็บรหัสสินค้าที่นำหน้าด้วยตัว a b c ออกจากกัน
Class1, Class2, Class3 แต่ละตารางเก็บสินค้าที่มีรหัสช่วงเหล่านี้ไว้ a001-a999, b001-b999, c001-c999 ตามลำดับ
ที่เซลล์ B6 พอกรอกรหัส b001 หรือรหัสอะไรก็ได้ที่นำหน้าด้วยตัว b ลงไป ต้องหาให้ได้ก่อนว่ารหัสที่นำหน้าด้วยตัว b มาจากตารางที่ 2 หรือ Class2 ซึ่งตามภาพจะเห็นเลข 2 แสดงไว้ในเซลล์ C8 ที่ตั้งชื่อไว้ว่า Class
เซลล์ C8 มีสูตร =VLOOKUP( B6, ClassTable, 2)
สูตร VLookup แบบ Approximate Match นี้แหละครับที่ทำหน้าที่บอกว่ารหัส b001 - b999 ที่กรอกลงไปใน B6 นั้นมาจากตาราง Class2 โดยหาเลข 2 มาจากตารางชื่อ ClassTable
ตาราง ClassTable นี้ใน Column ซ้ายสุดเรียงค่าจากน้อยไปมากไว้ โดยเรียงจาก a001 b001 c001 ไว้
ในตาราง ClassTable พอใช้ค้นหารหัสอื่น เช่น b003 ก็จะพบว่า b001 คือค่าที่มากที่สุดที่ยังน้อยกว่าหรือเท่ากับ b003 แล้วคืนค่าเป็นเลข 2 ออกมาให้
ในตาราง ClassTable พอใช้ค้นหารหัสอื่น เช่น c004 ก็จะพบว่า c001 คือค่าที่มากที่สุดที่ยังน้อยกว่าหรือเท่ากับ c004 แล้วคืนค่าเป็นเลข 3 ออกมาให้
+++++++++++++++++++++++++++++++++++++++++
=VLOOKUP( $B$6, CHOOSE(Class, Class1, Class2, Class3), 2, 0)
1. พอกรอก b003 ลงไปในเซลล์ B6
2. เซลล์ C8 ที่ตั้งชื่อว่า Class มีสูตร =VLOOKUP( B6, ClassTable, 2) จะหาเลข 2 มาให้
3. พอ Class=2 สูตร CHOOSE(2, Class1, Class2, Class3) จะหาพื้นที่ Class2 มาให้
4. สูตรที่ซ้อนกันก็จะทำหน้าที่เสมือน =VLOOKUP( $B$6, Class2, 2, 0)
+++++++++++++++++++++++++++++++++++++++++
☝️ หลักการนำสูตร Choose ไปหาพื้นที่นี้ สามารถนำไปใช้กับทุกสูตรครับ ไม่ใช่เฉพาะ VLookup เท่านั้นหรอก Pivot Table ก็ใช้ได้เช่นกัน
ขอให้นำสาเหตุที่แยกตารางมาใช้ช่วยในการเลือกพื้นที่มาใช้ต่อ จะได้ไม่ต้องเสียเวลาไปหาทางนำตารางมาต่อกันอีกต่อไป
Download ตัวอย่าง
https://excelexperttraining.com/download/ChooseVLookup.xlsb
กรณีหาข้ามชีท
https://excelexperttraining.com/download/ChooseVLookupSheets.xlsb