Ngôn Ngữ M Trong Power Query: Viết Công Thức Biến Đổi Dữ Liệu Nâng Cao
Chia sẻ
"Giới thiệu ngôn ngữ M (Power Query Formula Language) — cú pháp let...in, hàm xử lý text, number, date, table — giúp bạn tuỳ biến data transformation vượt qua giới hạn giao diện."
1. Ngôn Ngữ M Là Gì?
Ngôn ngữ M (viết tắt của Mashup) là ngôn ngữ lập trình phía sau mỗi bước trong Power Query. Khi bạn click chuột để thêm bước biến đổi dữ liệu, Power Query tự động sinh code M tương ứng.
Hiểu M giúp bạn:
Viết các bước xử lý mà giao diện không hỗ trợ
Debug lỗi nhanh hơn khi hiểu logic bên dưới
Tạo Custom Functions tái sử dụng
Xử lý dynamic data sources
2. Cấu Trúc let...in
Mọi query trong Power Query đều theo cấu trúc:
let
Buoc1 = ...,
Buoc2 = ...,
Buoc3 = ...
in
Buoc3Ví dụ thực tế — đọc file CSV và lọc dữ liệu:
let
Source = Csv.Document(File.Contents("C:\Data\sales.csv")),
PromotedHeaders = Table.PromoteHeaders(Source),
ChangedTypes = Table.TransformColumnTypes(PromotedHeaders, {{"Amount", type number}}),
FilteredRows = Table.SelectRows(ChangedTypes, each [Amount] > 1000000)
in
FilteredRows3. Các Hàm M Hay Dùng
3.1. Xử lý Text
Hàm | Mô tả | Ví dụ |
|---|---|---|
Text.Upper | Chuyển thành chữ HOA | Text.Upper("hello") → HELLO |
Text.Contains | Kiểm tra chứa chuỗi con | Text.Contains("abc", "b") → true |
Text.Split | Tách chuỗi | Text.Split("a-b-c", "-") → {a, b, c} |
Text.Combine | Nối danh sách thành chuỗi | Text.Combine({"A","B"}, "-") → A-B |
3.2. Xử lý Table
Hàm | Mô tả |
|---|---|
Table.AddColumn | Thêm cột mới với công thức |
Table.SelectRows | Lọc dòng theo điều kiện |
Table.Group | Nhóm dữ liệu (tương tự GROUP BY) |
Table.Pivot / Table.Unpivot | Chuyển đổi dạng bảng |
4. Custom Function
Bạn có thể viết hàm riêng trong M để tái sử dụng:
// Hàm tính thuế TNCN
let
TinhThue = (luong as number) as number =>
if luong <= 5000000 then luong * 0.05
else if luong <= 10000000 then luong * 0.1
else if luong <= 18000000 then luong * 0.15
else luong * 0.2
in
TinhThue5. Kết Luận
Ngôn ngữ M mở ra khả năng biến đổi dữ liệu vượt xa giới hạn của giao diện kéo thả. Đầu tư thời gian học M sẽ giúp bạn xử lý mọi tình huống data transformation phức tạp nhất.
📥 Tải File Demo
📥 Tải file demo: m-language-demo.xlsx
📎 File đính kèm bài viết — chứa đầy đủ dữ liệu mẫu
Mục lục
Muốn làm chủ Power Query?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề

Power Query Thực Chiến: 7 Bài Toán Thực Tế Từ Gộp File Đến ETL Tự Động
Giải quyết 7 bài toán thực tế bằng Power Query: gộp nhiều file Excel, unpivot bảng chéo, merge dữ liệu từ nhiều nguồn, xử lý ngày tháng lỗi, tách cột phức tạp, ETL tự động và parameter query.
M Language Nâng Cao: Custom Functions, Error Handling Và Recursion Trong Power Query
Viết Custom Function, xử lý lỗi Try-Otherwise, và thậm chí Recursion trong M Language — nâng Power Query lên level pro cho Data Analyst.
Pivot Và Unpivot Trong Power Query: Chuyển Đổi Cấu Trúc Dữ Liệu Dễ Dàng
Hướng dẫn dùng Pivot Column và Unpivot Columns trong Power Query để chuyển đổi dữ liệu từ dạng ngang sang dọc và ngược lại — kỹ thuật quan trọng cho Data Analyst.
