พื้นฐาน Power Query (ใน Power BI)
Power Query คือที่สำหรับทำความสะอาดและจัดรูปข้อมูล ก่อนที่ข้อมูลจะเข้าสู่ model.
เริ่มอ่านตรงนี้ก่อน
อธิบายแบบง่าย
พื้นฐาน Power Query (ใน Power BI) คือเรื่องที่ช่วยให้เราใช้ทำรายงานและ dashboard จากข้อมูลได้ถูกทางขึ้น
ระดับ
เหมาะกับคนเริ่มต้น
ใช้เมื่อไหร่
คุณต้องการล้างและจัดข้อมูลแบบที่ทำซ้ำได้ก่อนนำไปทำรายงาน
อ่านแล้วทำอะไรต่อ
เลื่อนแถวแรกขึ้นเป็นหัวคอลัมน์ กำหนดชนิดข้อมูลของแต่ละคอลัมน์ ลบคอลัมน์ที่ไม่ใช้ และเปลี่ยนชื่อฟิลด์ ก่อนจะโหลดข้อมูลเข้าไป
เห็นภาพ: ทริคนี้เป็นยังไง
- 1เชื่อมต่อแหล่งข้อมูลเลือกไฟล์ Excel ฐานข้อมูล หรือโฟลเดอร์ แล้วดึงตารางต้นทางเข้ามา
- 2เลื่อนหัวคอลัมน์ใช้แถวแรกเป็นชื่อคอลัมน์ (Promote Headers) ให้ข้อมูลอ่านง่าย
- 3กำหนดชนิดข้อมูลตั้งวันที่ ตัวเลข ข้อความให้ถูกชนิด ป้องกันการคำนวณเพี้ยนภายหลัง
- 4ลบคอลัมน์ที่ไม่ใช้เอาเฉพาะคอลัมน์ที่ต้องใช้ ลดขนาดโมเดลให้เบา
- 5กรองและจัดข้อมูลกรองแถวเสีย ลบแถวว่าง รวมหรือต่อตารางถ้าต้องการ
- 6โหลดเข้าโมเดลกด Close & Apply เพื่อส่งตารางที่สะอาดแล้วเข้าโมเดลข้อมูล
▶ เล่นอัตโนมัติ · ชี้เมาส์เพื่อหยุด · กดแถบด้านบนเพื่อข้ามขั้น
ใช้ตอนไหน?
- คุณต้องการล้างและจัดข้อมูลแบบที่ทำซ้ำได้ก่อนนำไปทำรายงาน
- คุณต้องการรวม (merge) หรือต่อท้าย (append) ข้อมูลจากหลายแหล่ง
- คุณต้องการลดความซับซ้อนของโมเดลก่อนจะไปเขียน DAX (ภาษาสูตรของ Power BI)
ถ้าเทียบกับ Excel
กล่องนี้ช่วยแปลคำ Power BI ให้โยงกับงาน Excel ที่คุ้นอยู่แล้ว.
ใน Excel
เหมือนตอนจัดตารางใน Excel: ลบคอลัมน์เกิน, เปลี่ยนชื่อหัวตาราง, รวมไฟล์, แก้ type วันที่
ใน Power BI
Power Query เก็บขั้นตอนเหล่านั้นไว้เป็น recipe พอ refresh ครั้งหน้า ระบบทำซ้ำให้เอง
จำแค่นี้ก่อน
ถ้าเป็นงานทำความสะอาดข้อมูล ให้เริ่มที่ Power Query ก่อน อย่ารีบแก้ด้วย DAX
ต่อไปทำอะไร
ต่อไปให้ดู Star Schema เพื่อจัดตารางให้สูตรและ report เข้าใจง่าย
ความหมาย
Power Query ใช้เชื่อมต่อกับแหล่งข้อมูล แล้วทำขั้นตอนแปลงข้อมูลเรียงตามลำดับ เช่น กรองข้อมูล รวมตาราง ต่อท้ายตาราง เปลี่ยนชื่อคอลัมน์ กำหนดชนิดข้อมูล และสร้างคอลัมน์คำนวณ
หน้าตาของขั้นตอนภาษา M
ขั้นตอนที่ Power Query สร้างให้คือนิพจน์ของภาษา M ส่วนใหญ่จะเป็นบล็อก let ที่คืนค่าขั้นตอนสุดท้ายออกมา
let
Source = Excel.Workbook(File.Contents("sales.xlsx")),
Sales = Source{[Item="Sales", Kind="Sheet"]}[Data],
PromotedHeaders = Table.PromoteHeaders(Sales)
in
PromotedHeadersตัวอย่างการใช้
ล้างตารางต้นทาง
เลื่อนแถวแรกขึ้นเป็นหัวคอลัมน์ กำหนดชนิดข้อมูลของแต่ละคอลัมน์ ลบคอลัมน์ที่ไม่ใช้ และเปลี่ยนชื่อฟิลด์ ก่อนจะโหลดข้อมูลเข้าไป