Tìm Hiểu DATESYTD() Và TOTALYTD(), Khoảng Thời Gian Từ đầu ...

Nhảy tới nội dung
  • DAX, Power BI
Hàm DATESYTD(): Cách tính tổng đầu năm đến ngày xác định Picture of KPIM KPIM
  • Cập nhật gần nhất: 21/03/2024
Hàm datesytd

Hi vọng ở bài viết trước, mọi người không thấy quá phức tạp và hiểu được logic đằng sau các phép tính thời gian của DAX sử dụng CALCULATE(), FILTER(), ALL(). Và bây giờ, không để mọi người chờ lâu, KPIM sẽ bàn đến các công thức hàm DATESYTD(). Đây chính là công cụ vô cùng hữu dụng giúp mọi người sử dụng những hàm ngắn gọn và đơn giản thay thế cho các công thức phức tạp và dài dòng lúc trước.

Time Intelligence, tạm dịch là các phép tính thời gian thông mình, là một chuỗi các hàm tính được thiết lập sẵn để trả về các khoảng thời gian nhất định mà mọi người hay sử dụng.

Ví dụ như YTD hay Year-to-date là khoảng thời gian từ đầu năm đến hiện tại và tương tự là Month-to-date (MTD) và Quarter-to-date (QTD). Hoặc cũng có thể trả về luôn tổng giá trị dựa trên các phép tính trong khoảng thời gian đó.

Hàm DATESYTD()

Một trong những yêu cầu nghiệp vụ khá phổ biến là tính doanh thu hoặc các KPIs trong khoảng thời gian từ đầu năm cho đến hiện tại và so sánh nó với cùng kỳ năm ngoái.

Để làm được phép tính này, chúng ta đã biết từ bài viết trước dựa trên hàm tính lọc khoảng thời gian trong bảng DATE sao cho bao gồm những ngày cùng năm và trước ngày hiện tại. Bằng DATESYTD, chúng ta sẽ không cần phải phức tạp hóa vấn đề như vậy nữa, thay bằng cả cụm công thức sau Filter(), chúng ta chỉ đơn giản dùng () dưới dạng dưới đây:

DATESYTD([,])

DATESYTD sẽ nhìn vào trường Date (trong trường hợp của chúng ta chính là trường Date trong Date Dimension) và sau đó có thể bổ sung tháng cuối năm nếu có. Còn nếu để không thì DAX sẽ tự hiểu năm kinh doanh dừng vào tháng 12 như bình thường.

Trường công thức Ý nghĩa
DATESYTD('Date'[Date]) Mặc định tháng cuối năm là tháng 12
DATESYTD('Date'[Date], "06/30") Tháng cuối năm là tháng 6

Một điểm quan trọng cần để ý đó là DATESYTD() trả về một dãy các ngày trong khoảng thời gian được xác định bởi ngày trong Filter Context (tức là ngày trong từng dòng ở bảng sử dụng measure này). Ví dụ:

DATESYTD() trả về một dãy các ngày trong khoảng thời gian được xác định

Ở bảng trên, với mỗi dòng, chúng ta sẽ có filter context là ngày tại dòng đó. Lấy ví dụ ở dòng cuối cùng ngày 14/1/2013, DATESYTD sẽ xác định các bước sau:

  • Tìm năm của ngày đó -> 2013
  • Xác định ngày đầu tiên trong năm đó -> 1/1/2013
  • Trả về dãy các ngày từ ngày đầu năm đến ngày đó: 1/1/2013 – 14/1/2013
Dãy các ngày từ ngày đầu năm đến ngày

Từ đây chúng ta có thể dễ dàng thấy công thức này chính là công thức rút gọn của

FILTER(ALL('Date'[Date]), YEAR('Date'[Date]) = YEAR(MAX('Date'[Date])) && 'Date'[Date]

Từ khóa » Cách Tính Ytd