Time Intelligence Power BI: Cách dùng DAX Time Intelligence

Trong thế giới kinh doanh, việc phân tích dữ liệu theo thời gian không chỉ là một nhu cầu mà còn là yếu tố sống còn để đưa ra quyết định chính xác. Bạn đã bao giờ muốn so sánh doanh số tháng này với tháng trước, hoặc xem hiệu suất kinh doanh lũy kế từ đầu năm? Đó chính là lúc Time Intelligence Power BI phát huy sức mạnh của mình. Cùng Starttrain khám phá tất tần tật về Time Intelligence Power BI và cách làm chủ bộ hàm thời gian này nhé!

Time Intelligence Power BI là gì?

Time Intelligence là một bộ chức năng mạnh mẽ trong Power BI, được xây dựng trên ngôn ngữ DAX. Đúng như tên gọi, nó cho phép bạn thao tác và tính toán dữ liệu dựa trên các khoảng thời gian như ngày, tuần, tháng, quý và năm.

Thay vì phải tạo các công thức phức tạp để tính toán thủ công, các hàm Time Intelligence được thiết kế để đơn giản hóa các phép phân tích theo thời gian.

Time Intelligence Power BI

Tại sao cần Time Intelligence Power BI?

Time Intelligence Power BI là công cụ không thể thiếu trong phân tích kinh doanh, tài chính, và bán hàng. Vì nó giúp chuyển đổi dữ liệu thô thành thông tin chi tiết có ý nghĩa qua thời gian.

Nó cho phép người dùng trả lời các câu hỏi quan trọng như:

  • Hiệu suất hiện tại như thế nào so với quá khứ? (Ví dụ: Doanh thu Quý 3 năm nay tăng trưởng bao nhiêu phần trăm so với Quý 3 năm ngoái?).
  • Mục tiêu lũy kế đạt được đến đâu? (Ví dụ: Tổng doanh thu từ đầu năm đến nay là bao nhiêu?).
  • Xu hướng kinh doanh đang dịch chuyển ra sao? (Ví dụ: Xem xét doanh số bán hàng trong các giai đoạn song song).

Việc thực hiện các phép tính so sánh và lũy kế này nếu làm thủ công sẽ rất phức tạp và tốn thời gian. Các hàm Time Intelligence trong ngôn ngữ DAX của Power BI giải quyết vấn đề này một cách nhanh chóng và linh hoạt.

Các hàm Time Intelligence Power BI

Các hàm Time Intelligence Power BI phổ biến

Power BI, thông qua ngôn ngữ DAX, cung cấp một bộ sưu tập các hàm chuyên dụng (Time Intelligence functions) để thao tác và phân tích dữ liệu theo các mốc thời gian. Các hàm này giúp đơn giản hóa việc thực hiện các phép tính so sánh và lũy kế phức tạp.

Nhóm hàm tính lũy kế (Year-To-Date, Month-To-Date, Quarter-To-Date)

Nhóm hàm này được sử dụng để tính tổng tích lũy của một chỉ số (measure) từ đầu một kỳ (năm, quý, tháng) cho đến ngày được lọc trong ngữ cảnh hiện tại. Chúng rất có ích cho việc theo dõi tiến độ và hiệu suất theo thời gian.

  • TOTALYTD (Year-To-Date): Tính tổng giá trị từ ngày đầu năm tài chính (hoặc năm dương lịch) đến ngày hiện tại được chọn.
  • TOTALMTD (Month-To-Date): Tính tổng giá trị từ ngày đầu tháng đến ngày hiện tại được chọn.
  • TOTALQTD (Quarter-To-Date): Tính tổng giá trị từ ngày đầu quý đến ngày hiện tại được chọn.

Các hàm Time Intelligence Power BI

Nhóm hàm dịch chuyển kỳ (Parallel Period Shift)

