ตามปกติเมื่อสร้างสูตรอ้างอิงกับตำแหน่งเซลล์หรือตำแหน่งตาราง จากนั้นเมื่อมีการย้ายหรือ Insert/Delete ทำให้เซลล์หรือตารางนั้นเปลี่ยนตำแหน่งหรือมีขนาดพื้นที่ต่างไปจากเดิม จะพบว่าตำแหน่งอ้างอิงที่กำหนดไว้ในสูตรมีการปรับตำแหน่งตามให้เอง แต่ถ้ามีการเปลี่ยนแปลงเฉพาะจำนวนรายการของข้อมูลในตารางนั้นให้มีจำนวนรายการเพิ่มลด จะพบว่าตำแหน่งอ้างอิงที่กำหนดไว้ในสูตร มิได้ขยายหรือลดขอบเขตตารางตามปริมาณข้อมูลที่มีอยู่แต่อย่างใด ผู้ใช้ Excel ทั่วไปจึงมักแก้ไขโดยสร้างสูตรที่มีขอบเขตตารางเผื่อไว้ บางคนถึงกับใช้ตำแหน่งอ้างอิงทั้ง column เผื่อไว้ ส่งผลให้แฟ้มนั้นมีขนาดใหญ่และคำนวณช้าลงผิดปกติ

ใน Excel 2003 และรุ่นก่อนนั้น มีคำสั่ง Data > List ไว้ใช้ช่วยแก้ปัญหาดังกล่าว ส่วนใน Excel  2010 เป็นต้นมาได้ตั้งชื่อคำสั่งใหม่เป็น Table (เป็นคำสั่งที่ต่างจาก Data Table) โดยสั่ง Insert > Table หรือ Home > Format as Table ทำให้ Excel ปรับขอบเขตตารางตามปริมาณข้อมูลที่เพิ่มให้โดยอัตโนมัติ ช่วยทำให้ตำแหน่งอ้างอิงที่กำหนดไว้ในสูตร, Format, Conditional Formatting, Data Validation, หรือแม้แต่ใน Pivot Table ปรับขนาดตามให้ทันที

image007

ก่อนที่จะใช้คำสั่ง Table ควรตั้งชื่อ Range Name ให้กับตารางฐานข้อมูลทางด้านซ้ายมือของภาพนี้ไว้ก่อน โปรดสังเกตว่า Range Name แต่ละชื่อต้องมีขนาดอย่างน้อย 2 เซลล์ขึ้นไป (ตามภาพนี้คือ MyData, Id, Name, Amount และสาเหตุที่ไม่ตั้งชื่อให้กับเซลล์ของ Cost เพื่อพิสูจน์ว่าไม่จำเป็นต้องตั้งชื่อไว้ก่อนก็ยังได้) จึงจะทำให้ Table ขยายขอบเขตของชื่อตารางตามปริมาณข้อมูลที่เพิ่มขึ้น

เมื่อตั้งชื่อ Range Name ไว้ก่อนเรียบร้อยแล้ว ให้คลิกลงไปในตารางฐานข้อมูลแล้วสั่ง Insert > Table โดย Excel จะเลือก =$B$2:$E$3 เป็นขอบเขตตารางให้เองพร้อมกับกาช่อง My table has headers ไว้ด้วยแล้ว เมื่อกดปุ่ม OK จะเกิด Range Name ชื่อ Table2 มีตำแหน่งอ้างอิง =$B$3:$E$3 สร้างขึ้นโดยอัตโนมัติ (ชื่อ Table2 นี้ จะมีเลขต่อท้ายเพิ่มขึ้นทีละ 1 ตามจำนวนครั้งที่ใช้คำสั่ง Table)

