Parameter trong Power Query là một giá trị đầu vào được đặt tên để bạn dùng lại trong truy vấn, chẳng hạn ngày bắt đầu, ngày kết thúc hoặc đường dẫn thư mục. Bạn tạo tham số trong Manage Parameters, tham chiếu tên đó trong bước xử lý, rồi làm mới dữ liệu sau khi đổi giá trị.
Cách này giúp bàn giao báo cáo tháng dễ hơn: người nhận chỉ sửa vài thông số thay vì tìm chuỗi ngày hoặc đường dẫn nằm rải rác trong mã M. Bài hướng dẫn dùng dữ liệu bán hàng giả lập, có kết quả đối chiếu để bạn tự kiểm tra trên Excel hoặc Power BI Desktop.
Khi nào bạn nên tạo parameter?
Hãy dùng tham số khi một giá trị có khả năng thay đổi nhưng quy trình xử lý vẫn giữ nguyên. Ví dụ, mỗi tháng kế toán lấy cùng bảng bán hàng, chỉ đổi kỳ báo cáo. Một tình huống khác là chuyển bộ file nguồn từ máy người làm sang thư mục dùng chung của phòng.
Tham số cũng hữu ích khi nhiều truy vấn dùng chung một đầu vào. Nếu năm bảng cùng đọc một thư mục, quản lý đường dẫn tại một nơi sẽ dễ kiểm soát hơn sửa năm bước Source. Tuy vậy, đổi đường dẫn không tự giải quyết được việc các file mới thiếu cột hoặc khác tên Table.
- Dùng kiểu Date cho mốc ngày, Text cho đường dẫn và Whole Number cho số nguyên.
- Đặt tên thể hiện mục đích như pTuNgay, pDenNgay, pThuMuc.
- Ghi rõ đơn vị và quy ước biên ngày trong Description để người nhận không phải đoán.
Cách tạo parameter trong Power Query Editor
Trong Power BI Desktop, mở Transform data. Trong Excel có Power Query, mở truy vấn từ Queries & Connections để vào trình soạn thảo. Những bước dưới đây thực hiện bên trong Power Query Editor; vị trí và tên nút có thể khác đôi chút theo ngôn ngữ giao diện.
- Chọn Home, mở Manage Parameters rồi chọn New Parameter.
- Nhập Name là pTuNgay và Description là “Ngày đầu kỳ, có lấy ngày này”.
- Chọn Type là Date, Suggested Values là Any value.
- Đặt Current Value là ngày 01/09/2026, kiểm tra đúng thứ tự ngày tháng của máy rồi xác nhận.
- Tạo tiếp pDenNgay, kiểu Date, giá trị ngày 01/10/2026, mô tả “Ngày đầu kỳ kế tiếp, không lấy ngày này”.
Current Value là giá trị đang được truy vấn sử dụng. Khi chọn List of values, Default Value là giá trị mặc định của danh sách, còn Current Value vẫn là đầu vào hiện tại. Theo tài liệu Parameters của Microsoft, danh sách gợi ý không phải hàng rào kiểm tra bắt buộc: bạn vẫn có thể nhập giá trị khác. Vì thế, đừng dùng danh sách này thay cho quy tắc kiểm tra dữ liệu.
Ví dụ: lọc doanh thu theo khoảng ngày
Quy ước trong ví dụ là lấy ngày bắt đầu và loại ngày kết thúc: Ngay lớn hơn hoặc bằng pTuNgay, đồng thời nhỏ hơn pDenNgay. Cách viết này giúp hai kỳ liền nhau không chồng lấn. Với cột DateTime, bạn cần đồng bộ kiểu trước khi so sánh; ví dụ dưới đây chủ động dùng Date để dễ thực hành.