Các hàm này cho phép bạn thay đổi ngữ cảnh lọc thời gian để so sánh dữ liệu với các kỳ trước hoặc sau đó. Đây là nền tảng để tính toán mức tăng trưởng qua các năm (Year-over-Year).

  • SAMEPERIODLASTYEAR: Dịch chuyển ngữ cảnh ngày hiện tại lùi lại chính xác một năm, giúp bạn dễ dàng so sánh một chỉ số với cùng kỳ năm trước.
  • DATEADD: Hàm linh hoạt hơn, trả về một bảng ngày đã được dịch chuyển lùi hoặc tiến một số lượng khoảng thời gian (ngày, tháng, quý, hoặc năm) được chỉ định từ ngữ cảnh ngày hiện tại.
  • Ngoài ra còn có các hàm dịch chuyển cố định khác như PREVIOUSYEAR, PREVIOUSMONTH, NEXTQUARTER, …

Nhóm hàm tính số dư đầu/cuối kỳ (Balance Functions)

Nhóm hàm này thường được sử dụng trong phân tích tài chính hoặc hàng tồn kho, nơi mà bạn cần biết giá trị của một biểu thức tại một điểm thời gian cụ thể (thường là ngày cuối cùng hoặc ngày đầu tiên của một kỳ).

  • CLOSINGBALANCEYEAR/MONTH/QUARTER/WEEK: Đánh giá một biểu thức (ví dụ: tồn kho cuối kỳ) tại ngày cuối cùng của năm/tháng/quý/tuần trong ngữ cảnh lọc hiện tại.
  • OPENINGBALANCEYEAR/MONTH/QUARTER/WEEK: Đánh giá một biểu thức tại ngày đầu tiên của năm/tháng/quý/tuần trong ngữ cảnh lọc hiện tại.

Các hàm Time Intelligence Power BI

Nhóm hàm lấy ngày đầu/cuối kỳ (Start/End of Period)

Nhóm hàm này trả về một bảng chứa ngày đầu tiên hoặc ngày cuối cùng của một kỳ cụ thể, giúp giới hạn phạm vi tính toán hoặc lọc hiển thị.

  • STARTOFYEAR/MONTH/QUARTER/WEEK: Trả về ngày đầu tiên của kỳ (năm, tháng, quý, hoặc tuần) trong ngữ cảnh được lọc.
  • ENDOFYEAR/MONTH/QUARTER/WEEK: Trả về ngày cuối cùng của kỳ (năm, tháng, quý, hoặc tuần) trong ngữ cảnh được lọc.
  • Cũng có các hàm đơn giản như FIRSTDATE và LASTDATE để trả về ngày đầu tiên và cuối cùng trong ngữ cảnh lọc hiện tại.

Nhóm hàm lọc ngày trong khoảng (Date Range Filters)

Các hàm này được sử dụng để tạo ra một bảng ngày mới, giới hạn trong một khoảng thời gian xác định, thường được dùng như một đối số bộ lọc trong hàm CALCULATE.

  • DATESBETWEEN: Trả về một bảng chứa một cột ngày bắt đầu từ ngày được chỉ định và tiếp tục đến ngày kết thúc được chỉ định.
  • DATESINPERIOD: Trả về một bảng chứa một cột ngày bắt đầu từ một ngày cụ thể và kéo dài trong một số lượng và loại khoảng thời gian (ví dụ: 3 tháng, 6 quý) được chỉ định.

Các hàm Time Intelligence Power BI

Tổng hợp các hàm Time Intelligence Power BI

