วิธีใช้สูตร IF หรือ Choose กำหนดขอบเขตตาราง

June 28, 2018

ตามปกติในสูตร VLookup, Match, Offset, หรือสูตรด้านฐานข้อมูลใดๆ สามารถรับตำแหน่งตารางได้เพียงตารางเดียวในวงเล็บของสูตร เช่น สูตร =VLOOKUP($H$3,MyData,2,0) ใช้ Range Name ชื่อ MyData เป็นตำแหน่งตารางฐานข้อมูลที่ต้องการค้นหาคำตอบ ถ้าต้องการทำให้สูตร VLookup หรือสูตรฐานข้อมูลสูตรใดๆสูตรเดียวสามารถค้นหาข้อมูลจากหลากหลายตาราง ให้ใช้สูตร IF หรือ Choose ซ้อนเข้าไปในส่วนของ MyData

สมมติว่า มีตารางฐานข้อมูลของลูกค้าหลายๆกลุ่มตามเกรดของลูกค้า ซึ่งลักษณะของตารางฐานข้อมูลของแต่ละกลุ่มมีหน้าตาตารางเหมือนๆกัน เพียงแต่จัดเก็บแยกตารางไว้ต่างพื้นที่ (หรือต่างชีทกัน) แล้วตั้งชื่อตารางว่า ClassA, ClassB, และ ClassC

image011

เมื่อต้องการค้นหาข้อมูล ให้พิมพ์ชื่อ Class A, B, หรือ C ลงไปในเซลล์ B10 ซึ่งตั้งชื่อว่า Class แล้วพิมพ์รหัสลูกค้าลงไปในเซลล์ B14 จะสามารถค้นหาข้อมูลของ Name และ Amount โดยใช้สูตร IF(Class=”A”, ClassA, IF(Class=”B”, ClassB, ClassC) ) ซ้อนลงไปในสูตร VLookup เพื่อทำให้สามารถเลือกได้ว่าจะหาข้อมูลจากตารางใดตามเงื่อนไขชื่อ Class กลายเป็นสูตรดังนี้

ในเซลล์ C14
=VLOOKUP(  $B$14,  IF(Class=”A”, ClassA, IF(Class=”B”, ClassB, ClassC) ),  2,  0)

ในเซลล์ D14
=VLOOKUP(  $B$14,  IF(Class=”A”, ClassA, IF(Class=”B”, ClassB, ClassC) ),  3,  0)

หากไม่ต้องการเสียเวลาพิมพ์ชื่อ Class เพื่อเพิ่มความสะดวกให้ใช้รหัสในเซลล์ B14 เลือกค้นหาข้อมูลได้ทันที ให้ใช้สูตร =Left(C14) สร้างลงไปในเซลล์ B10 ซึ่งตั้งชื่อว่า Class เพื่อดึงตัวอักษรที่อยู่ซ้ายสุดของรหัสมาใช้เป็นชื่อ Class ดังนั้นการตั้งชื่อรหัสให้มีความหมายจะทำให้เกิดประโยชน์ช่วยลัดขั้นตอนในการใช้งานอย่างมาก

การใช้สูตร IF เพื่อเลือกพื้นที่ตารางหลายๆแห่งมาใช้ จะกลายเป็นสูตร IF ซ้อนกัน ทำให้สร้างขึ้นมาได้ยากและกลายเป็นสูตรยาวขึ้นเรื่อยๆ จึงแนะนำให้ให้ใช้สูตร Choose แทน IF แต่ต้องใช้ตัวเลขที่ตาราง 1, 2, หรือ 3 มาใช้เป็นเงื่อนไขแทนชื่อตาราง A, B, หรือ C

image013

เมื่อต้องการค้นหาข้อมูล ให้พิมพ์เลขที่ Class 1, 2, หรือ 3 ลงไปในเซลล์ B10 ซึ่งตั้งชื่อว่า Class แล้วพิมพ์รหัสลูกค้าลงไปในเซลล์ B14 จะสามารถค้นหาข้อมูลของ Name และ Amount โดยใช้สูตร CHOOSE(Class,Class1,Class2,Class3) ซ้อนลงไปในสูตร VLookup เพื่อทำให้สามารถเลือกได้ว่าจะหาข้อมูลจากตารางใดตามเงื่อนไขเลขที่ Class กลายเป็นสูตรดังนี้

ในเซลล์ C14
=VLOOKUP(  $B$14,  CHOOSE(Class,Class1,Class2,Class3),  2,  0)

ในเซลล์ D14
=VLOOKUP(  $B$14,  CHOOSE(Class,Class1,Class2,Class3),  3,  0)

หากไม่ต้องการเสียเวลาพิมพ์เลขที่ Class เพื่อเพิ่มความสะดวกให้ใช้รหัสในเซลล์ B14 เลือกค้นหาข้อมูลได้ทันที ต้องสร้างตารางสรุปความสัมพันธ์ระหว่างรหัสกับเลขที่ Class ขึ้นมาใช้งาน ตามภาพต่อไปนี้คือเซลล์ F10:G12 โดยตั้งชื่อว่า ClassTable ซึ่งมี column ซ้ายสุดเรียงลำดับเลขรหัส Id เฉพาะรหัสตัวแรกของแต่ละกลุ่ม แล้วให้ใช้สูตร VLookup แบบ Approaching Match =VLOOKUP(B14,ClassTable,2) สร้างลงไปในเซลล์ B10 ซึ่งมีชื่อว่า Class

image015