Chào các anh chị em trong diễn đàn,
Mình thường xuyên làm báo cáo trên Power BI và gặp một vấn đề nhỏ là làm sao để trích xuất được thông tin về Ngày trong tuần (Thứ Hai, Thứ Ba,...) và Tuần trong năm (Tuần 1, Tuần 2,...) từ một cột ngày tháng. Các hàm có sẵn trong Power BI như WEEKDAY hay WEEKNUM đôi khi trả về kết quả theo quy ước của hệ thống (ví dụ: Chủ Nhật là ngày đầu tuần), hoặc chỉ trả về số thứ tự tuần chứ không có tên.
Hôm nay, mình muốn chia sẻ một cách đơn giản để tạo ra các trường này một cách tùy chỉnh và dễ đọc hơn, sử dụng DAX. Cách này giúp báo cáo trực quan hơn rất nhiều khi phân tích theo các yếu tố thời gian.
1. Tạo trường 'Ngày Trong Tuần':
Để lấy tên thứ trong tuần, ta có thể dùng hàm FORMAT kết hợp với hàm WEEKDAY. Hàm WEEKDAY sẽ trả về một số từ 1 đến 7, tương ứng với các ngày trong tuần. Tham số thứ hai của WEEKDAY cho phép ta quy định ngày bắt đầu tuần (mặc định là Chủ Nhật = 1).
Giả sử cột ngày tháng của bạn có tên là 'DateTable'[Date]. Bạn có thể tạo một Measure hoặc một Calculated Column với công thức DAX sau:
TenNgayTrongTuan = FORMAT(DateTable[Date],