เอาล่ะ ในที่สุดก็ถึงเวลาที่จะเรียนรู้การดึง Data เข้า Power BI ด้วยเครื่องมือ Get Data/Transform Data หรือก็คือ Power Query นั่นเอง (ใครได้อ่านหนังสือ Excel Power Up! มาก็น่าจะเข้าใจได้เร็วกว่านะครับ เพราะมันคือตัวเดียวกันเลย)
ซึ่งในบทความนี้ผมมีไฟล์ Data ให้โหลดเป็นไฟล์ zip 1 อัน
(โหลดจาก Google Drive / โหลดจาก GitHub)
ซึ่งถ้าแตกออกมาจะมี Folder อยู่ 1 อันชื่อว่า Contoso
- ในนั้นจะมีไฟล์ Excel 1 ไฟล์ที่มีหลาย sheet โดยแต่ละ Sheet คือตาราง Reference ทั้งหมดที่ต้องใช้
- และมีไฟล์ CSV อยู่ 3 ไฟล์ เป็นข้อมูล Transaction 3 ปี (ไฟล์ละปี)
ไอเดียหลักคือเดี๋ยวเราจะเอา Data ทั้งหมดเข้า Power Query โดยตาราง Reference ใน Excel จะเอาเข้าแยกเป็นคนละ Query กันทั้งหมด
ส่วนไฟล์ CSV เราจะเอาเข้าโดย Get Data from Folder เพราะเผื่อในอนาคตมีไฟล์ CSV เพิ่มอีกจะได้กด Refresh เพื่อดูดจาก Folder ได้เลย
สารบัญ
เริ่มดึงตาราง Reference จากไฟล์ Excel
ให้เปิด Power BI เเปล่าๆ แล้ว Get Data จาก Excel ชื่อ RefTable.xlsx ได้เลย
จากนั้นติ๊กเลือกทุก Sheet แล้วกด Transform ได้เลย (การเลือกติ๊กถูกข้างหน้าหลายอันพร้อมกัน แปลว่า เอาแต่ละอันแยกกันเป็นคนละ Query รายละเอียดลองอ่านได้ที่นี่)
แล้วมันก็จะเปิด Query Editor ขึ้นมา เราก็จะเห็นว่ามี Query จากทุกๆ ตารางเรียบร้อยแล้ว (แยกตารางละ 1 Query) และเราจะพบว่ามันจัดการเรื่อง Header ให้เราเสร็จแล้ว ไม่มีปัญหาอะไร
ทั้งนี้เพราะว่าในแต่ละ Sheet มีตารางอยู่อันเดียว และตารางบรรทัดบนสุดเป็นหัวตารางเรียบร้อย จึงไม่จำเป็นต้องทำเป็น Table ก็สามารถดึงมาใช้ได้โดยไม่ยากลำบากนัก
ใครทำกับข้อมูลจริงของตัวเองแล้วยากลำบาก ต้องลองอ่านบทความการดึงข้อมูลจาก Excel อันนี้ดู จะได้เข้าใจว่าการดึงข้อมูลจาก Excel ทำงานยังไง
เริ่มดึงตาราง Transaction หลัก
ต่อไปเราจะเริ่มดึงข้อมูลจากตาราง Transaction หลัก (จากไฟล์ CSV ทั้งหมดใน Folder Contoso) โดยขณะอยู่ใน Query Editor ก็กดที่ New Source -> More -> Folder ได้เลย
จากนั้นให้ Browse เลือก Folder Contoso ที่ผมเตรียมไว้ให้ แล้วกด Transform Data จะได้แบบนี้ ซึ่งมันได้ List ไฟล์ทุกอันที่อยู่ Folder นั้น (และ Sub Folder ถ้ามี) มาให้แล้ว
สิ่งที่เราต้องการเอามารวม มีแค่ไฟล์ CSV เท่านั้น ดังนั้นเราต้องทำการ Filter เลือก Extension แค่ .csv เท่านั้น (สังเกตที่สูตรด้วยว่า มันเอานามสกุล .csv ถ้าใครไม่เห็นสูตร ให้ไปที่ View-> Formula Bar นะ)
หลังจาก Filter แล้วให้กดปุ่ม Combine ที่มุมคอลัมน์ Content ดังรูป เพื่อสั่งให้มันรวมทุกไฟล์เข้าด้วยกัน
ถ้าดู Preview แล้วไม่มีปัญหาอะไรก็กด ok ได้เลย และนี่คือหน้าตาผลลัพธ์ที่ออกมา (ถ้าของจริงที่มีข้อความภาษาไทยด้วย ต้องระวังเรื่อง encoding ดีๆนะ)
Tips : การรวมทุกไฟล์ใน Folder เข้าด้วยกัน มันจะทำตาม Step ที่ระบุใน Transform Sample File ด้านซ้ายมือ หากเราไปแก้ Step ในนั้น ผลลัพธ์สุดท้ายก็จะเปลี่ยนไปด้วย
ตรงคอลัมน์ DateKey จะเห็นว่ามันยังเป็น text อยู่ ไม่ใช่วันที่ เดี๋ยวเราจะทำการเปลี่ยนให้เป็นวันที่ซะ โดยกด Using Locale… เพื่อระบุรูปแบบวันที่ของไฟล์ input แบบเป๊ะๆ จะได้ไม่พลาด (ถ้าเดิมไม่ใช่ Text จะกด Using locale ไม่ได้ผลนะ ถ้าของเดิมถูกเปลี่ยนเป็นวันที่ไปแล้วแต่ผิดรูปแบบ ให้ปรับกลับเป็น Text โดย Replace Current Step ก่อน)
ถ้าลองสำรวจดูจะพบว่าไฟล์ csv นี้บันทึกวันที่เป็น text มาในรูปแบบ dd/mm/yyyy ค.ศ. ดังนั้นต้องเลือกเป็น Date แบบ English (United Kingdom) ประเทศอังกฤษนะ ไม่ใช่อเมริกา
จากนั้นผลลัพธ์จะแปลงเป็นวันที่ได้ถูกต้อง (แต่จะเห็น Format ของวันที่ใน Query Editor ตามที่ตั้งใน Control Panel ซึ่งแต่ละคนอาจไม่เหมือนกัน ของผมตั้งเป็น Thai เลยออกมาเป็น พ.ศ.)
ทีนี้เราไม่ต้องการคอลัมน์ Source.Name แล้วก็ลบทิ้งไปซะ
และเปลี่ยนชื่อ Query เป็น fSales ด้วย (ชื่อ Query จะกลายเป็นชื่อ Table ใน Data Model นะ)
เอาข้อมูลเข้า Data Model
ตอนนี้เราได้ข้อมูลครบทุก Table ที่จำเป้นแล้ว ก็สามารถกด Close & Apply เพื่อเอาตารางทั้งหมดเข้าสู่ Data Model ซะที
คราวนี้ให้ลองกดไปที่หน้า Model เราก็จะเห็นว่า Power BI มันสร้างความสัมพันธ์ให้เราเองเลย (ทั้งนี้เพราะว่าชื่อ Field ที่เป็น Key เชื่อมตารางแต่ละคู่นั้นใช้ชื่อ Field เดียวกัน)
ใครที่ตารางดูเละเทะ ดูไม่รู้เรื่อง ให้ลองกดปุ่ม Reset Layout ด้านขวาล่างดูครับ
เอาล่ะ ตารางพวกนี้ก็เข้าไปใน Data Model ครบหมดแล้ว ในตอนนี้ก็ขอจบเพียงเท่านี้ก่อนนะครับ
เตรียมตัวจัดหน้าตา Data Model ในตอนหน้า
ในตอนหน้า เราจะมาทำความเข้าใจเพิ่มเติมว่า Data Model ที่ดีที่สุดใน Power BI จะต้องเป็นรูปแบบใด และเราจะใช้ Power Query ช่วยจัดหน้าตาของตาราง ให้มาอยู่ในรูปแบบของ Data Model ที่ต้องการได้ยังไง?
สำหรับตอนนี้ใครทำแล้วติดตรงไหนก็ถามได้เลยนะครับ
สารบัญ Series Power BI
- POWER BI ตอนที่ 01: POWER BI คืออะไร?
- POWER BI ตอนที่ 02: พื้นฐาน EXCEL ที่สำคัญก่อนจะเรียนรู้ POWER BI
- POWER BI ตอนที่ 03: ภาพรวมการใช้งาน POWER BI DESKTOP
- POWER BI ตอนที่ 04: สร้าง REPORT แรก ใน POWER BI
- POWER BI ตอนที่ 05: วิธีการ DRILL เพื่อเจาะลึกข้อมูลใน REPORT
- POWER BI ตอนที่ 06: การปรับแต่งสีใน VISUAL ด้วย CONDITIONAL FORMAT
- POWER BI ตอนที่ 07: เริ่ม GET DATA ตั้งแต่ไฟล์ยังว่างเปล่า
- POWER BI ตอนที่ 08: สร้าง DATA MODEL ที่เหมาะสม
- POWER BI ตอนที่ 09: สร้าง DATE TABLE ด้วย DAX
- POWER BI ตอนที่ 10: เรียนรู้ DAX เบื้องต้น
- POWER BI ตอนที่ 11: เรียนรู้ DAX Table Function – FILTER
- POWER BI ตอนที่ 12: DISTINCT, VALUES, ALL และผองเพื่อน
- POWER BI ตอนที่ 13: CALCULATE ฟังก์ชันที่ทรงพลังที่สุดใน DAX
- Power BI ตอนที่ 14: Context Transition และ พลังแฝงใน Measure
- Power BI ตอนที่ 15: วิธีดึงค่าจาก Slicer มาคำนวณใน Report
- Power BI ตอนที่ 16 : เดินทางข้ามเวลาไปกับ Time Intelligence DAX Function
- Power BI ตอนที่ 17 : วิธีทำรายงานเทียบเป้าหมาย Target vs Actual
- Power BI ตอนที่ 18 : วิธีการกระจายเป้า Allocate Target ด้วย DAX
- Power BI ตอนที่ 19 : การปรับ Cross Filter Direction เพื่อคำนวณค่าในตาราง Dimension
- ส่วนเสริม
- การคำนวณต้นทุนแบบ FIFO ด้วย DAX
- แสดงข้อมูลสรุปแบบ Top N + Others (ฉบับเทพเอ็กเซล)
- การวิเคราะห์ Event ที่มีช่วงเวลาเริ่มต้นกับสิ้นสุดคนละวัน
- เปรียบเทียบ MAX vs LASTDATE ในภาษา DAX
ใครสนใจอยากเรียนเป็นคลิปวีดีโอ ผมมี