การทำ Database ใน Excel ต้องทำอย่างไร คิดอย่างไร? มีตัวอย่างให้ดู
มีเรื่องหนึ่งที่ค่อนข้างหงุดหงิดเวลาทำงานกับเอ็กเซลก็คือ มักจะได้รับไฟล์ซึ่งนำไปทำงานต่อลำบาก คือ มักจะจัดหน้าสวยงาม เพราะต้องการนำไป “พิมพ์เป็นกระดาษ” หรือ ยึดติดกับความสวยงามของหน้ารายงานกระดาษ
แต่สำหรับคนที่ต้องนำข้อมูลไปใช้ทำงานต่อ เราไม่ต้องการ “รายงาน” สิ่งที่เราต้องการคือ “ข้อมูล” ที่จัดเก็บเป็นระเบียบพร้อมให้นำไปใช้งานต่อ
ลองนึกดูว่า ถ้าหากท่านพบกับข้อมูลลักษณะนี้
- – หัวรายงาน มีหลายแถว มีการควบรวมคอลัมน์
- – มีแทรกการสรุป กลางข้อมูล
- – มีสรุปท้ายแถว
ท่านลองนึกดูว่า ถ้าจะเอาตัวอย่างด้านบนไปทำงาน จะมีปัญหาอะไรบ้าง?
สิ่งที่เห็นคือ “รายงาน” เราเอา “รายงาน” ไปนำเสนอได้ ใครทำรายงานอ่านง่าย เข้าใจง่าย สรุปได้ครบถ้วนคือคุณสมบัติของคนทำงานที่ดีอีกอย่างหนึ่ง
แต่สำหรับคนที่อยากนำข้อมูลนั้นไปทำงานต่อ สิ่งที่อยากได้คือ “ฐานข้อมูล”
แทรกปรัชญาชีวิตสักนิดหน่อย
DefExcel เคยเจอใครบางคนที่-เหมือนไม่รู้ว่าตัวเองทำงานไปด้วยจุดมุ่งหมายอะไร ทำตามขั้นตอนแบบ copy and paste ไปเรื่อย ๆ พอถามว่าทำไปทำไมก็สวมวิญญาณลุงท่านหนึ่ง ไม่รู้ ไม่รู้
ต้องเข้าใจอย่างหนึ่งว่า การทำงาน มันมีเนื้อหาสาระที่เปลี่ยนแปลงไปตามวันเวลา บางสิ่งที่เกิดขึ้นมาเมื่อ 20 – 30 ปีที่แล้ว สมัยที่คอมพิวเตอร์ยังไม่ใช่อุปกรณ์พื้นฐาน ยังทำงานกันบนกระดาษอยู่ วิธีการอย่างหนึ่งที่ออกแบบมาอย่างนั้นก็เหมาะสมกับการทำงานอย่างนั้น
แต่หลังจากเวลาผ่านไป เทคโนโลยีเปลี่ยน กาทำงานก็เปลี่ยน หลักใหญ่ใจความเหมือนเดิมแต่วิธีการมันเปลี่ยนไปแล้ว เราก็ต้องเปลี่ยนวิธีการให้เหมาะสมกับข้อมูลและยุคสมัย
สิ่งที่อยากจะฝากไว้ก็คือ
เทคโนโลยี สถานการณ์รอบตัว ข้อมูล ฯลฯ สิ่งเหล่านี้คือตัวกำหนดวิธีการทำงาน เราจะไปยึดติดวิธีการทำงาน โดยไม่รู้ว่าวิธีเหล่านั้นจะนำไปสู่อะไรไม่ได้
เราควรตั้งเป้าหมาย แล้วนึกว่า ด้วยสถานการณ์รอบข้าง อันได้แก่ข้อมูลต่าง ๆ จะนำเราไปสู่เป้าหมายอย่างไร
เหมือนอยู่กรุงเทพ ตั้งเป้าหมายไว้ที่เชียงใหม่ เราจะไปเชียงใหม่อย่างไร
ถ้าเรามีเงิน และต้องการประหยัดเวลา เราอาจจะไปโดยเครื่องบิน
ถ้าเราอยากใช้ชีวิตสโลว์ไลฟ์ เราอาจจะไปด้วยรถไฟ
เราอาจจะอยากเดินทางด้วยรถยนต์ เพราะอาจแวะกลางทาง อาจออกนอกเส้นทาง หรือขนของเยอะ
ฯลฯ
งานก็เหมือนกัน เราต้องมีเป้าหมายว่าผลลัพธ์ที่เราต้องการคืออะไร มีอะไรอยู่ในมือบ้าง และ เรามีศักยภาพในการจัดการกับข้อมูลนั้นอย่างไร? เช่น บางท่านอาจจะมีความรู้เรื่องการเขียนโค้ด บางท่านอาจจะถนัดในการใช้ Access บางท่านอาจจะถนัดในการใช้ Excel
ถ้าเรามีเป้าหมายที่ชัดเจน ซอฟต์แวร์ต่าง ๆ ก็เป็นเพียงแค่อุปกรณ์อำนวยความสะดวก
การทำข้อมูลให้พร้อมสำหรับการทำงานต่อ ก็เป็นหนึ่งในสิ่งที่เราควรเตรียมพร้อมไว้ ถ้าเรารู้ว่าเราต้องการอะไร
บันทึกข้อมูลแบบไหนถึงจะเรียกว่า database?
ส่วนใหญ่ DefExcel.com จะเสนอกว้าง ๆ ว่า ถ้าจะทำให้ข้อมูลเก็บเป็น database หรือฐานข้อมูล ได้นั้น ควรมีลักษณะ 3 อย่างต่อไปนี้
- เป็นข้อมูลที่ไม่มีการ merge cell
- ทั้งคอลัมน์ เป็นข้อมูลประเภทหรือกลุ่มข้อมูลเดียวกัน
- มีหัวคอลัมน์ชัดเจนว่า แต่ละคอลัมน์คืออะไร
แต่ในชีวิตจริง ทั้งสามสิ่งที่เขียนถึงข้างต้นไม่มีความหมายอะไรเลยด้วยซ้ำ
ตาราง
เพื่อให้เห็นภาพ จะยกตัวอย่างว่า การทำตาราง ที่เป็น “รายงาน” แต่ไม่เหมาะจะเป็น “ฐานข้อมูล” มันต่างกันอย่างไร
ตาราง ในเอ็กเซลหรือสเปรดชีตอื่น ๆ จะจัดวางในสองมิติ – แถวกับสดมภ์ – (row & column) เป็นคุณสมบัติพื้นฐานที่สำคัญ และสิ่งนี้ก็ผ่านการพิสูจน์ว่าช่วยทำให้ข้อมูลมีระเบียบเรียบง่ายที่สุดแล้ว
แต่ แถว และ คอลัมน์ ง่าย ๆ เพียงเท่านี้ มีอะไรให้คิดมากกว่าที่เห็น
สมมติว่า เรามีข้อมูลรายได้ของบริษัทหนึ่ง แต่ละแถวคือหนึ่งปีและแต่ละคอลัมน์คือเดือน และเราใส่ตัวเลขรายได้ของแต่ละเดือนลงไป
ตารางอันนี้ ดีหรือไม่?
DefExcel เชื่อว่านี่เป็นตารางที่ดีตารางหนึ่ง
ถ้าหากท่านจะดูว่าในปี 2015 เดือนมิถุนายน บริษัทนี้มีรายได้เท่าไหร่ ก็แค่มองไปที่คอลัมน์ “ปี” มองลงมาเพื่อหา 2015 แล้วกวาดตาไปทางขวา ดูที่คอลัมน์เดือน “มิถุนายน” เราก็จะเห็นรายได้ของเดือนมิถุนายน 2015 แล้ว
เมื่อท่านรู้ว่าต้องมองหาที่ไหน ก็สามารถเปรียบเทียบก่อนหน้าหรือหลังจากนั้น เปรียบเทียบระหว่างเดือนหรือปี หาค่าเฉลี่ยของแต่ละเดือน หรือ แต่ละปี ท่านอาจจะสร้างคอลัมน์ใหม่เพื่อหาค่าเฉลี่ยหรืออื่น ๆ
ดังนั้น ตารางนี้เป็นตารางที่ดี
หากเอาเกณฑ์ 3 ข้อ ที่เขียนไว้ข้างต้นมาจับ
- เป็นข้อมูลที่ไม่มีการ merge cell
- ทั้งคอลัมน์ เป็นข้อมูลประเภทหรือกลุ่มข้อมูลเดียวกัน
- มีหัวคอลัมน์ชัดเจนว่า แต่ละคอลัมน์คืออะไร
ก็จะเห็นว่านี่คือการสร้างตารางที่มีคุณลักษณะครบ 3 ข้อที่ได้เขียนไว้
แต่
มันต้องมี แต่!
เช่นเดียวกับนิยามคำว่า มนุษย์ ของพลาโต นักปราชญ์ชาวกรีก ที่ว่า “มนุษย์คือสัตว์สองเท้าไม่มีขน” ซึ่งก็เป็นความจริง มนุษย์เราเป็นสัตว์สองเท้าไม่มีขนจริง ๆ แล้วไง? มีปัญหาอะไร?
วันหนึ่ง ไดโอจีนิส นักปราญ์อีกท่านหนึ่งก็ถือไก่ถอนขนเข้ามาแล้วบอกว่า “นี่ไง มนุษย์ สัตว์สองเท้าไม่มีขน”
บางนิยามที่มีความหมาย และเป็นจริง ในบางขณะก็ไร้ความหมายโดยสิ้นเชิง
ตารางตัวอย่างนี้ มีครบเกณฑ์ 3 ข้อ ที่บอก และดูก็ทำออกมาดีด้วย ใช้สายตามองเพื่อหาคำตอบก็สวยงามดี มองง่าย ถ้าอยากจะสรุปว่าปีไหนรายได้เท่าไหร่ ก็เพิ่มคอลัมน์ด้านหลังแล้วรวมในแต่ละแถวออกมา
แต่ถ้าเกิด ข้อมูลไม่ได้เรียงสวยแบบนี้ วางสลับกันไป ท่านยังมองว่าตารางนี้ออกแบบมาสอดคล้องพร้อมใช้งานหรือไม่?
ในฐานะ “เครื่องมือสำหรับวิเคราะห์ข้อมูล” ความท้าทายแตกต่างกันไปตามลักษณะข้อมูลที่มี และปัญหาแรกคือ เราต้องแยกก่อนว่า อะไรคือข้อมูลที่มี? อะไรเป็นสิ่งที่อธิบายข้อมูลแต่ไม่ใช่ข้อมูล?
จากตารางข้างต้น คอลัมน์แรก เป็นปี ซึ่งสิ่งที่อยู่ในคอลัมน์นั้นก็คือ เลขปี แต่หัวคอลัมน์อื่น คือ ชื่อเดือน
มีใครเอะใจว่าชื่อเดือน เป็น “ข้อมูล” ของ “เดือน” หรือไม่?
ในขณะที่ปี 2011 2012 คือข้อมูลของปี แต่ มกราคม กุมภาพันธ์ ต่าง ๆ เหล่านี้ ก็เป็นข้อมูลของเดือน
ในเมื่อเป็น “ข้อมูล” ทำไมจึงกลายเป็นชื่อคอลัมน์?
อีกเรื่องหนึ่งก็คือ ข้อมูลในแต่ละคอลัมน์ อาจจะเข้าเกณฑ์ที่ว่า “ทั้งคอลัมน์ เป็นข้อมูลประเภทหรือกลุ่มข้อมูลเดียวกัน” แต่ข้อมูลในคอลัมน์ มกราคม จนถึง ธันวาคม ล้วนแล้วแต่เป็นข้อมูลประเภทเดียวกัน คือ ข้อมูล “รายได้” เพียงแค่ต่างช่วงเวลาเท่านั้น
ทำไมเราจึงเอาข้อมูลเดียวกันไปแยกหลายคอลัมน์? มนุษย์อาจจะใช้ตรรกะแยกแยะได้ในเวลาแป๊บเดียว แต่เราจะออกแบบคำสั่ง หรือ เขียนสูตรอย่างไรให้แยกแยกได้ว่าอะไรคือข้อมูลที่เรากำลังมองหาอยู่
สิ่งที่เห็นคือ “รายงาน” ไม่ใช่ “ฐานข้อมูล”
การทำรายงาน อาจจะเหมาะกับการให้คนดู หรือให้คนทำความเข้าใจ แต่เมื่อนึกถึงการใช้คำสั่งทางตรรกะเพื่อให้ทำงานโดยอัตโนมัติ เราต้องออกแบบเพื่อช่วยให้ทำงานได้อย่างรวดเร็วและเป็นประโยชน์ที่สุด
Database ใน Excel
ถ้าเราคิดว่า มกราคม กุมพาพันธ์ เหล่านี้เป็นส่วนหนึ่งของ เดือน เราก็ต้องจัดวางคอลัมน์ใหม่
เคียงข้างคอลัมน์ “ปี” ก็คือคอลัมน์ “เดือน” และคอลัมน์ “รายได้” เพื่อเก็บข้อมูลรายได้ แต่ละคอลัมน์มีบทบาทของตัวเองเป็นเอกเทศ
นี่ไม่ใช่รูปแบบที่ดีสำหรับมนุษย์ แต่เครื่องจักรจะเข้าใจง่ายที่สุด
มนุษย์อาจจะไม่ชอบเพราะรู้สึกว่าข้อมูลมีความซ้ำซ้อน อย่างเช่นคอลัมน์ปี แทนที่จะมีแค่ปี 2011 แค่บรรทัดเดียว แต่ต้องมีถึง 12 บรรทัด เพื่อรองรับคอลัมน์เดือน ที่มี 12 เดือนใน 1 ปี และปีอื่น ๆ ก็เช่นกัน ต้องซ้ำ 12 เดือนแบบนี้ไป
ถ้าเป็นมนุษย์อย่างเรา ๆ ก็รู้สึกว่า มันเสียเวลากว่าแบบแรกในการดูข้อมูล และจะเปรียบเทียบอะไรก็ยุ่งยากกว่ากัน แต่ด้วยวิธีนี้ ข้อมูลทั้งหมดจะถูกระบุโดยโครงสร้าง และนำไปใช้งานต่อได้ง่าย การกรองค่าบางค่า การคำนวณส่วนต่าง ค่าเฉลี่ย ฯลฯ
ที่สำคัญก็คือ รูปแบบนี้ จะทำให้นำข้อมูลไปคำนวณเพิ่มเติมได้ง่ายกว่า เช่น เพิ่มคอลัมน์รายจ่าย เคียงข้างคอลัมน์รายได้
ขอให้ลองย้อนกลับไป ตารางด้านบนสุด ท่านลองจินตนาการสิว่า จะปรับเปลี่ยนตารางอย่างไรเพื่อเพิ่มรายจ่ายเคียงคู่ไปกับรายได้?
และลองนึกภาพต่อว่า ถ้าหากจะคำนวณรายได้สุทธิ ด้วยการเอารายได้ลบรายจ่าย คุณจะคำนวณจากตาราง 1 หรือ ตาราง 2 ได้ดีกว่ากัน
ข้อมูล เปลี่ยนเป็น รายงาน ได้ง่ายมาก
แต่เราจะเอา รายงาน มาทำงานต่อเนื่องยากกว่าและเกิดข้อผิดพลาดได้ง่าย
แบบไหนดี
สิ่งที่เขียนมายาว ๆ นี้ ไม่ได้จะบอกว่า การทำ “รายงาน” ไม่ดี ทั้งสองแบบนั้นแตกต่างกันและมีประโยชน์ทั้งคู่ -ในบริบทที่แตกต่างกัน
แต่สิ่งที่เหมือนกันคือ ข้อมูล เรากำลังทำงานกับข้อมูลเดียวกันทุกประการ แต่ข้อมูลสามารถเปลี่ยนรูปแบบได้
หมายเหตุ เครื่องมือที่ใช้ในการทำ “ข้อมูล” ให้เป็น “รายงาน” อย่างหนึ่งในเอ็กเซลก็คือ พิวอต (pivot)
แล้วเราจะออกแบบตารางอย่างไรดี?
อันนี้ รบกวนอ่านบล็อกนี้ก่อนนะ การออกแบบตาราง
สิ่งที่เราต้องคิดก็คือ เราจะเอาตารางไปทำอะไร เราต้องการอะไร?
การทำ Database ใน Excel จะต้องเริ่มอย่างไร? ก็คงต้องกลับไปสู่ปรัชญาชีวิตที่เขียน
“เริ่มต้นด้วยการการจินตนาการถึงผลลัพธ์”