ภาษา M ใน Power Query
ภาษา M ใน Power Query
ภาษา M (M Language) คืออะไร
ภาษา M (M Language) คือภาษาสคริปต์ที่ทำงานในหลังฉากเมื่อเราสร้างสูตรด้วย Power Query ใน Power BI และ Excel ถูกสร้างโดย Microsoft หน้าที่หลักของภาษา M คือการแปลงข้อมูล (Data Transformation) การ ETL (Extract Transform Load) มีความสามารถในการ นำข้อมูลจากแหล่งต่าง ๆ มาจัดการทำให้ข้อมูลต่าง ๆ นั้น เพื่อเตรียมข้อมูลให้พร้อมที่จะนำไปใช้ในการวิเคราะห์ข้อมูลต่อไป
ความสามารถของ Power Query
- การสกัดข้อมูล (Extract Data)
- การรวมข้อมูล (Combine Data)
- การแปลงข้อมูล (Data Transformation)
- การชำระข้อมูล (Data Cleansing)
- การกรองข้อมูลที่ต้องการ (Data Filtering)
- การลบข้อมูลที่ไม่ต้องการออก และจัดทรงข้อมูลเพื่อนำไปวิเคราะห์ (Data Shaping)
โดยเครื่องมือที่ช่วยในการทำงานในส่วนนี้เราเรียกว่า Power Query ซึ่งจะช่วยในการสร้างภาษา M ให้เราผ่าน UI (User Interface) ที่เข้าใจได้ง่าย ๆ โดยจะทำอย่างเป็นขบวนการทีละขั้นตอน คล้ายกับการสร้าง Macro ของ Excel คือจะบันทึกขั้นตอนที่เรากำหนด โดยที่
- ขั้นตอนปัจจุบันจะทำงานกับข้อมูลที่ถูกเปลี่ยนแปลงจากขั้นตอนก่อนหน้า และ
- ขั้นตอนต่อไปจะแปลงข้อมูลให้แตกต่างไปจากกระบวนการปัจจุบันมากยิ่งขึ้นไปอีก
ภาษา M เขียนได้ที่ใด
การเขียนสคริปต์ภาษา M จะยืดหยุ่นกว่าการใช้ Power Query ที่ใช้ UI เพราะสามารถป้อนพิมพ์โค้ดได้อย่างพลิกแพลงหลากหลายกว่าโค้ดที่ได้จากการเลือกเมนูคำสั่งและตัวเลือกต่าง ๆ
- ในโปรแกรม Excel 2016, 2019 ขึ้นไป ท่านสามารถป้อนคำสั่งภาษา M ใน Power Query Editor หรือที่แถบ Formular Bar ได้โดยตรงก็สามารถทำได้
- ส่วนในโปรแกรม Power BI Desktop ป้อนได้ที่ Power Query Editor จากนั้นสามารถสั่งให้ทำงานที่ละขั้น เมื่อทำครบเสร็จแล้ว ท่านอาจจะทดลองยกเลิกขั้นตอนย้อนหลังไปทีละขั้นเพื่อตรวจสอบการทำงานของโค้ดก็ได้
ตัวอย่างการเข้าไปยังหน้าต่างของ Power Query Editor ใน Power BI Desktop ทำได้โดย
- คลิกที่ป้าย Home
- คลิกที่คำสั่ง Transform data
จะปรากฏหน้าต่างของ Power Query Editor หากต้องการเข้าไปดู แก้ไข หรือ ปรับแต่ง สามารถทำได้โดย
- คลิกขวาที่ Query ที่ต้องการ
- เลือกคำสั่ง Advanced Editor
จะปรากฏหน้าต่างของ Advanced Editor ซึ่งเราสามารถทำการเขียน M ได้ที่บริเวณนี้
หน้าต่างของ Power Query Editor ซึ่งเราสามารถทำการเขียน แก้ไข ปรับแต่ง ภาษา M ได้ที่นี่ ได้เลย
กรุณาอย่าสับสนระหว่างภาษา M กับภาษา DAX เพราะเป็นคนละภาษาที่ไม่มีอะไรเกี่ยวข้องกัน ซึ่งสามารถดูบทความเรื่อง DAX (Data Analysis Expression) ได้ที่นี่ พร้อมดู DAX ในรูปแบบ Infographic
ลักษณะของภาษา M
ภาษา M มีลักษณะเป็นภาษาคอมพิวเตอร์เต็มรูปแบบ ลักษณะคล้ายภาษา F# เช่น
- M เป็นภาษาเชิงฟังก์ชัน (functional programming language)
- คำสั่งเป็นตัวอักษรเล็กทั้งหมด
- การประกาศตัวแปรสามารถทำได้โดยไม่ต้องกำหนดชนิดข้อมูล ตัวแปรมีลักษณะพลวัตคือเปลี่ยน Data Type ไปมาได้ มีประเภท Data Type พื้นฐานคือ Whole Number, Decimal, Text, Boolean, Date, DateTime และ null มีประเภทแบบเก็บข้อมูลเป็นชุดลายแบบ เช่น list, record และ table
- ลักษณะของฟังก์ชันจะเหมือนฟังก์ชันทางคณิตศาสตร์ ไม่ใช่ฟังก์ชันที่เป็นโปรแกรมย่อยอย่างในภาษา C
ข้อควรระวัง
ข้อควรระวังคือภาษา M มีภาวะอ่อนไหวต่อตัวอักษรเล็กใหญ่ (Case Sensitive) โดยที่ตัวอักษร a ไม่เหมือน A ดังนั้นต้องระมัดระวังในการใช้งานให้ดี และ หากใน Power Query Editor จะมีตัวช่วยได้แก่ popup menu ให้เลือก เพื่อเรียกใช้ Function หรือ กำหนด Data Type ต่าง ๆ โดยต้องเลือกให้ถูกต้อง
แนะนำหลักสูตร
- Microsoft Excel Power Query (2 วัน)
- Power BI Advanced Power Query (2 วัน)