Chức năng (Function)Mô tả (Description)
Hàm Tính Số Dư (Balance Functions)
CLOSINGBALANCEWEEKĐánh giá biểu thức tại ngày cuối cùng của tuần trong ngữ cảnh hiện tại.
CLOSINGBALANCEMONTHĐánh giá biểu thức tại ngày cuối cùng của tháng trong ngữ cảnh hiện tại.
CLOSINGBALANCEQUARTERĐánh giá biểu thức tại ngày cuối cùng của quý trong ngữ cảnh hiện tại.
CLOSINGBALANCEYEARĐánh giá biểu thức tại ngày cuối cùng của năm trong ngữ cảnh hiện tại.
OPENINGBALANCEWEEKĐánh giá biểu thức tại ngày đầu tiên của tuần trong ngữ cảnh hiện tại.
OPENINGBALANCEMONTHĐánh giá biểu thức tại ngày đầu tiên của tháng trong ngữ cảnh hiện tại.
OPENINGBALANCEQUARTERĐánh giá biểu thức tại ngày đầu tiên của quý trong ngữ cảnh hiện tại.
OPENINGBALANCEYEARĐánh giá biểu thức tại ngày đầu tiên của năm trong ngữ cảnh hiện tại.
Hàm Dịch Chuyển Kỳ (Period Shift Functions)
DATEADDTrả về bảng ngày đã được dịch chuyển tiến hoặc lùi theo số lượng và loại khoảng thời gian được chỉ định.
PARALLELPERIODTrả về bảng ngày đại diện cho một kỳ song song với kỳ hiện tại, dịch chuyển tiến/lùi.
SAMEPERIODLASTYEARTrả về bảng ngày được dịch chuyển lùi lại chính xác một năm so với kỳ hiện tại.
PREVIOUSDAYTrả về bảng ngày của ngày trước đó (so với ngày đầu tiên trong ngữ cảnh).
PREVIOUSWEEKTrả về bảng ngày của tuần trước đó (so với ngày đầu tiên trong ngữ cảnh).
PREVIOUSMONTHTrả về bảng ngày của tháng trước đó (so với ngày đầu tiên trong ngữ cảnh).
PREVIOUSQUARTERTrả về bảng ngày của quý trước đó (so với ngày đầu tiên trong ngữ cảnh).
PREVIOUSYEARTrả về bảng ngày của năm trước đó (so với ngày cuối cùng trong ngữ cảnh).
NEXTDAYTrả về bảng ngày của ngày tiếp theo.
NEXTWEEKTrả về bảng ngày của tuần tiếp theo.
NEXTMONTHTrả về bảng ngày của tháng tiếp theo.
NEXTQUARTERTrả về bảng ngày của quý tiếp theo.
NEXTYEARTrả về bảng ngày của năm tiếp theo.
Hàm Lũy Kế (Year/Quarter/Month/Week To Date)
DATESWTDRTrả về bảng ngày cho kỳ từ đầu tuần đến ngày hiện tại (Week-to-Date).
DATESMTDRTrả về bảng ngày cho kỳ từ đầu tháng đến ngày hiện tại (Month-to-Date).
DATESQTDRTrả về bảng ngày cho kỳ từ đầu quý đến ngày hiện tại (Quarter-to-Date).
DATESYTDRTrả về bảng ngày cho kỳ từ đầu năm đến ngày hiện tại (Year-to-Date).
TOTALWTDĐánh giá biểu thức lũy kế từ đầu tuần đến ngày hiện tại.
TOTALMTDĐánh giá biểu thức lũy kế từ đầu tháng đến ngày hiện tại.
TOTALQTDĐánh giá biểu thức lũy kế từ đầu quý đến ngày hiện tại.
TOTALYTDĐánh giá biểu thức lũy kế từ đầu năm đến ngày hiện tại.
Hàm Lọc Khoảng Ngày (Date Range Filters)
DATESBETWEENTrả về bảng ngày bắt đầu từ ngày được chỉ định và tiếp tục đến ngày kết thúc được chỉ định.
DATESINPERIODTrả về bảng ngày bắt đầu từ ngày được chỉ định và tiếp tục trong số lượng và loại khoảng thời gian được chỉ định.
Hàm Lấy Ngày Đầu/Cuối (Start/End Date)
FIRSTDATETrả về ngày đầu tiên trong ngữ cảnh hiện tại.
LASTDATETrả về ngày cuối cùng trong ngữ cảnh hiện tại.
STARTOFWEEKTrả về ngày đầu tiên của tuần trong ngữ cảnh hiện tại.
STARTOFMONTHTrả về ngày đầu tiên của tháng trong ngữ cảnh hiện tại.
STARTOFQUARTERTrả về ngày đầu tiên của quý trong ngữ cảnh hiện tại.
STARTOFYEARTrả về ngày đầu tiên của năm trong ngữ cảnh hiện tại.
ENDOFWEEKTrả về ngày cuối cùng của tuần trong ngữ cảnh hiện tại.
ENDOFMONTHTrả về ngày cuối cùng của tháng trong ngữ cảnh hiện tại.
ENDOFQUARTERTrả về ngày cuối cùng của quý trong ngữ cảnh hiện tại.
ENDOFYEARTrả về ngày cuối cùng của năm trong ngữ cảnh hiện tại.

(Nguồn: Microsoft Learn)

Lưu ý quan trọng khi sử dụng Time Intelligence Power BI