Tạo Blank Query, mở Advanced Editor rồi dán toàn bộ đoạn sau. Đoạn mã tự chứa cả dữ liệu và hai biến ngày nên chạy độc lập, chưa cần các parameter đã tạo bằng giao diện. Số tiền dùng đơn vị đồng Việt Nam.
let
pTuNgay = #date(2026, 9, 1),
pDenNgay = #date(2026, 10, 1),
Nguon = #table(
type table [Ngay = date, CuaHang = text, DoanhThu = number],
{
{#date(2026, 8, 31), "Hà Nội", 900000},
{#date(2026, 9, 1), "Hà Nội", 1200000},
{#date(2026, 9, 15), "Đà Nẵng", 1800000},
{#date(2026, 9, 30), "Hà Nội", 500000},
{#date(2026, 10, 1), "Đà Nẵng", 2000000}
}
),
KetQua =
if pTuNgay >= pDenNgay then
error "Ngày bắt đầu phải nhỏ hơn ngày kết thúc."
else
Table.SelectRows(
Nguon,
each [Ngay] >= pTuNgay and [Ngay] < pDenNgay
)
in
KetQua
Kết quả phải có ba dòng trong tháng 9, tổng doanh thu 3.500.000 đồng. Dòng 31/08 và dòng 01/10 bị loại. Đây là hai dòng biên để kiểm tra điều kiện, không phải dữ liệu thừa nên bỏ khỏi bài tập.
Muốn sử dụng hai parameter đã tạo trong Manage Parameters, xóa đúng hai dòng khai báo pTuNgay và pDenNgay ở đầu đoạn mã. Giữ nguyên Nguon và các bước sau đó. Nếu vẫn giữ biến cục bộ, chúng sẽ che tên tham số bên ngoài: bạn đổi Current Value nhưng kết quả vẫn theo ngày ghi trong mã.
Sau khi lọc đúng, bạn có thể áp dụng Group By theo cửa hàng và tháng để tổng hợp riêng. Nên kiểm tra số dòng và tổng tiền trước khi nhóm; bảng tổng hợp thường làm lỗi ngày khó nhìn thấy hơn.
Dùng parameter để đổi thư mục nguồn
Tạo pThuMuc với Type là Text và Current Value là một đường dẫn thư mục tồn tại trên máy, ví dụ C:\BaoCao\BanHang. Trong một Blank Query khác, dùng đoạn sau để liệt kê các file Excel. Đoạn này phụ thuộc vào tham số pThuMuc và thư mục thật, khác với ví dụ tự chứa ở trên.
let
Nguon = Folder.Files(pThuMuc),
ChiExcel = Table.SelectRows(
Nguon,
each Text.Lower([Extension]) = ".xlsx"
and not Text.StartsWith([Name], "~$")
)
in
ChiExcel
Viết Folder.Files(pThuMuc), không viết Folder.Files("pThuMuc"). Có dấu ngoặc kép nghĩa là bạn đang truyền nguyên văn chuỗi pThuMuc làm đường dẫn. Lưu ý Folder.Files còn đọc cả thư mục con; nếu vùng nguồn có bản lưu cũ, bạn cần lọc Folder Path hoặc tổ chức lại thư mục.
Kết quả hiện tại mới là danh sách file, chưa phải bảng doanh thu đã ghép. Bạn tiếp tục Combine theo hướng dẫn gộp nhiều file Excel bằng Power Query. Hãy đặt file kết quả ngoài thư mục nguồn, giữ tên Table nhất quán và thử đổi pThuMuc sang một thư mục kiểm thử trước khi bàn giao.
Đổi tham số rồi Refresh: kiểm tra ở đâu?
Sau khi đổi Current Value, xem lại bản xem trước trong trình soạn thảo. Với Power BI Desktop, chọn Close & Apply và làm mới khi cần để dữ liệu trong mô hình phản ánh thay đổi. Với Excel, chọn Close & Load, sau đó dùng Refresh hoặc Refresh All cho truy vấn đã tải. Đừng chỉ nhìn bản xem trước rồi kết luận bảng người dùng đang xem đã cập nhật.

Trong bài tập, đổi khoảng ngày sang từ 01/10/2026 đến trước 01/11/2026. Kết quả đúng là một dòng, doanh thu 2.000.000 đồng. Sau đó thử đặt ngày bắt đầu bằng ngày kết thúc: truy vấn phải báo lỗi đã định nghĩa. Hai phép thử này xác nhận cả đường chạy bình thường lẫn đầu vào không hợp lệ.
- Đối chiếu ngày nhỏ nhất, ngày lớn nhất và tổng doanh thu sau mỗi lần đổi kỳ.
- Kiểm tra kiểu cột Ngay; ngày đang là text cần chuyển kiểu theo đúng locale của nguồn.
- Nếu đổi thư mục gây lỗi truy cập, kiểm tra quyền đọc, đường dẫn và thông tin xác thực nguồn.
- Ghi lại giá trị tham số dùng khi nghiệm thu để có thể tái hiện kết quả.
Khi đưa báo cáo lên Power BI Service, đường dẫn ổ đĩa trên máy cá nhân không tự trở thành nguồn mà dịch vụ truy cập được. Bạn cần cấu hình nguồn và gateway phù hợp nếu sử dụng dữ liệu tại chỗ. Đổi parameter chỉ thay đầu vào, không cấp quyền đọc dữ liệu.
Câu hỏi thường gặp
Parameter có giống slicer không?
Tham số Power Query thông thường được dùng trong quá trình truy vấn và làm mới dữ liệu; slicer lọc dữ liệu khi người xem tương tác với báo cáo. Nếu cần chọn tháng ngay trên trang báo cáo Import, thường nên dùng slicer trên bảng ngày, thay vì bắt người xem đổi parameter.
Có thể nối slicer với parameter không?
Microsoft có tính năng Dynamic M query parameters cho các nguồn DirectQuery được hỗ trợ. Đây là cấu hình riêng với điều kiện sử dụng cụ thể, không phải hành vi mặc định của mọi parameter hay mọi nguồn dữ liệu.
Vì sao đổi parameter mà dữ liệu không đổi?
Kiểm tra bước lọc có thực sự tham chiếu tên tham số hay vẫn chứa giá trị cố định. Tiếp theo, tìm biến cục bộ trùng tên, xem lại Current Value và làm mới bảng đã tải. Một khoảng ngày mới không có giao dịch cũng có thể tạo bảng rỗng hoàn toàn hợp lệ.
Có nên lưu mật khẩu trong parameter?
Không nên dùng tham số như nơi lưu bí mật. Người có quyền xem hoặc sửa truy vấn có thể đọc cấu hình liên quan. Hãy quản lý thông tin xác thực bằng cơ chế của nguồn dữ liệu và môi trường triển khai, đồng thời giới hạn quyền truy cập phù hợp.
Nếu bạn cần người thiết kế quy trình báo cáo có tham số, kiểm tra số liệu và hướng dẫn bàn giao, hãy xem báo giá làm Power BI trên SenData. Chuẩn bị một file dữ liệu mẫu đã ẩn thông tin nhạy cảm cùng quy tắc kỳ báo cáo sẽ giúp trao đổi yêu cầu rõ hơn.
Sẵn sàng xây dựng dashboard Power BI?
Kết nối với freelancer Power BI phù hợp, xem báo cáo nhúng ngay trên trình duyệt và tải file .pbix về sau khi thanh toán.
Đào Ngọc Tú
Cộng tác viên chuyên gia tại SenData. Chia sẻ kiến thức về phát triển Power BI, trực quan hóa dữ liệu và best practice business intelligence.

