ผู้ใช้ Excel อาจบันทึกข้อมูลขาดบ้างเกินไปบ้าง เนื่องจากขาดความรู้เรื่องสูตรหรือนึกไปเองว่า Excel สามารถหาคำตอบได้ทุกเรื่อง ทำให้ละเลยไม่บันทึกข้อมูลที่ควรจะบันทึกซ้ำ หรือบันทึกซ้ำจนเลยเถิดเกินไป โปรดพิจารณาตารางฐานข้อมูลในรูปต่อไปนี้

image007

จากตารางนี้ จะพบว่าผู้บันทึกข้อมูลละเลยไม่ได้บันทึกเซลล์วันที่ 9/5/2011 และ 11/5/2011 ให้ครบทุกรายการและไม่ได้บันทึกชื่อธนาคาร BBL ในรายการถอน เพราะอาจเห็นว่าเป็นรายการที่เกิดขึ้นในวันที่เดียวกันหรือเป็นรายการของธนาคารเดียวกันกับรายการที่บันทึกไว้แล้วติดๆกันข้างบน ซึ่งแม้จะไม่ผิดหลักการออกแบบฐานข้อมูลที่ดีและผู้ใช้ตารางนี้ยังเข้าใจชัดเจนว่าเป็นรายการของวันที่ใดและของธนาคารใดก็ตาม แต่เซลล์ช่องที่เว้นว่างไว้ กลับทำให้สูตรหรือคำสั่งของ Excel ที่มีอยู่ ไม่สามารถนำมาใช้งานได้แม้แต่น้อย

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

หากตารางใดมีเซลล์ว่างและต้องการนำข้อมูลมาเติมลงไปให้เต็ม โดยนำข้อมูลจากรายการด้านบนที่ติดกันมาเติมบันทึกลงไปในเซลล์ว่างด้านล่าง ให้แก้ไขพร้อมกันทั้งตาราง ดังนี้

  1. เลือกพื้นที่ตารางให้ครอบคลุมถึงเซลล์ว่างที่ต้องการแก้ไข เช่นในตัวอย่างนี้คือพื้นที่จากเซลล์ B3:C9
  2. กดปุ่ม F5 > Special แล้วกาช่อง Blanks เมื่อกดปุ่ม OK จะพบว่า Excel เลือกเฉพาะเซลล์ที่ว่างให้ทั้งหมด
  3. ให้พิมพ์เครื่องหมาย = แล้วคลิกเซลล์ด้านบนที่ติดกัน นั่นคือเซลล์ B3
  4. กดปุ่ม Ctrl พร้อมกับ Enter จะพบว่า Excel สร้างสูตรลิงค์นำข้อมูลเซลล์ด้านบนที่ติดกันมาใส่ลงไปในเซลล์ว่างจนครบทุกเซลล์
  5. สั่ง Copy พื้นที่ตารางทั้งหมดแล้ว Paste Special ทับที่เดิมแบบ Value เพื่อทำลายสูตรให้กลายเป็นข้อมูล

คราวนี้มาดูตารางข้อมูลที่บันทึกซ้ำเกินไปกันบ้าง

image008

ตารางนี้เป็นตารางบันทึกการซื้อสินค้าจาก supplier เช่น รายการแรกเป็นรายการซื้อสินค้าที่มีรหัส a001 ชื่อสินค้าคือ aaa ซื้อเข้ามาจำนวน 100 ชิ้น โดยซื้อมาจาก supplier ที่มีรหัส s001 ซึ่งมีชื่อ supplier ว่า sfk

สาเหตุที่ตารางนี้ถูกเรียกว่า Flat Database เนื่องจากเป็นตารางซึ่งเก็บทุกเรื่องไว้ในรายการเดียวกัน ทำให้ในการบันทึกการซื้อสินค้ารายการหนึ่งๆต้องใช้เซลล์ 5 เซลล์เรื่อยไป

ทั้งนี้ข้อมูลส่วนที่เป็นรหัสกับชื่อ ไม่ว่าจะเป็นรหัสสินค้ากับชื่อสินค้า หรือรหัส supplier กับชื่อ supplier คือสิ่งที่ต้องเป็นไปด้วยกันเสมอ รหัสหนึ่งก็ต้องใช้กำกับชื่อหนึ่งอยู่แล้ว ดังนั้นการบันทึกรหัสกับชื่อไว้ในรายการเดียวกันเรื่อยไป จะทำให้แฟ้มมีขนาดใหญ่ขึ้นโดยไม่จำเป็น

แทนที่จะบันทึกข้อมูลการซื้อสินค้าไว้ในตารางเดียว ให้แยกออกเป็น 3 ตาราง ดังรูปต่อไปนี้

image009

ตารางข้อมูลสินค้าและตารางข้อมูลผู้ขาย เป็นตารางเก็บข้อมูลซึ่งค่อนข้างจะคงที่ ไม่ค่อยมีการเปลี่ยนแปลง ไม่ว่าจะมีการแก้ไขหรือเพิ่มลดก็แทบจะไม่เกิดขึ้นหรือหากจะมีก็นานๆครั้งเท่านั้น ส่วนตารางข้อมูลสินค้าที่ซื้อต่างหากเป็นตารางที่จะมีการบันทึกต่อท้ายรายการสุดท้ายไปเรื่อยๆทุกครั้งที่มีการซื้อสินค้าเข้ามา (หากปรับให้สมบูรณ์ควรมีวันที่กำกับแต่ละรายการด้วย แต่ตัวอย่างนี้มีเพื่อทำให้เข้าใจหลักการพิจารณาได้ง่ายขึ้นในขั้นแรกเท่านั้น)

แม้จะมีจำนวนตารางเพิ่มขึ้น แต่จะพบว่าในการบันทึกการซื้อสินค้ารายการหนึ่งๆ คราวนี้ใช้เพียง 3 เซลล์เท่านั้น ในระยะยาวย่อมทำให้แฟ้มมีขนาดที่เพิ่มขึ้นในอัตราที่น้อยกว่าการบันทึกลงไปในตารางเดียวแบบ Flat

จุดอ่อนของการออกแบบตารางแบบนี้ คือ ทำให้ค้นหาข้อมูลทั้งหมดที่ต้องการได้ยากขึ้นเพราะไม่สามารถดูข้อมูลได้พร้อมกันในตารางเดียว ต้องอาศัยสูตรดึงข้อมูลจากหลายตารางมาแสดงร่วมกันในภายหลัง โดยผ่านข้อมูลที่มีความสัมพันธ์กันระหว่างตาราง จึงเรียกฐานข้อมูลแบบนี้ว่า Relational Database ซึ่งในตัวอย่างนี้ใช้ ID และ SId เป็นรหัสเชื่อมโยงที่ใช้ดึงข้อมูลระหว่างตารางด้วยสูตร

หากสนใจวิธีการออกแบบตารางแบบ Relational Database โปรดศึกษาเพิ่มเติมจากหนังสือการจัดการฐานข้อมูล หรือเรื่อง Database Normalization

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

E-Learning

Go to top