ทำไม Power BI ใช้ยาก?

ทำไม Power BI ถึงใช้ยาก?

เพราะเราใช้มันแทน Excel

อ้าว! แล้วมันผิดตรงไหน?

Power BI เป็นโปรแกรมที่ออกแบบมาเพื่อสร้างกราฟ หรือสรุปข้อมูลออกมาเป็นแดชบอร์ด

แต่ในทางปฏิบัติ กว่า 70% ใช้ Power BI เพื่อสรุปข้อมูลเป็นตาราง

หรือพูดง่าย ๆ คือ เปลี่ยนจากตารางที่เคยแสดงใน Excel มาแสดงใน Power BI แทนนั่นแหละ

ตารางใน Excel จะปรับแต่งยังไงก็ได้ เพิ่มข้อมูลอะไรตรงไหนก็ใส่แบบแมนวลได้

แต่ Power BI ใส่แบบแมนวลไม่ได้ ทุกอย่างต้องเชื่อมโยงกันและคิดเผื่อในสูตรไว้ทั้งหมดแล้ว

ยกตัวอย่างเช่น รีพอร์ตในภาพนี้

โจทย์ต้องการแสดงยอดขายของ This Month ( TM ), Last Month ( LM ) และ Last Year ( LY )

โดยเลือกเดือนและปีที่ต้องการจากสไลเซอร์ (Slicer)

เช่น จากภาพเลือก Feb-21

ซึ่งพอเลือกแล้ว ต้องแสดงข้อมูลด้านบนซ้ายด้วยว่า TM, LM, LY คือเดือน-ปีอะไร (แบบอัตโนมัติ) เช่น

TM = Feb-21

LM = Jan-21

LY = Feb-20

เท่านั้นยังไม่พอ

ต้องแสดงยอดขายรายวันด้วยว่า แต่ละวันมียอดขายเท่าไร

และต้องแสดงยอดขายของเดือนที่แล้วด้วยว่า ในวันเดียวกันของเดือนที่แล้ว ขายไปกี่บาท

ความยากก็คือ เดือนนี้ (Feb-21) มี 28 วัน

แต่เดือนที่แล้ว (Jan-21) มี 31 วัน

ดังนั้นต้องแสดงข้อมูลวันที่ 29, 30, 31 ของเดือนมกราคมด้วย! (ดังภาพ)

ซึ่งในทางปฏิบัติ มันทำตรง ๆ ไม่ได้

ต้องเล่นแร่แปรธาตุ และเพิ่มขั้นตอนพอควร

เช่น จากภาพ สูตรในการสร้าง Measure LM_Sales คือ

LM_Sales = 
VAR CurrentDay = SELECTEDVALUE(tDayParam[DayParam])
VAR CurrentMYN = SELECTEDVALUE(tDate[MonthYearNum])
VAR MaxDate = CALCULATE(MAX(tOrder[OrderDate]),REMOVEFILTERS())
VAR CurrentDate = 
    DATE(
        SELECTEDVALUE(tDate[Year]),
        SELECTEDVALUE(tDate[MonthNum]),
        CurrentDay
    )
VAR Result =
    IF(
        CurrentDate<=MaxDate,
        IF(
            HASONEVALUE(tDayParam[DayParam]),
            CALCULATE(
                [Sales],
                tDate[MonthYearNum]=CurrentMYN-1,
                tDate[Day]=CurrentDay,
                REMOVEFILTERS(tDate)
            ),
            CALCULATE( 
                [Sales], 
                CALCULATETABLE(
                    DATEADD(tDate[Date],-1,MONTH),
                    tDate[IsDayActual]
                )
            )
        )
    )
RETURN Result 

ใช่, สูตรยากและยาว

ที่มันยาก เพราะต้องคิดเผื่อกรณีแสดงผลลัพธ์ใน Subtotal ให้ถูกต้อง

และต้องคิดเผื่อด้วยว่า ถ้าตอนนี้ TM มีข้อมูลแค่ 10 วัน ก็ต้องแสดงข้อมูล LM แค่ 10 วันด้วยเช่นกัน (ไม่ใช่แสดงทั้งเดือน)

ถ้าต้องการผลลัพธ์แบบนี้ใน Excel บอกเลยว่าง่ายกว่าเยอะ

นี่คือแค่ตัวอย่างเดียว

แต่ในทางปฏิบัติ มีตัวอย่างแบบนี้เป็นร้อย ๆ ซึ่งส่วนใหญ่ต้องแก้ไขด้วยสูตร DAX ทั้งหมด (รวมทั้งการสร้าง Data Model ที่ถูกต้อง)

ดังนั้น ถ้าคิดว่ามี Power BI แล้ว จะย้ายรีพอร์ตที่เคยแสดงใน Excel มาไว้ในนี้ ขอบอกเลยว่าไม่ง่าย

ยกเว้นว่า คุณมี BI Expert ในหน่วยงาน (แต่ BI Expert เก่ง ๆ อาจหายากกว่าเขียนสูตรอีกนะ)

คำแนะนำของผมคือ

ใช้เครื่องมือให้ถูกกับงาน

Power BI คือโปรแกรมที่ถูกออกแบบมาเพื่อสร้างกราฟ ดังนั้น ใช้มันสร้างกราฟเถอะ

ถ้าต้องการตารางที่ซับซ้อน บางทีการแสดงใน Excel อาจเป็นทางที่ดีแล้วก็ได้…

นี่คือมุมมองของผม (ซึ่งอาจจะผิด) คิดเห็นยังไง คอมเมนต์บอกกันหน่อยนะครับ 😊

วิศวกรรีพอร์ต

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

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.