Để các hàm Time Intelligence Power BI hoạt động chính xác, bạn cần thực hiện một bước bắt buộc trong Power BI:

Bắt buộc thiết lập bảng ngày (Date Table) chuẩn

Trước khi áp dụng bất kỳ hàm DAX nào liên quan đến Time Intelligence Power BI, bạn nhất thiết phải đánh dấu bảng chứa cột ngày tháng của mình là bảng Date trong mô hình dữ liệu.

Yêu cầu của bảng Date:

  • Tính liên tục (Continuity): Cột ngày phải chứa tất cả các ngày trong phạm vi thời gian mà bạn cần phân tích, không được phép có ngày bị thiếu.
  • Mục đích: Bảng Ngày đóng vai trò như một bộ khung chuẩn mực cho mọi phép tính thời gian. Khi bạn dịch chuyển thời gian (ví dụ: so sánh với năm trước) hoặc tính lũy kế (YTD), Power BI sẽ sử dụng bảng này để xác định chính xác các ngày cần lọc.

Cơ chế xử lý lịch linh hoạt (Calendar Handling)

Time Intelligence Power BI có khả năng xử lý các cấu trúc thời gian khác nhau, cho phép bạn phân tích dựa trên lịch dương lịch tiêu chuẩn hoặc các lịch tùy chỉnh của doanh nghiệp.

Lịch Truyền Thống (Classic Time Intelligence)

  • Các hàm DAX được xây dựng từ ban đầu thường mặc định hỗ trợ Lịch Gregorian (dương lịch tiêu chuẩn) với năm bắt đầu vào ngày 1/1 và có 12 tháng cố định.
  • Cơ chế này đơn giản và hiệu quả cho hầu hết các tình huống tuân theo lịch dương lịch.

Lịch Dựa Trên Cột (Calendar-Based Time Intelligence)

  • Đây là cơ chế mới và linh hoạt hơn, cho phép bạn định nghĩa cấu trúc lịch thông qua các cột trong chính bảng Date của bạn.
  • Ví dụ ứng dụng:
    • Lịch Tài Chính (Fiscal Calendar): Nếu năm tài chính của doanh nghiệp bạn bắt đầu vào ngày 1/7 hoặc 1/10, bạn có thể tạo các cột chỉ rõ Năm Tài Chính, Quý Tài Chính, và đánh dấu chúng.
    • Lịch Phi Tiêu Chuẩn: Áp dụng cho các cấu trúc lịch đặc biệt như lịch 4-4-5 (dùng phổ biến trong bán lẻ, chia quý thành 2 tháng 4 tuần và 1 tháng 5 tuần) hoặc năm có 13 tháng.
  • Cơ chế này giúp các hàm Time Intelligence hiểu và hoạt động chính xác ngay cả khi cấu trúc thời gian của bạn không tuân theo quy tắc 12 tháng/năm tiêu chuẩn.

Cơ chế xử lý lịch linh hoạt (Calendar Handling)

Tóm lại, Time Intelligence là nền tảng cốt lõi trong phân tích dữ liệu của Power BI. Việc tuân thủ quy tắc về bảng ngày chuẩn và hiểu rõ về cơ chế xử lý lịch sẽ đảm bảo rằng các báo cáo và phân tích của bạn luôn chính xác và đáng tin cậy.

Tổng kết

Tóm lại, Time Intelligence Power BI là bộ chức năng cốt lõi (DAX) được thiết kế để nâng cao khả năng phân tích dữ liệu theo thời gian một cách thông minh và hiệu quả. Sự cần thiết của nó nằm ở khả năng chuyển đổi dữ liệu thô thành thông tin chi tiết có ý nghĩa, hỗ trợ phân tích và tìm ra các insight quan trọng liên quan đến hiệu suất và xu hướng lịch sử của doanh nghiệp.

Nắm vững công cụ này là chìa khóa để xây dựng các báo cáo động, đưa ra những quyết định kinh doanh sáng suốt và hỗ trợ dự đoán dựa trên nền tảng dữ liệu vững chắc. Để làm chủ hoàn toàn các hàm DAX nâng cao và ứng dụng chúng vào các bài toán quản trị thực tế, hãy tham khảo ngay khóa học Business Intelligence Essentials tại Starttrain.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Form Demo