วันจันทร์ที่ 28 พฤษภาคม พ.ศ. 2555

ลดขนาด File Excel กันดีกว่า


http://www.tpa.or.th/xlsiam/training/manual/uncertainty/dbf02.html


มาลดขนาด File กันดีกว่า
Excel sheet หนึ่งๆมีจำนวนเซลล์มากกว่า 16 ล้านเซลล์ (65,536 rows x 256 columns) เคยทดลอง copy แค่ตัวเลข 1 ลงไปทุกเซลล์ กว่าจะ copy เสร็จ กินเวลากว่านาที เสียเวลาในการจัดเก็บเกือบนาที (เครื่องที่ใช้ทดลองนี้เป็น Pentium III 933 MHz, RAM 192 MB) แต่ที่น่ากลัวที่สุดคือ file นี้มีขนาดปาเข้าไปเกือบ 100 megabyte ไม่ใช่หน่วยพัน แต่เป็นหน่วยล้านตัวอักษรทีเดียว
ขนาด file Excel นอกเหนือจากข้อมูลที่บันทึกลงไปในเซลล์ ขนาดของ file xls ยังขึ้นอยู่กับ
  1. เซลล์ที่ถูกใช้
  2. เซลล์ที่ถูกอ้าง
  3. เซลล์ที่ใช้ format
ดังนั้นหากบันทึกสูตร =A2 ลงไปในเซลล์ A1 แม้ในเซลล์ A2 จะไม่มีค่าอะไรก็ตาม ถือว่ามีเซลล์ถูกใช้งาน 2 เซลล์เรียบร้อยไปแล้ว และถ้ากำหนด format ให้กับเซลล์อีก จะทำให้ขนาดของ file ใหญ่ขึ้นไปอีก
อย่างไรก็ตาม ขนาด file Excel ไม่ได้ใหญ่ขึ้นตามจำนวนข้อมูลที่เพิ่มขึ้นเสมอไป เนื่องจาก Excel มีระบบอัจฉริยะในการลดขนาดให้เหลือเล็กที่สุดที่เป็นไปได้ ขนาด file จะมีขนาดใหญ่ขึ้นตามแบบขั้นบันได เช่น เมื่อเปิด file ขึ้นมาแล้วจัดเก็บเลย จะมีขนาดประมาณ 14 kb แต่เมื่อบันทึกข้อมูลลงไปแล้วจัดเก็บ อาจไม่ทำให้ขนาดเปลี่ยนแปลงไปจากเดิม ขนาดจะคงเดิมไประยะหนึ่ง จนกว่าจะบันทึกข้อมูลเพิ่มถึงอีกขั้นบันไดหนึ่ง file ก็จะมีขนาดใหญ่เพิ่มตามไป และจะคงระดับใหม่นี้ไปอีกระยะหนึ่งเช่นกัน
แม้จะมีกว่า 16 ล้านเซลล์ในแต่ละ sheet จำนวนข้อมูลที่เพิ่มขึ้น จำนวนเซลล์ที่ใช้ จะทำให้ขนาด file ใหญ่ เมื่อขนาดใหญ่ขึ้น Excel จะทำงานช้าลง ยิ่ง file ใหญ่มากขึ้นๆๆๆ Excel จะยิ่งทำงานช้าลง ช้าลง จนในที่สุด Pentium ที่ใช้อยู่จะกลายเป็นเต่า ทำงานช้าจนทนไม่ไหวไปเลย
สาเหตุที่ทำให้ทำงานช้าลงไปนั้น ไม่ได้ขึ้นอยู่กับขนาด file เพียงอย่างเดียว แต่ยังขึ้นอยู่กับ format ที่ใช้ด้วย เคยทดลองกำหนด format font ให้กับเซลล์ เรียกว่า ใช้ font หนึ่งๆกับเซลล์หนึ่งๆ ให้ใช้ทุก font ที่มีอยู่ แค่ 300 font ก็ใช้ 300 เซลล์นี่เอง ทำให้ file มีขนาดเล็กนิดเดียว สามารถจัดเก็บได้สบายๆ แต่ไม่สามารถเปิดขึ้นมาใช้งานบนเครื่องที่มี RAM น้อยๆ (Random Access Memory: หน่วยความจำ)
วิธีลดขนาด File
  1. ใช้ Format เพียงเท่าที่จำเป็น และใช้กับเซลล์ที่ใช้งานเท่านั้น ไม่ใช่เลือกทั้ง column/row แล้วยังกำหนด format เฉพาะส่วนตารางที่ใช้ซ้อนเข้าไปอีก

    หากกำหนด Format ให้กับทั้ง Sheet/Row/Column จะทำให้ Excel จำพื้นที่ซึ่งกำหนด Format ได้โดยตรง จึงดีกว่าการกำหนด Format เฉพาะบางส่วนของตาราง ซึ่งเพิ่มภาระให้ Excel ต้องจำส่วนที่ใช้แยกเป็นส่วนๆว่า เซลล์ไหนจากไหนถึงไหนใช้สีอะไร
  2. ลบข้อมูล, สูตร, Range Name, Comment, รูปภาพ, Custom Format, Conditional Formatting, VBA Code ที่ไม่ได้ใช้ออกไป เมื่อสร้างงานเสร็จแล้วควรสั่ง delete row/column/sheet ที่ไม่ได้ใช้แล้วออกไปเสมอ
  3. file หรือ sheet ที่ใช้เก็บฐานข้อมูล หรือสูตรคำนวณไม่จำเป็นต้องกำหนด format ให้ใช้ format กับเซลล์ซึ่งใช้แสดงผลเท่านั้น
  4. สร้างสูตร link ข้าม file เพื่อเปิดใช้เฉพาะ file ที่ต้องการคำนวณหรือแสดงผลเท่านั้น file อื่นๆสามารถจัดเก็บไว้ใน harddisk แล้วใช้คำสั่ง Edit > Links > Update Links แทนการเปิด file ขึ้นมาใช้งาน ช่วยประหยัดหน่วยความจำ RAM
  5. สร้างสูตรลัด หรือสูตรซึ่งรวมหลายๆสูตรเข้าเป็นสูตรๆเดียว หรือใช้สูตรประเภท Array ลงไปในเซลล์เดียว แทนที่จะใช้สูตรแยกกระจายลงไปในเซลล์หลายๆเซลล์
  6. ใช้ชื่อสั้นที่สุด เพียงพอที่จะสื่อถึงความหมายของชื่อที่ใช้
  7. ปรับฐานข้อมูลแบบ flat-file ให้เป็นฐานข้อมูลแบบ relational database
