ในตอนนี้เราจะมาเรียนรู้เรื่องของการผูก Data Model ซึ่งก็คือการทำให้ข้อมูลหลายๆ ตารางมาผูกความสัมพันธ์กัน (Relationship) รวมกันเป็นสิ่งที่เรียกว่า Data Model ซึ่งจะช่วยให้เราสามารถดึงข้อมูลจากตารางอื่นมาใช้ Pivot ร่วมกับตารางหลักได้อย่างสบายๆ ไม่ต้องใช้ VLOOKUP อีกต่อไป
สารบัญ
เอาข้อมูลแต่ละตารางเข้าสู่ Data Model
แนวทางที่ผมอยากแนะนำคือ ให้แปลงข้อมูลเป็น Table ก่อน แล้วตั้งชื่อ Table ซะ แล้วค่อย Add เข้า Data Model ครับ เราจะมาทำทีละตารางกัน (ตารางหลักเราทำไปแล้ว)
เริ่มจากการ Convert เป็น Table (Ctrl+T) และ ตั้งชื่อ Table ซึ่งผมตั้งว่า SalesBio
Convert และตั้งชื่อให้ครบทุกตารางเลยนะครับ (ยกเว้นตาราง Commission ซึ่งยังยากไปขอข้ามไปก่อน) ตารางอื่นๆ ผมตั้งชื่อดังนี้
- CustomerCountry
- ProductCost
พอตั้งชื่อครบทุกตารางแล้ว ก็ไปที่ Ribbon PowerPivot แล้วกด Add to Data Model ซะ
มันจะเปิดหน้าต่าง PowePivot ขึ้นมา และทำการ Add ตารางที่เราเลือกเข้าไป (ในขณะที่ตาราง TXData อยู่อีก tab นึงทางด้านซ้าย)
ให้เรากดปุ่มรูป Excel เพื่อ Switch to Workbook กลับมายัง Excel ปกติ
จากนั้นก็มา Add ตารางอื่นต่อจนครบ
Tips : จริงๆ แล้วเราสามารถ Add ตารางเข้า Data Model ผ่าน Power Query ก็ได้นะ (ตอน Close & Load to… จะมีให้ติ๊ก) ซึ่งการเอาข้อมูลเข้า Data Model จะไม่ได้ถูกจำกัดจำนวนแถวที่ล้านกว่าแถวเหมือน Excel นะ (เช่น Get Data มาจาก Source อื่นที่มีหลายล้านบรรทัด) แต่เผื่อบางคนยังไม่รู้จัก Power Query ผมยังไม่พูดถึงรายละเอียดละกัน
สรุปว่าตอนนี้ผมมี 4 ตารางครบแล้วนะ
ผูก Relationship ให้ Data Model
เมื่อเอาข้อมูลเข้าไปครบแล้ว เราจะไปผูก Relationship ให้กับ Data Model กัน โดยไปที่ Home -> Diagram View
จากนั้นให้เราจัดเรียงตารางหลักให้อยู่ตรงกลาง (จะได้ดูง่ายๆ) แล้วลากความสัมพันธ์เชื่อมแต่ละตารางเข้าด้วยกัน ผ่าน Field ที่เป็นตัวเชื่อม เช่น TXData กับ SalesBio จะเชื่อมกันด้วย “ผู้ขาย” (จะเริ่มการลากจากตารางไหนก็ได้)
จะได้ผลลัพธ์ดังนี้ ซึ่งมีเลข 1 กับ * โผล่มาที่เส้นของ Relationship
- เลข 1 (one) หมายถึง Field ตัวเชื่อมในฝั่งตารางนั้น มีค่าไม่ซ้ำกัน (แต่ละค่ามีตัวเดียว)
- เราจะเรียกตารางฝั่งที่เป็นเลข 1 ว่าตาราง Dimension Table (หรือตารางอ้างอิง)
- สัญลักษณ์ * (many) หมายถึง Field ตัวเชื่อมในฝั่งตารางนั้น มีค่าซ้ำกันได้ (แต่ละค่ามีหลายตัว)
- เราจะเรียกตารางฝั่งที่เป็นเลข 1 ว่าตาราง Fact Table (หรือตารางหลัก ที่เก็บ Transaction จริงๆ ไว้)
ดังนั้นความสัมพันธ์ระหว่าง SalesBio กับ TXData ก็จะเรียกว่า One-to-Many นั่นเองครับ (ถ้ามองอีกทิศก็เป็น Many-to-One)
หมายเหตุ : Data Model ของ Excel จะไม่รองรับแบบ Many-to-Many นะครับ (จะต้องสร้าง Table มาเชื่อมตรงกลางอีกที ถึงจะใช้ได้) แนวทางการทำประมาณนี้
ทีนี้เราก็ลากเชื่อมตารางอ้างอิงทุกอันเข้ากับตารางหลัก ได้ดังนี้
- ผู้ขาย vs ผู้ขาย
- สินค้า vs สินค้า
- ลูกค้า vs customer id (สังเกตว่าชื่อ Field ไม่เหมือนกันก็ได้)
พอลากเชื่อมหมดแล้ว เราสามารถ Switch กลับไปที่ Excel ของเราที่ทำตาราง Pivot เอาไว้แล้ว และไปดูที่ All เพื่อให้มองเห็นทุกตารางได้
สมมติผมจะเอาประเทศลูกค้าลงมาวิเคราะห์ร่วมกันกับตารางหลัก ก็สามารถลากลงมาได้เลย โดยไม่ต้อง VLOOKUP มารวมในตารางเดียวกันเหมือนสมัยโบราณอีกต่อไป (เพราะเราเชื่อมความสัมพันธ์ผ่าน Relationship ของ Data Model แล้ว)
และนี่คือประโยชน์ของการใช้ Data Model ครับ ซึ่งจะช่วยเอาข้อมูลจากหลายๆ ตารางมาวิเคราะห์ร่วมกันได้ ซึ่งคำนวณได้รวดเร็วกว่า VLOOKUP เยอะมาก และรองรับข้อมูลจำนวนมหาศาลได้ด้วย ซึ่ง Concept ของ Data Model ก็แทบจะเหมือนกับใน Power BI เลยล่ะ (แต่ Power BI มีความสามารถมากกว่านิดหน่อย) ใครอยากลงลึกเรื่องนี้ก็ลองไปเล่นใน Power BI ได้นะครับ
ตอนต่อไป
ในบทความนี้จะเป็นแค่ Data Model พื้นฐานเท่านั้น ในตอนต่อไปจะเป็นการอธิบายการทำงานของ Data Model อย่างละเอียดมากขึ้นครับ
สารบัญซีรีส์ Power Pivot
- วิธีกำหนดให้ Pivot Table แสดงเฉพาะแถว/คอลัมน์ที่ต้องการ
- การใช้ Excel Power Pivot ตอนที่ 1 : การใช้งานพื้นฐาน
- การใช้ Excel Power Pivot ตอนที่ 2 : ทำผลสรุป Value ให้เป็นข้อความด้วย DAX
- การใช้ Excel Power Pivot ตอนที่ 3 : ลาก่อน VLOOKUP สวัสดี Data Model
- การใช้ Excel Power Pivot ตอนที่ 4 : Data Model ทำงานอย่างไร
- การใช้ Excel Power Pivot ตอนที่ 5 : การทำรายงาน Actual vs Target
- Inventory Management ทำรายงานสินค้าคงคลังด้วย DAX และ Data Model ใน Excel
- วิธีดับเบิ้ลคลิ๊กแสดงข้อมูลรายะเอียดใน Pivot แบบ Data Model ให้เกิน 1000 บรรทัด
- หลากวิธีเอาข้อมูลในกลุ่มเดียวกันไปรวมเป็นข้อความเดียวกัน