Hãy cùng KPIM khám phá những phương pháp đơn giản của hàm SAMEPERIODLASTYEAR() và hữu dụng nhất nhé! Sau khi tính được doanh thu hoặc các chỉ số của năm và tháng hiện tại, chúng ta có thể đưa ra những phân tích khi so sánh với các chỉ số cùng kỳ năm ngoái. Đây là một cách hữu ích và đã trở thành phương pháp phổ biến để theo dõi hiệu suất kinh doanh qua thời gian.

Vậy làm thế nào để chúng ta có thể tính được các giá trị cùng khoảng thời gian nhưng trong năm trước đó, quý trước hoặc tháng trước? Time Intelligence có rất nhiều các giải pháp khác nhau giúp bạn thực hiện điều này.

Hàm SAMEPERIODLASTYEAR(), giúp tính chỉ số cùng kỳ năm ngoái

Hàm đầu tiên mà mình muốn giới thiệu với mọi người đó là hàm được ưa chuộng nhất SAMEPERIODLASTYEAR(). Nghe hơi dài phải không nhưng mà nó lại giúp bạn rút gọn công thức tính vô một cách đơn giản nhất. Đúng với tên gọi, đây chính là hàm giúp bạn chuyển đổi khoảng thời gian đang tính sang một năm trước. Cách thức sử dụng như sau:

				
					SAMEPERIODLASTYEAR(<dates>)
				
			

Rất đơn giản phải không nào, chỉ cần đúng trường Date (trường được sử dụng khi tính lũy kế năm YTD) là bạn có thể đẩy ngược thời gian về 1 năm rồi. Sau đây sẽ là công thức cho Measure tính doanh thu của năm ngoái:

				
					Total Sales last year =
CALCULATE([Total Sales],SAMEPERIODLASTYEAR(‘Date'[Date]))
				
			

Hãy cùng phân tích hàm tính trên nhé. Điều các bạn cần để ý đó là:

  • Sử dụng CALCULATE và hàm tính bạn muốn áp dụng (trong trường hợp này, ta sử dụng doanh thu Total Sales)
  • Sử dụng SAMESPERIODLASTYEAR() với trường Date. Khi sử dụng hàm này, giá trị trả lại sẽ là một bảng các ngày cùng trong khoảng thời gian đó của năm trước.

Ở ví dụ dưới đây, với mỗi tháng của năm 2013 khi sử dụng hàm SAMESPERIODLASTYEAR() sẽ trả về doanh thu của tháng đó tại năm 2012.

Sử dụng hàm SAMEPERIODLASTYEAR() sẽ trả về doanh thu của tháng đó

Sử dụng hàm SAMEPERIODLASTYEAR() sẽ trả về doanh thu của tháng đó

Tương tự khi tính doanh thu hàng tháng, ta có thể áp dụng công thức lũy kế trong tình huống này để tính tổng doanh thu lũy kế theo từng tháng giữa hai năm. Để làm điều này, chúng ta chỉ cần thay thế measure Total Sales bằng Total Sales YTD, và hàm tính sẽ áp dụng công thức này cùng SAMEPERIODLASTYEAR() để tính cho 2012.

				
					Total Sales last YTD =
CALCULATE([Total Sales YTD],SAMEPERIODLASTYEAR(‘Date'[Date]))
				
			
Tính doanh thu hàng tháng
Tính doanh thu hàng tháng

Quá đơn giản phải không nào, bằng cách áp dụng hàm SAMEPERIODLASTYEAR(), bạn giờ có thể dễ dàng tính bất cứ chỉ số và công thức nào cho cùng ky năm ngoái để đưa ra những kết luận về tăng trưởng.

Đọc thêm: Hàm SAMEPERIODLASTYEAR - Microsoft Learn (Tiếng Anh)

Hàm PREVIOUSYEAR(), trả về chỉ số của cả năm ngoái

Nếu các bạn vẫn còn nhớ trong bài viết trước, ta có tính doanh thu của cả năm ngoái để so sánh giữa doanh thu các tháng lũy kế so với tổng của cả năm. Và mọi người có thể nhớ lại nếu sử dụng CALCULATE(), FILTER(), MAX() sẽ lằng nhằng như sau:

				
					Total Sales by year =
CALCULATE(SUM(‘Sales SalesOrderHeader'[TotalDue]),
FILTER(ALL(‘Date’),YEAR(‘Date'[Date]) = YEAR(MAX(‘Date'[Date]))))
				
			

Vì vậy hệ hàm PREVIOUSYEAR() là một cách đơn giản hóa vấn đề này và được dung như sau:

				
					PREVIOUSYEAR(<dates>[,<year_end_date>])
				
			

Trong đó, bạn chỉ cần đưa trường DATE vào nếu năm kinh doanh dừng ở tháng 12 và có thể thay đổi tháng cuối năm bằng cách bổ sung thêm ở phần sau.

Sau khi áp dụng với công thức tính doanh thu, ta có công thức sau:

				
					Total Sales Previous Year =
CALCULATE([Total Sales], PREVIOUSYEAR('Date'[Date]))
				
			
Công thức tính doanh thu
Công thức tính doanh thu

Chúng ta có thể dễ dàng thấy đối với bất cứ tháng nào trong năm, giá trị của hàm tính PREVIOUSYEAR() sẽ luôn trả về là tổng giá trị của năm trước đó. Mỗi line màu ghi trong hình là một line không đổi tương ứng bằng với tổng doanh thu của năm ngoái. Đây cũng là một cách khá hay để hình dung doanh thu hiện tại so với cột mốc tổng doanh thu năm ngoái.

Doanh thu hiện tại so với tổng doanh thu năm ngoái
Doanh thu hiện tại so với tổng doanh thu năm ngoái
Đọc thêm: Hàm PREVIOUSYEAR - Microsoft Learn (Tiếng Anh)

Các hàm tương tự trong dòng họ PREVIOUS

Tương tự như DATESYTD(), hàm PREVIOUSYEAR() cũng có một loạt các anh em họ hàng để mọi người tiện sử dụng. Để tính tổng của quý trước, ta sẽ dung PREVIOUSQUARTER(), hay để tính cho tháng trướng sẽ là PREVIOUSMONTH(), và kể cả PREVIOUSDAY(). Cách dùng thì tương tự thậm chí là đơn giản hơn vì chỉ cần trường DATE mà thôi.

Hãy thử lấy ví dụ tính sự thay đổi giá stock của Tesla, Inc (TSLA) mỗi ngày với PREVIOUSDAY() nhé.

Các hàm tương tự trong dòng họ PREVIOUS

Các hàm tương tự trong dòng họ PREVIOUS

Kết luận

Hi vọng rằng qua bài viết này, các bạn có thể dễ dàng tính được giá trị KPI hoặc doanh thu của cùng kỳ năm ngoái hoặc các khoảng thời gian khác để dễ dàng so sánh. Với việc sử dụng Time Intelligence, các công thức DAX giờ sẽ gọn gàng và vô cùng dễ sử dụng.

Tuy nhiên, hãy nhớ kĩ sự khác biệt giữa hàm SAMEPRERIOUDLASTYEAR() và gia đình PREVIOUS(). Bên cạnh việc thuận lợi của Time Intelligence, cũng sẽ có một vài tình huống các bạn không thể sử dụng những hàm này để tính. Mình sẽ đề cập về vấn đề này trong các bài viết tiếp theo. Còn bây giờ, xin chào và hẹn gặp lại!

Đọc thêm: Tổng quan về hàm Time Intelligence trong DAX - Microsoft Learn (Tiếng Anh)