เมื่อบันทึกข้อมูลเพิ่มขึ้น จะพบว่าชื่อ Range Name ทั้งหมดมีขอบเขตของตำแหน่งอ้างอิงขยายตามให้อย่างอัตโนมัติ ช่วยทำให้ตำแหน่งอ้างอิงที่กำหนดไว้ในสูตร, Format, Conditional Formatting, Data Validation, หรือแม้แต่ใน Pivot Table ปรับขนาดตามให้ทันที

image009

แม้คำสั่ง Table จะมีประโยชน์อย่างมาก แต่ก็เหมาะกับตารางเก็บข้อมูลซึ่งบันทึกไว้เป็นฐานข้อมูลที่ดีเท่านั้น และผู้ใช้งานควรทราบเพิ่มเติมอีกว่า คำสั่งนี้จะทำให้เกิดตำแหน่งอ้างอิงแบบพิเศษที่เรียกว่า Structured Reference มาใช้แทนตำแหน่งอ้างอิงแบบปกติ เช่น =SUM(Table2[Cost]) จะคืนค่าเป็นยอดรวมของ Cost หาต่อมามีการสั่งยกเลิก Table จะทำให้สูตรที่เคยใช้ Structured Reference แก้กลับมาใช้ตำแหน่งอ้างอิงตามปกติให้เอง ทำให้สูตร =SUM(Table2[Cost]) แก้กลับมาเป็น =SUM(Sheet1!$E$3:$E$7)

การยกเลิก Table ทำได้ง่ายๆโดยคลิกขวาลงไปในตารางที่เป็น Table แล้วสั่ง Table > Convert to range แต่ถ้าเปลี่ยนใจสั่ง Insert > Table ขึ้นมาใหม่ จะพบว่าสูตร =SUM(Sheet1!$E$3:$E$7) ไม่เปลี่ยนกลับไปเป็น =SUM(Table2[Cost]) แต่อย่างใด ดังนั้นจึงขอแนะนำให้ใช้ Range Name ที่ตั้งชื่อขึ้นมาเองไว้ก่อน จะยืดหยุ่นและถาวรกว่าการใช้ Structured Reference

นอกจากนี้โปรดสังเกตว่า ในตัวอย่างนี้ก่อนการใช้คำสั่ง Table มีข้อมูลบันทึกไว้เพียงรายการเดียว จึงจำเป็นต้องตั้งชื่อ Range Name ชื่อ Id, Name, และ Amount ให้กับเซลล์ B3:B4, C3:C4, และ D3:D4 ซึ่งเผื่อไว้ถึง row 4 ที่เป็นเซลล์ว่าง ทำให้สูตรที่ใช้ตำแหน่งอ้างอิงรวมถึงเซลล์ว่างนี้อาจทำงานผิดพลาดก็ได้ ดังนั้นเพื่อป้องกันปัญหานี้ ควรใช้คำสั่ง Table กับตารางที่บันทึกข้อมูลไว้ตั้งแต่ 2 รายการขึ้นไป และตั้งชื่อ Range Name ให้กำหนดขอบเขตไว้เท่ากับปริมาณข้อมูลที่มีจริงโดยไม่ต้องเผื่อเซลล์ว่างไว้ด้วย

อย่างไรก็ตามหากมีการลบเฉพาะตัวข้อมูลทิ้งโดยไม่ได้สั่ง Delete Row จะพบว่าขอบเขตตารางยังคงมีขนาดคงเดิม ทั้ง Range Name และตำแหน่งอ้างอิงที่ใช้ในสูตร ไม่ได้ลดขนาดตามจำนวนรายการที่ลดลงแต่อย่างใด จึงเป็นข้อแม้สำคัญของการใช้ Table ว่าจะช่วยขยายขอบเขตตารางตามปริมาณข้อมูลที่เพิ่มโดยอัตโนมัติ แต่ไม่ได้ลดขนาดตามปริมาณข้อมูลที่ลดลง

Author: สมเกียรติ ฟุ้งเกียรติEmail: This email address is being protected from spambots. You need JavaScript enabled to view it.

E-Learning

Go to top