Chào mọi người,
Dạo này mình đang làm báo cáo trên Power BI và gặp một vấn đề nhỏ là làm sao để đếm chính xác số ngày làm việc (không tính cuối tuần) giữa hai ngày cho trước. Mình đã thử tìm trên mạng và áp dụng một vài cách, hôm nay xin chia sẻ một Measure khá đơn giản và hiệu quả mà mình thấy hữu ích.
Giả sử bạn có hai cột ngày là StartDate và EndDate trong bảng của mình.
Measure này sẽ tính số ngày làm việc:
WorkingDays =
VAR StartDate = MIN(YourTable[StartDate])
VAR EndDate = MAX(YourTable[EndDate])
VAR TotalDays = DATEDIFF(StartDate, EndDate, DAY) + 1
VAR Weekends = INT(TotalDays / 7) * 2
VAR RemainingDays = MOD(TotalDays, 7)
VAR WeekendDaysInRemaining =
IF(WEEKDAY(StartDate, 2) + RemainingDays > 5,
IF(WEEKDAY(StartDate, 2) = 6, 2, 1),
0
)
RETURN
TotalDays - Weekends - WeekendDaysInRemaining
Giải thích sơ bộ:
- Chúng ta tính tổng số ngày chênh lệch.
- Trừ đi số ngày cuối tuần dựa trên số tuần đầy đủ.
- Xử lý các ngày còn lại để trừ đi các ngày cuối tuần có thể rơi vào.
Cách này khá trực quan và dễ hiểu. Hy vọng nó hữu ích cho các bạn nào đang cần chức năng tương tự. Nếu có cách nào tối ưu hơn hoặc gặp lỗi gì khi áp dụng, mọi người cùng thảo luận nhé!