Flat-file
เป็นฐานข้อมูลซึ่งเก็บข้อมูลทั้งหมดลงในตารางเดียว ทำให้มีข้อมูลซ้ำกันอยู่มาก ส่งผลให้ file ใหญ่ และทำงานช้าลง รูปแบบของ Flat-file เช่น
Relational Database
เป็นการใช้ตารางหลายๆตารางร่วมกัน โดยโยงความสัมพันธ์ของข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง เช่น ตามตัวอย่างนี้ เมื่อกำหนดรหัสให้กับข้อมูลส่วนที่ซ้ำกัน แล้วแยกออกเป็นตารางรหัสต่างหาก จะทำให้ข้อมูลทั้งหมดถูกจัดเป็นระเบียบและทำให้ file มีขนาดเล็กลงมาก
ประโยชน์นอกจากจะช่วยลดขนาด file ลงไปมากแล้ว ยังช่วยประหยัดเวลาในการบันทึกค้นหาข้อมูล ลดโอกาสผิดพลาดในการบันทึกข้อมูล และสามารถเปลี่ยนแปลงข้อมูลได้สะดวกรวดเร็วยิ่งขึ้น เพราะเมื่อเปลี่ยนแปลงข้อมูลในตารางหนึ่ง จะช่วยแก้ไขข้อมูลในตารางอื่นให้เองทันที
การเชื่อมโยงตารางแบบ Relational Database เข้าด้วยกัน ให้ใช้สูตรด้านจัดการฐานข้อมูล เช่น IF CHOOSE VLOOKUP MATCH INDEX เป็นต้น

ไม่มีความคิดเห็น: