9 ข้อผิดพลาดที่พบบ่อยใน Power BI โดย อ.ชไลเวท พิพัฒพรรณวงศ์
บทความนี้สรุปจากประสบการณ์จริงของ อ.ชไลเวท พิพัฒพรรณวงศ์ (อ.เวท) ผู้เชี่ยวชาญด้าน Power BI ระดับ Microsoft MVP สาขา Data & AI และ CEO ของ 9Expert Co., Ltd. ซึ่งได้แบ่งปัน 9 ข้อผิดพลาดที่ตนเองเคยทำ เพื่อให้ผู้อ่านได้เรียนรู้และหลีกเลี่ยงปัญหาเหล่านี้ตั้งแต่เริ่มต้น
เนื้อหาแบ่งออกเป็น 4 หมวดหลัก ได้แก่ Data Modeling Foundations, Design Principles, Smart Automation และ Security Practices ซึ่งครอบคลุมทุกขั้นตอนตั้งแต่การออกแบบ Data Model ไปจนถึงการออกแบบ Dashboard ให้ใช้งานได้จริง
1. The Giant Table — ตารางยักษ์ที่ทำให้ไฟล์บวม
"ไฟล์ Power BI แรกของผมมีขนาด 800MB... สำหรับรายงานที่มีแค่ 1,000 แถว"
ข้อผิดพลาดอันดับหนึ่งที่มือใหม่มักทำคือการนำข้อมูลทั้งหมดมารวมไว้ในตารางเดียวขนาดใหญ่ (Flat Table) ที่มีมากกว่า 150 คอลัมน์ ส่งผลให้ไฟล์มีขนาดใหญ่เกินความจำเป็น สูตร DAX ซับซ้อน และเกิดความไม่สอดคล้องกันของข้อมูลระหว่างแถวต่างๆ
วิธีแก้ไข: ใช้ Star Schema
แยกข้อมูลออกเป็น Fact Table (ข้อมูลที่นับได้ เช่น ยอดขาย จำนวน) และ Dimension Table (ข้อมูลที่ใช้กรอง เช่น ลูกค้า สินค้า วันที่) การเปลี่ยนมาใช้ Star Schema สามารถลดขนาดไฟล์จาก 800MB เหลือเพียง 85MB (ลดลง 89%) พร้อมทั้งทำให้สูตร DAX เรียบง่ายขึ้นและ Filter ทำงานได้อย่างเป็นธรรมชาติ
2. Naming Matters — การตั้งชื่อมีความสำคัญ
"Column1 ไม่เคยบอกใครได้เลยว่ามันคืออะไร"
หลายคนปล่อยให้ชื่อคอลัมน์เป็นชื่อเดิมจากแหล่งข้อมูล เช่น Column1, Table_2, Query1, Field_ABC ซึ่งทำให้คนอื่นที่มารับงานต่อต้องใช้เวลา 2-3 วัน ในการทำความเข้าใจ Model
วิธีแก้ไข: Rename, Hide, Organize
เปลี่ยนชื่อให้สื่อความหมาย เช่น Customer Name, Sales Amount, Order Date จัดกลุ่มด้วย Display Folder และซ่อนฟิลด์ที่ไม่จำเป็น ผลลัพธ์คือจาก 150 ฟิลด์ที่สับสน เหลือเพียง 40 ฟิลด์ที่เข้าใจง่าย และเวลา Onboarding ลดจาก 2-3 วัน เหลือแค่ 30 นาที
Key Insight: กฎ 5 วินาที: ถ้าคนแปลกหน้าดูแล้วไม่เข้าใจใน 5 วินาที ให้เปลี่ยนชื่อทันที
3. งานอัตโนมือ — ไม่ใช้ Power Query ทำให้เสียเวลาซ้ำซาก
"ทุกเช้าวันจันทร์ ผมใช้เวลา 2 ชั่วโมง Copy-Paste... ติดต่อกัน 6 เดือน"
การเตรียมข้อมูลด้วยมือซ้ำๆ ทุกสัปดาห์ไม่เพียงเสียเวลา แต่ยังเสี่ยงต่อความผิดพลาด ตัวอย่างจริง: ในสัปดาห์ที่ 27 ลืมขั้นตอนหนึ่ง ทำให้ CEO เห็นยอดขายเพิ่มขึ้น 300% ซึ่งเป็นตัวเลขที่ผิดพลาด
วิธีแก้ไข: ใช้ Power Query
ตั้งค่าขั้นตอนการ Transform ข้อมูลใน Power Query ครั้งเดียว จากนั้นแค่กด Refresh ก็เสร็จภายใน 30 วินาที แทนที่จะทำมือ 10 ขั้นตอนทุกสัปดาห์ ประหยัดเวลาได้ 104 ชั่วโมงต่อปี
Key Insight: Transform Once, Refresh Forever — ตั้งค่าครั้งเดียว Refresh ได้ตลอดไป
4. Hardcoded Values — ค่าคงที่ที่ฝังในโค้ด
"ผมใช้เวลาหนึ่งสัปดาห์เปลี่ยน '2023' เป็น '2024' ในสูตร DAX กว่า 50 ตัว"
การพิมพ์ค่าตายตัว เช่น ปี พ.ศ. หรือชื่อสาขา ลงในสูตร DAX หรือ Power Query โดยตรง ทำให้ทุกครั้งที่ต้องเปลี่ยนค่า ต้องไล่แก้ทีละ Measure และถ้าพลาดแก้แม้แต่ตัวเดียว ข้อมูลก็จะผิดเงียบๆ โดยไม่มีใครรู้ อาจเป็นเวลาหลายสัปดาห์
วิธีแก้ไข: ใช้ Parameters และ Disconnected Tables
ใช้ What-If Parameters, Power Query Parameters หรือ Disconnected Tables เพื่อกำหนดค่าที่อาจเปลี่ยนแปลง เมื่อต้องการเปลี่ยนค่า แค่ปรับที่ Parameter Slicer จุดเดียว ค่าทั้งหมดก็จะอัปเดตพร้อมกันทุก Measure
Key Insight: ถ้าค่าไหนอาจเปลี่ยนแปลงในวันพรุ่งนี้ อย่าพิมพ์มันลงในโค้ดวันนี้
5. DAX vs Power Query — เลือกใช้ผิดเครื่องมือ
"ผมภูมิใจกับสูตร DAX 30 บรรทัดมาก... จนกระทั่งมีคนมาบอกว่ามันทำได้ด้วยคลิกเดียวใน Power Query"
หลายคนพยายามทำทุกอย่างด้วย DAX รวมถึงงานที่ควรทำใน Power Query เช่น การจัดกลุ่มข้อมูล การกรองแถว หรือการเพิ่มคอลัมน์คำนวณ ซึ่งทำให้สูตร DAX ยาวและซับซ้อนเกินจำเป็น คำนวณซ้ำทุกครั้งที่คลิก และใช้เวลา 20 นาทีกว่าจะเข้าใจ
วิธีแก้ไข: Decision Framework
ถามตัวเองว่า: ค่านี้เปลี่ยนตาม Filter ของผู้ใช้หรือไม่?
- ไม่เปลี่ยน → ทำใน Power Query (คำนวณครั้งเดียวตอน Refresh)
- เปลี่ยนตาม Filter → ใช้ DAX Measure (คำนวณแบบ Dynamic)
จากประสบการณ์จริง 6 ใน 10 งาน ควรทำใน Power Query ไม่ใช่ DAX การ Transform ข้อมูลล่วงหน้าจะทำให้ Power BI ทำงานเร็วขึ้นอย่างเห็นได้ชัด
Key Insight: Transform Early, Calculate Late — จัดการข้อมูลให้เรียบร้อยก่อน แล้วค่อยคำนวณทีหลัง
6. Calculation Groups — Measure ซ้ำซ้อนจนท่วม
"ผมมี 247 Measures ใน Model เดียว สองร้อย สี่สิบ เจ็ด"
เมื่อต้องสร้าง Measure สำหรับ YTD, MTD, LY ของทุก KPI หลายคนเลือกวิธี Copy-Paste แล้วเปลี่ยนชื่อ ทำให้เกิด Measure จำนวนมหาศาล เช่น 25 KPI พื้นฐาน คูณด้วย 10 รูปแบบเวลา กลายเป็น 247 Measures ที่ดูแลรักษายากมาก หากต้องแก้ Logic ของ YTD ก็ต้องแก้ทั้ง 25 ตัว และอาจพลาดอีก 2-3 ตัว
วิธีแก้ไข: ใช้ Calculation Groups
Calculation Groups ช่วยให้สร้าง Time Pattern (YTD, MTD, LY ฯลฯ) เพียงครั้งเดียว แล้วนำไปใช้กับทุก Measure ได้โดยอัตโนมัติ ผลลัพธ์คือลดจาก 247 Measures เหลือเพียง 25 Measures (ลดลง 90%) โดยใช้ 2 Slicers (KPI Selector + Time Pattern) แทน Measure กว่า 200 ตัว หากต้องแก้ Logic ก็แก้แค่จุดเดียว ไม่ต้องไล่แก้ทีละตัวอีกต่อไป
Key Insight: ถ้าคุณ Copy-Paste Measure แล้วเปลี่ยนแค่ชื่อ → คุณต้องการ Calculation Group
7. Page Duplication — ทำสำเนาหน้าซ้ำจนเกินความจำเป็น
"47 หน้า ผมดูแล 47 หน้าที่เหมือนกันเกือบทั้งหมด"
เมื่อต้องการแสดงข้อมูลแยกตามภูมิภาคหรือสินค้า หลายคนเลือก Copy หน้าแล้วเปลี่ยน Filter ทำให้เกิด 47 หน้าสำหรับแต่ละภูมิภาค มี Visual ทั้งหมด 282 ชิ้นที่โหลดพร้อมกัน ไฟล์ขนาด 85MB และเมื่อต้องแก้ KPI หนึ่งตัว ก็ต้องไล่แก้ทั้ง 40+ หน้า
วิธีแก้ไข: Smart Navigation
- Bookmarks — สลับมุมมองในหน้าเดียวกัน
- Drillthrough — กรองข้อมูลรายละเอียดอัตโนมัติ
- Page Navigation — สร้างเมนูแบบ App
Key Insight: Copy-Paste ไม่ใช่กลยุทธ์ — มันคือหนี้ทางเทคนิคที่มีดอกเบี้ยทบต้น
8. Visual Overload — Visual ล้นจอจนใช้งานจริงไม่ได้
"ลูกค้าบอกว่า: หน้าจอนี้ดูเหมือน Cockpit เครื่องบิน... แต่ผมไม่ใช่นักบิน"
การยัด Visual 20 ชิ้นพร้อม Slicer อีก 5 ตัวในหน้าเดียว ทำให้เกิด Cognitive Overload ผู้ใช้ไม่รู้ว่าควรดูตรงไหนก่อน เวลาโหลดนาน 8-15 วินาที (เพราะแต่ละ Visual = 1 DAX Query) และไม่มี Storytelling เมื่อทุกอย่างดังเท่ากันหมด ก็ไม่มีอะไรโดดเด่น
วิธีแก้ไข: 1 Page = 1 Question
- จำกัด Visual ไม่เกิน 5-7 ชิ้นต่อหน้า
- ใช้ Z-Pattern Layout เพื่อการอ่านที่เป็นธรรมชาติ
- ใช้ Drillthrough, Bookmarks และ Tooltip Pages สำหรับรายละเอียดเพิ่มเติม
ผลลัพธ์: เวลาโหลดลดจาก 8-15 วินาที เหลือ 1-2 วินาที (เร็วขึ้น 7 เท่า) DAX Queries ลดลง 70% และ User Engagement เปลี่ยนจากเปิดแล้วปิดทิ้งเป็นใช้งานทุกวัน
Key Insight: Copy-Paste ไม่ใช่กลยุทธ์ — มันคือหนี้ทางเทคนิคที่มีดอกเบี้ยทบต้น
9. Decision-First Design — ออกแบบโดยไม่คิดถึงการตัดสินใจ
"ผมสร้าง Dashboard สวยมาก... แต่ไม่มีใครเปิดดูหลังจากวันแรก"
สถิติที่น่าตกใจคือ 36% ของรายงานไม่มีคนเปิดดูเลยหลังจาก 90 วัน สาเหตุหลักคือการออกแบบ Dashboard โดยถามว่า "อยากเห็นอะไร" แทนที่จะถามว่า "ต้องตัดสินใจอะไร" ทำให้ได้ Dashboard ที่ดูสวยแต่ไม่ตอบโจทย์การทำงานจริง
วิธีแก้ไข: 5 Golden Questions
ก่อนเริ่มสร้าง Dashboard ให้ถามผู้ใช้ด้วยคำถาม 5 ข้อนี้:- รายงานนี้จะช่วยคุณตัดสินใจเรื่องอะไร?
- ถ้าเห็นตัวเลขแล้ว คุณจะทำอะไรต่อ?
- ใครดู เมื่อไหร่ และบนอุปกรณ์อะไร?
- ตัวเลขไหนที่ถ้าผิดจะสร้างปัญหาใหญ่ที่สุด?
- ถ้าไม่มีรายงานนี้ คุณตัดสินใจอย่างไรในวันนี้?
สรุป: จาก Confession สู่ Mastery
ทั้ง 9 ข้อผิดพลาดนี้ล้วนเป็นบทเรียนจากประสบการณ์จริงที่สามารถเกิดขึ้นได้กับทุกคน สิ่งสำคัญไม่ใช่การหลีกเลี่ยงข้อผิดพลาด แต่คือการเรียนรู้จากมันอย่างรวดเร็ว
| ข้อ | หลักการ | แนวทางปฎิบัติ |
| 1 | Start Schema | แยก Fact และ Dimension ให้ชัดเจน |
| 2 | Rename + Hide + Folders | ตั้งชื่อให้เข้าใจได้ใน 5 วินาที |
| 3 | Power Query Automation | ตั้งค่าครั้งเดียว Refresh ตลอดไป |
| 4 | Use Parameters | อย่า Hardcode ค่าที่อาจเปลี่ยน |
| 5 | DAX vs Power Query | Transform ก่อน Calculate ทีหลัง |
| 6 | Calculation Groups | ลด Measure ซ้ำซ้อนลง 90% |
| 7 | Bookmarks + Drillthrough | ลดการ Copy-Paste หน้า |
| 8 | 1 Page = 1 Question | จำกัด Visual 5-7 ชิ้นต่อหน้า |
| 9 | 5 Golden Questions | ถามเรื่องการตัดสินใจ ไม่ใช่แค่ข้อมูล |
"Dashboard ที่ดีไม่ใช่แค่สวย แต่จะต้องตอบโจทย์ มีโครงสร้างที่ดี เรียบง่าย แต่ทรงพลัง"
อ.ชไลเวท พิพัฒพรรณวงศ์, 9Expert Training
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Power BI อย่างเจาะลึก สามารถติดตามหลักสูตรอบรมจาก 9Expert Training ได้ที่ www.9experttraining.com ซึ่งมีหลักสูตรครอบคลุมตั้งแต่ระดับพื้นฐานจนถึงระดับสูง สอนโดยผู้เชี่ยวชาญระดับ Microsoft MVP








