Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 1

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI

ในบทความนี้เดี๋ยวเราจะได้มาลองสร้าง Report ใน Power BI Desktop กันซักทีครับ โดยที่ผมเองเอา Dataset ดั้งเดิม ชื่อ Contoso มาจากที่นี่ (เพราะขี้เกียจทำเอง 555) แต่ว่าเนื่องจากไฟล์มันใหญ่เกินไปปป (มี Transaction ประมาณ 2 ล้านกว่าๆ) ผมเลยคิดว่าคงไม่เหมาะกับการที่จะให้เพื่อนๆ โหลดไฟล์นั้นตรงๆ

สรุปแล้วโหลดไฟล์นี้ไปใช้นะ

ผมก็เลย Random Transaction เอามาแค่ 1 ใน 10 ก็คิดว่าน่าจะพอแล้ว (ประมาณ 2 แสน) และผมก็ตัดคอลัมน์หลายๆ อย่างที่ไม่จำเป็นออกไปด้วย

สรุปแล้วก็โหลดไฟล์ Power BI อันนี้ที่ Google Drive ได้เลย
(หรือถ้าข้างบนไม่ได้ก็โหลดอันนี้ที่ GitHub )

ผมผูก Data Model และเขียนสูตร DAX ที่จำเป็นให้หมดแล้วด้วย

เริ่มต้นที่ผลลัพธ์

ตอนแรกคิดว่าจะสอนให้ทุกท่านทำตั้งแต่ขั้นตอน Get Data แล้วมาทำ Data Model มาเขียน DAX จากนั้นค่อยทำ Report ตาม Step ที่ผมบอกไว้ในบทที่แล้ว

แต่เนื่องจากผมคิดว่าวิธีที่ดีกว่าคือให้ทุกคนได้รู้ก่อนว่าเป้าหมายปลายทางของเราคือแบบไหน (เหมือนหลักการ Begin with the End in Mind ในหนังสือ 7 Habits ไง) ดังนั้นผมจะทำขั้นตอนทุกอย่างให้เสร็จสรรพแล้ว เหลือแต่การสร้าง Visual เท่านั้นที่เราจะมาทำในบทความนี้

เมื่อเราเข้าใจการสร้าง Report ว่ามันทำอะไรได้โดยเบื้องต้นแล้ว หลังจากนั้นค่อยกลับไปทำตั้งแต่ขั้นตอน Get Data กันอีกทีในตอนถัดไปครับ

สรุปคือ เพื่อนๆ อย่าเพิ่งทำของยากอย่าง Query Editor กับ DAX เรามาเรียนของง่ายอย่าง Report กันก่อนดีกว่า จะได้มีกำลังใจนะ 555

ลองเปิดไฟล์ดู

หลังจากเปิดไฟล์มาทุกคนจะเจอหน้า Report ที่ว่างเปล่า แต่ว่ามี Field ที่ใช้งานได้อยู่ด้านขวามือเรียบร้อยแล้ว ดังนี้

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 2

ซึ่งไฟล์นี้ผมได้มีการผูก Data Model ไว้เรียบร้อยหมดแล้วดังนี้ (คลิ๊กที่ icon Model ซ้ายมือเพื่อดู Data Model)

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 3

ซึ่งถ้ายังดูไม่รู้เรื่องก็ไม่เป็นไร ตอนนี้รู้แค่ว่าผมผูกความสัมพันธ์ระหว่างตารางให้หมดแล้ว ดังนั้นเราจะสามารถลาก Field จากตารางอื่นๆ เข้ามาวิเคราะห์ใน Report ได้เลย โดยไม่ต้องมีการ VLOOKUP เหมือนที่เคยทำใน Excel อีกต่อไป

นอกจากนั้นผมยังเขียน Measure ให้หมดแล้ว (ที่เป็น icon รูปเครื่องคิดเลข) ถ้าอยากวิเคราะห์เรื่องไหนก็ลากเรื่องนั้นลง Report ได้เลยเช่นกัน

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 4

ลงมือสร้าง Report แรก

เมื่อ Data Model พร้อม DAX พร้อม งั้นการสร้าง Report ก็ง่ายสุดๆ วิธีการสร้างก็คือเลือกรูปแบบ Visual ที่ต้องการ จากนั้นก็ลาก Field ที่ต้องการจะวิเคราะห์ลงไปเป็น Axis/Category และลาก Measure ที่ต้องการจะวัดลงไปใน Value แค่นั้นก็จบแล้ว

Visual แรก

สมมติอยากทราบยอดขายราย Product Category โดยแสดงเป็นกราฟแท่ง…

เราก็เลือกกราฟแท่งก่อน จากนั้นลาก ProductCategory จากตาราง dProduct ลงมา และลาก TotalSales จากตาราง fSales ลงมา

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 5

สมมติว่าอยากแบ่งสีตามปีที่ขาย ก็ลาก Year จาก dDate ลงมาที่ Legend ก็ได้ (ลากมาที่ Legend คือแบ่งหลายๆ สี)

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 6

เห็นมั้ยว่าตอนนี้เราสามารถสร้างกราฟ โดยใช้ข้อมูลจาก 3 ตาราง ที่มีความสัมพันธ์กันโดยไม่ต้องมีการ VLOOKUP อะไรเลยนะ คือ

  • TotalSales จาก fSales (เป็น DAX Measure ที่คำนวณจาก Data บน fSales)
  • ProductCategory จาก dProduct (เป็น Field ดิบบน dProduct)
  • Year จาก dDate (เป็น DAX New Column = Field บน dDate)

วิธีเปลี่ยนตัวหนังสือให้ใหญ่ขึ้น

ความรู้สึกแรกของผมของการสร้างกราฟใน Power BI คือ ทำไม Font มันตัวเล็กจังฟะ?

ทั้งนี้เป็นเพราะ View ที่เราดูมันถูก Resize ให้ Fit หน้าจอ มันก็เลยย่อลงครับ (ถ้าจะดูแบบขนาดที่แท้จริง ต้องไปที่ View -> Page View -> Actual Size

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 7

แต่ว่าในบางทีเราก็อยากจะดูแบบ Fit to Page นี่แหละ แต่อยากจะขยาย Font ให้ใหญ่ขึ้นอยู่ดี วิธีทำที่ง่ายสุดคือเลือก Visual ที่ต้องการ แล้วไปที่แปรงทาสี แล้ว search คำว่า Text Size เพื่อ Filter option ให้เหลือแค่เรื่อง Text Size จากนั้นค่อยเปลี่ยนขนาดตามต้องการ

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 8

ลองใส่ Visual ที่สองเพื่อลอง Interaction

ที่นี้ให้เราลองสร้าง Visual อีกอัน เป็น Pie Chart ก็ได้ (จริงๆ ผมเกลียด Pie Chart นะ 555) แล้วให้แสดง TotalSales แบ่งโดย ContinentName ที่ลากจาก dStore

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 9

ทีนี้ลองคลิ๊กที่กราฟแท่งเล่นๆ เช่น ผมคลิ๊ก Computer ปี 2013 จะเห็นว่ามันมี Interaction กับกราฟ Pie Chart ด้วย (แบบนี้เรียกว่าการ Highlight)

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 10

ถ้ากดซ้ำไปที่เดิมอีกทีจะเป็นการยกเลิกการเลือก (สีจางๆ ทั้งหมดจะหายไป)

ถ้ากด Ctrl+Click ไปเรื่อยๆ เช่น Ctrl+Click Computer ปี 2012 ด้วย จะเป็นการเพิ่มการเลือก เป็นรวมทั้ง Computer ปี 2012 และ 2013

ทีนี้ผมเลือก Computer และ Camera ทั้งปี 2012 และ 2013 เลย จะเห็นว่าส่วน Highlight ใหญ่ขึ้นตาม

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 11

ถ้าเราอยากให้ Interaction เปลี่ยนจากการ Highlight เป็น Filter แทน ก็สามารถทำได้โดยให้เลือกที่กราฟต้นทางก่อน (คือกราฟแท่ง) แล้วไปที่ Format -> Edit Interactions จากนั้นที่มุมของกราฟปลายทาง (กราฟ pie) ให้เลือกรูปแบบการ Filter ที่มีรูปกรวยแทน

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 12

การทำแบบนี้เป้นการกำหนดว่า เมื่อกดที่กราฟแท่ง จะมี interaction ไปที่กราฟ pie แบบ filter (ซึ่งเรากำหนด interaction แยกกันสำหรับ Visual แต่ละคู่ได้อย่างอิสระ)

Card = Visual แสดงตัวเลขชัดๆ

ทีนี้เราจะสร้าง Visual ที่ง่ายๆ แต่มีประโยชน์อย่าง Card กันครับ ซึ่ง Card เหมาะกับการนำไปแสดงตัวเลขที่มีความสำคัญ เช่น ยอดขาย ต้นทุน กำไร เป็นต้น

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 13

คราวนี้กด + ด้านล่างเพื่อสร้างหน้าใหม่ได้แล้วล่ะ (หน้าเดิมเต็มละ)

Table / Matrix เอาไว้สำหรับคนชอบผลลัพธ์เป็นตาราง

สำหรับคนรัก PivotTable อย่างผม Visual ที่ผมชอบมากที่สุดอันนึงก็คือ Table/Matrix นั่นเอง

มาลองดู Table ก่อน

ให้สร้าง Table โดยใส่ Field ดังรูปลงไปใน Value มันจะสร้างตารางโดยใช้ field เหล่านั้นไปเรื่อยๆ

ผมมองว่า Table เหมือนกับเราใช้ PivotTable โดยมีแค่ Rows กับ Values
โดยเอา Field ไปไว้ที่ Rows (ซ้อนได้เรื่อยๆ) แล้วเอา Measure ลากเข้า Value ของ Pivot เพื่อทำการสรุปข้อมูล

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 14

ถ้าเป็น Matrix ล่ะ?

ถ้าเป็น Matrix มันก็จะคล้ายกับ Pivot Table ที่มีทั้ง Rows Columns และ Values

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 15

โดยที่เราก็ยังสามารถเปลี่ยนตำแหน่งของ Values มาไว้ที่ Rows ได้เช่นเดียวกับ Pivot ใน Excel เลย แต่ใน Power BI เราต้องมาปรับที่เมนูแปรงทาสี ให้ Show on row

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 16

เพื่อนๆ น่าจะเห็นแล้วว่ามันคล้ายกับ Pivot Table มากๆ เลย ดังนั้นคนที่ใช้ Pivot Table เป็นก็น่าจะใช้ Power BI ได้ไม่ยากเนอะ

แล้วตัวเลขที่แสดงบน Visual คำนวณมาจากไหน?

จากที่เคยบอกไปในบทที่ 2 ว่า Pivot Table ใน Excel มีวิธีคำนวณค่าจาก Filter Context ผมก็จะบอกว่าใน Power BI ก็เช่นกันครับ สิ่งที่แสดงอยู่ใน Visual ทุกอย่าง ถูกคำนวณมาจากการที่ Visual ตัวนั้นมีการ Filter ในบริบทที่แตกต่างกัน (Filter Context) นั่นเอง

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 17

อย่างเช่น เลข 109,797,472.43 ที่ผมวงไว้ ก็มาจากการ Filter Product Category ใน เป็น Computers และ Filter Year เป็น 2013 จากนั้นค่อยคำนวณ TotalSales (ที่เคยสอนไว้ว่า Filter ก่อนแล้วค่อยคำนวณ จำได้มะ?)

แต่คราวนี้ถ้าคิดดีๆ มันเป็นการ Filter ข้ามตารางนะ ไม่ได้ Filter ในตาราง fSales ตรงๆ ซะหน่อย!!

การ Filter ที่เกิดขึ้นเป็นแบบนี้ครับ

  • เรา Filter ProductCategory ในตาราง dProduct เป็น Computers
  • เรา Filter Year ในตาราง dDate เป็น 2013

สิ่งที่เกิดขึ้นคือ การ Filter มันวิ่งข้าม Relationship ใน Model มาทำการ Filter ตาราง fSales ของเราด้วย!! ทำให้ผลลัพธ์ที่คำนวณได้มาจากจำนวน Record หรือจำนวนแถวที่ลดลงนั่นเอง

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 18

สังเกตว่าถ้ามองใน Data Model ของเรา ที่เส้น Relationship จะมีลูกศรที่บอกทิศทางของการ Filter ด้วยว่ายอมให้ไปทิศทางไหน

แปลว่าหากเราสั่ง Filter จาก dProduct มันจะมา Filter ข้อมูลบนตาราง fSales ได้ (เพราะทิศทาง Filter ยอมให้ทำ) ซึ่งตรงกับ Visual ของเราที่ใช้ Measure ชื่อ TotalSales ซึ่งสร้างมาจากข้อมูลบนตาราง fSales นั่นเอง ค่าตัวเลขมันจึงเปลี่ยนไปได้

Tips : สำหรับคนที่อยากรู้ว่า TotalSales สูตรคืออะไร สามารถคลิ๊กที่ Measure ได้นะครับ จะเห็นว่าสูตรเป็นแบบนี้

TotalSales = SUMX(fSales,fSales[SalesQuantity]*RELATED(dProduct[UnitPrice]))

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

และถ้าทำการ Filter ย้อนทางจะเกิดอะไรขึ้น?

แต่ถ้าเราดันลาก ข้อมูลมาจากตาราง dStore เช่น EmployeeCount แล้วลากมาสรุปด้วยการ Sum โดยที่ดันลาก Field หลัก มาจากตารางอื่น เช่น Year จาก dDate เราจะเห็นผลลัพธ์แบบนี้

Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI 19

เราจะได้เลขที่ดูซ้ำๆ กันหมดเลย (และเท่ากับตัว Total รวมด้วย) เป็นเพราะว่าการ Filter มันทำงานข้าม Relationship แบบย้อนลูกศรไม่ได้ ก็แปลว่าไม่มีการ Filter เกิดขึ้นนั่นเอง

วันนี้พอก่อนดีกว่า

สำหรับบทความนี้ก็เช่นเคยครับ ใครมีคำถามอะไรก็ถามได้เลยนะ เดี๋ยวตอนหน้าเรามาเล่นเรื่องการ Drill Through และพวก Report Tool Tips กันครับ

สารบัญ Series Power BI

ใครสนใจอยากเรียนเป็นคลิปวีดีโอ ผมมี

Power BI Workshop 2024 ตุลาคมนี้
อบรม In-House Training

Feedback การใช้งาน AI Chatbot