Series Power BI
28 phút đọc

Tìm Hiểu Cơ Bản Về DAX Trong Power BI Desktop

Bài viết này dành cho người dùng mới sử dụng Power BI Desktop. Nó cung cấp cho bạn phần giới thiệu nhanh chóng và dễ dàng về cách bạn có thể sử dụng Data Analysis Expressions (DAX) để giải quyết một số vấn đề tính toán và phân tích dữ liệu cơ bản. Chúng ta sẽ xem qua một số thông tin khái niệm, một loạt nhiệm vụ bạn có thể hoàn thành và kiểm tra kiến ​​thức để kiểm tra những gì bạn đã học. Sau bài viết này, bạn sẽ hiểu rõ về các khái niệm cơ bản quan trọng nhất trong DAX.

1. DAX là gì?

DAX là tập hợp các hàm, toán tử và hằng số có thể được sử dụng trong một công thức hoặc biểu thức để tính toán và trả về một hoặc nhiều giá trị. Nó giúp bạn tạo thông tin mới từ dữ liệu đã có trong mô hình của bạn.

2. Tại sao DAX lại quan trọng như vậy?

Thật dễ dàng để tạo một tệp Power BI Desktop mới và nhập một số dữ liệu vào đó. Bạn thậm chí có thể tạo báo cáo hiển thị thông tin chuyên sâu có giá trị mà không cần sử dụng bất kỳ công thức DAX nào. Tuy nhiên, nếu bạn cần phân tích tỷ lệ phần trăm tăng trưởng giữa các danh mục sản phẩm và cho các phạm vi ngày khác nhau thì sao?

Hoặc, bạn cần tính toán mức tăng trưởng hàng năm so với xu hướng thị trường? Các công thức DAX cũng cung cấp khả năng này và nhiều khả năng quan trọng khác. Tìm hiểu cách tạo công thức DAX hiệu quả sẽ giúp bạn tận dụng tối đa dữ liệu của mình. Khi bạn nhận được thông tin bạn cần, bạn có thể bắt đầu giải quyết các vấn đề kinh doanh thực sự ảnh hưởng đến lợi nhuận của bạn. Đây là sức mạnh của Power BI và DAX sẽ giúp bạn đạt được điều đó.

3. Điều kiện tiên quyết

Bạn có thể đã quen với việc tạo công thức trong Microsoft Excel. Kiến thức đó sẽ hữu ích trong việc hiểu DAX, nhưng ngay cả khi bạn không có kinh nghiệm với công thức Excel, các khái niệm được mô tả ở đây sẽ giúp bạn bắt đầu tạo công thức DAX và giải quyết các vấn đề BI trong thế giới thực ngay lập tức.

Chúng ta sẽ tập trung vào việc tìm hiểu các công thức DAX được sử dụng trong tính toán, cụ thể hơn là trong số đo và cột được tính toán. Bạn đã quen với việc sử dụng Power BI Desktop để nhập dữ liệu và thêm trường vào báo cáo, đồng thời bạn cũng nên làm quen với các khái niệm cơ bản về Thang đo và Cột tính.

3.1. Tệp dữ liệu mẫu

Cách tốt nhất để tìm hiểu DAX là tạo một số công thức cơ bản, sử dụng chúng với dữ liệu thực tế và tự mình xem kết quả. Các ví dụ và tác vụ ở đây sử dụng tệp Mẫu bán hàng Contoso cho Power BI Desktop. 

4. Hãy bắt đầu nào

Chúng ta sẽ định hình DAX xung quanh ba khái niệm cơ bản: Cú pháp, Hàm và Ngữ cảnh. Có các khái niệm quan trọng khác trong DAX, nhưng việc hiểu ba khái niệm này sẽ cung cấp nền tảng tốt nhất để xây dựng các kỹ năng DAX của bạn.

4.1. Cú pháp

Trước khi bạn tạo công thức của riêng mình, hãy xem qua cú pháp công thức DAX. Cú pháp bao gồm các phần tử khác nhau tạo nên một công thức hoặc đơn giản hơn là cách viết công thức. Ví dụ: đây là công thức DAX đơn giản cho thang đo:

Cú pháp công thức DAX trong Power BI Desktop

Công thức này bao gồm các yếu tố cú pháp sau:

A. Tên thước đo, Tổng doanh thu.

B. Toán tử dấu bằng ( = ), cho biết phần đầu của công thức. Khi tính toán, nó sẽ trả về một kết quả.

C. Hàm DAX SUM, hàm này cộng tất cả các số trong cột Doanh số[Số tiền bán hàng]. Bạn sẽ tìm hiểu thêm về các chức năng sau.

D. Dấu ngoặc đơn (), bao quanh một biểu thức có chứa một hoặc nhiều đối số. Hầu hết các chức năng yêu cầu ít nhất một đối số. Một đối số truyền một giá trị cho một hàm.

E. Bảng được tham chiếu, Sales.

F. Cột được tham chiếu, [SalesAmount], trong bảng Doanh số. Với đối số này, hàm SUM biết cột nào sẽ tổng hợp một SUM.

Khi cố gắng hiểu một công thức DAX, việc chia nhỏ từng thành phần thành ngôn ngữ mà bạn nghĩ và nói hàng ngày thường hữu ích. Ví dụ, bạn có thể đọc công thức này là:

Đối với thước đo Tổng doanh số, tính (=) TỔNG các giá trị trong cột [SalesAmount ] trong bảng Doanh số.

Khi được thêm vào báo cáo, thước đo này sẽ tính toán và trả về các giá trị bằng cách tổng hợp số tiền bán hàng cho từng trường khác mà chúng tôi đưa vào, ví dụ: Điện thoại di động ở Hoa Kỳ.

Bạn có thể đang nghĩ, “Không phải biện pháp này đang làm điều tương tự như khi tôi chỉ cần thêm trường Số tiền bán hàng vào báo cáo của mình sao?” Vâng, vâng. Tuy nhiên, có một lý do chính đáng để tạo thước đo của riêng chúng ta để tổng hợp các giá trị từ trường SalesAmount: Chúng ta có thể sử dụng nó làm đối số trong các công thức khác. Hiện tại, điều này có vẻ hơi khó hiểu, nhưng khi các kỹ năng về công thức DAX của bạn phát triển, việc biết biện pháp này sẽ giúp các công thức và mô hình của bạn hiệu quả hơn. Trên thực tế, bạn sẽ thấy thước đo Tổng doanh số hiển thị dưới dạng đối số trong các công thức khác sau này.

Chúng ta hãy đi qua một vài điều nữa về công thức này. Đặc biệt, chúng tôi đã giới thiệu một chức năng, SUM. Hàm là các công thức được viết sẵn giúp dễ dàng thực hiện các phép tính và thao tác phức tạp với số, ngày, giờ, văn bản, v.v. Bạn sẽ tìm hiểu thêm về các chức năng sau.

Bạn cũng thấy rằng tên cột [SalesAmount] được đặt trước bảng Doanh số chứa cột đó. Tên này được gọi là tên cột đủ điều kiện ở chỗ nó bao gồm tên cột trước tên bảng. Các cột được tham chiếu trong cùng một bảng không yêu cầu phải bao gồm tên bảng trong công thức, điều này có thể làm cho các công thức dài tham chiếu nhiều cột trở nên ngắn hơn và dễ đọc hơn. Tuy nhiên, nên đưa tên bảng vào công thức đo lường của bạn, ngay cả khi ở trong cùng một bảng.

Điều quan trọng là công thức của bạn có cú pháp đúng. Trong hầu hết các trường hợp, nếu cú ​​pháp không đúng, lỗi cú pháp sẽ được trả về. Trong các trường hợp khác, cú pháp có thể đúng nhưng giá trị trả về có thể không như bạn mong đợi. Trình chỉnh sửa DAX trong Power BI Desktop bao gồm một tính năng gợi ý, được sử dụng để tạo các công thức đúng về mặt cú pháp bằng cách giúp bạn chọn đúng thành phần.

Hãy tạo một công thức đơn giản. Nhiệm vụ này giúp bạn hiểu về cú pháp công thức và tính năng gợi ý trong thanh công thức.

4.2. Nhiệm vụ: Tạo công thức đo lường:

  1. Tải xuống và mở tệp Contoso Sales Sample Power BI Desktop.
  1. Trong chế độ Report view, trong danh sách trường, hãy bấm chuột phải vào bảng Sales, sau đó chọn New Measure.
  1. Trong thanh công thức, thay thế Measure bằng cách nhập tên thang đo mới, Previous Quarter Sales.
  2. Sau dấu bằng, hãy nhập một vài chữ cái đầu tiên CAL , rồi bấm đúp vào chức năng bạn muốn sử dụng. Trong công thức này, bạn muốn sử dụng hàm CALCULATE.

Bạn sẽ sử dụng hàm CALCULATE để lọc số tiền mà chúng ta muốn tính tổng bằng một đối số mà chúng ta chuyển đến hàm CALCULATE. Điều này được gọi là chức năng lồng nhau. Hàm CALCULATE có ít nhất hai đối số. Đầu tiên là biểu thức được đánh giá và thứ hai là bộ lọc.

  1. Sau dấu ngoặc đơn mở (đối với hàm CALCULATE, hãy nhập SUM theo sau là dấu ngoặc đơn mở khác ( .

Tiếp theo, chúng ta sẽ chuyển một đối số cho hàm SUM.

  1. Bắt đầu nhập Sal ​​, sau đó chọn Sales[SalesAmount] , theo sau là dấu ngoặc đơn đóng ) .

Đây là đối số biểu thức đầu tiên cho hàm CALCULATE của chúng ta.

  1. Nhập dấu phẩy ( , ) theo sau là khoảng trắng để chỉ định bộ lọc đầu tiên, sau đó nhập PREVIOUSQUARTER.

Bạn sẽ sử dụng hàm thông minh thời gian PREVIOUSQUARTER để lọc SUM kết quả theo quý trước.

  1. Sau dấu ngoặc đơn mở ( đối với hàm PREVIOUSQUARTER, hãy nhập Calendar[DateKey] .

Hàm PREVIOUSQUARTER có một đối số, một cột chứa phạm vi ngày liền kề. Trong trường hợp của chúng tôi, đó là cột DateKey trong bảng Lịch.

  1. Đóng cả hai đối số được truyền cho hàm PREVIOUSQUARTER và hàm CALCULATE bằng cách nhập hai dấu ngoặc đơn đóng )) .

Công thức của bạn bây giờ sẽ trông như thế này:

Previous Quarter Sales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  1. Chọn dấu kiểm trong thanh công thức hoặc nhấn Enter để xác thực công thức và thêm nó vào bảng Doanh số.

Bạn làm được rồi! Bạn vừa tạo một phép đo phức tạp bằng cách sử dụng DAX và không phải là một phép đo dễ dàng. Công thức này sẽ làm là tính toán tổng doanh thu cho quý trước, tùy thuộc vào các bộ lọc được áp dụng trong báo cáo. Ví dụ: nếu chúng tôi đặt SalesAmount và thước đo Doanh số Quý trước mới của chúng tôi từ bảng Doanh số vào biểu đồ cột Nhóm, sau đó từ bảng Lịch thêm Năm làm bộ cắt và chọn 2011, sau đó thêm QuarterOfYear làm bộ cắt khác và chọn 4, thì chúng tôi có được một biểu đồ như thế này:

Tạo công thức đo lường bằng DAX trong Power BI Desktop

Xin lưu ý rằng mô hình mẫu chỉ chứa một lượng nhỏ dữ liệu bán hàng từ ngày 1/1/2011 đến ngày 19/1/2013. Nếu bạn chọn một năm hoặc một quý mà không thể tính tổng Số tiền bán hàng hoặc thước đo mới của bạn không thể tính toán dữ liệu bán hàng cho quý hiện tại hoặc quý trước đó, thì không có dữ liệu nào cho khoảng thời gian đó được hiển thị. Ví dụ: nếu bạn chọn 2011 cho Year và 1 cho QuarterOfYear, thì không có dữ liệu nào được hiển thị cho Doanh số của Quý trước vì không có dữ liệu cho quý 4 năm 2010.

Bạn vừa được giới thiệu về một số khía cạnh quan trọng của công thức DAX:

  • Công thức này bao gồm hai chức năng. PREVIOUSQUARTER, một hàm thông minh về thời gian, được lồng vào nhau dưới dạng đối số được truyền cho CALCULATE, một hàm lọc.
  • Công thức DAX có thể chứa tối đa 64 hàm lồng nhau. Không chắc là một công thức lại chứa nhiều hàm lồng nhau như vậy. Trên thực tế, một công thức như vậy sẽ khó tạo và gỡ lỗi, và không nhanh lắm.
  • Trong công thức này, bạn cũng đã sử dụng các bộ lọc. Bộ lọc thu hẹp những gì sẽ được tính toán. Trong trường hợp này, bạn đã chọn một bộ lọc làm đối số, bộ lọc này thực sự là kết quả của một hàm khác. Bạn sẽ tìm hiểu thêm về các bộ lọc sau.
  • Bạn đã sử dụng chức năng CALCULATE. Hàm này là một trong những hàm mạnh mẽ nhất trong DAX. Khi bạn tạo mô hình và tạo các công thức phức tạp hơn, bạn có thể sẽ sử dụng hàm này nhiều lần. Mặc dù phần thảo luận thêm về hàm CALCULATE nằm ngoài phạm vi của bài viết này, nhưng khi kiến ​​thức của bạn về DAX tăng lên, hãy đặc biệt chú ý đến nó.

4.3. Cú pháp QuickQuiz

  1. Nút này trên thanh công thức làm gì?
Cú pháp QuickQuiz của DAX trong Power BI Desktop
  1. Điều gì luôn bao quanh tên cột trong công thức DAX?

Câu trả lời được cung cấp ở cuối bài viết này.

Xem thêm: Xác Định Mức Độ Chi Tiết Của Dữ Liệu

4.4. Chức năng

Hàm là các công thức được xác định trước để thực hiện các phép tính bằng cách sử dụng các giá trị cụ thể, được gọi là đối số, theo một thứ tự hoặc cấu trúc cụ thể. Đối số có thể là hàm khác, công thức khác, biểu thức, tham chiếu cột, số, văn bản, giá trị logic chẳng hạn như TRUE hoặc FALSE hoặc hằng số.

DAX bao gồm các danh mục chức năng sau:Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child, và các chức năng khác. Nếu bạn đã quen thuộc với các hàm trong công thức Excel, nhiều hàm trong DAX sẽ xuất hiện tương tự như bạn; tuy nhiên, các hàm DAX là duy nhất theo các cách sau:

  • Hàm DAX luôn tham chiếu đến một cột hoặc bảng hoàn chỉnh. Nếu bạn chỉ muốn sử dụng các giá trị cụ thể từ một bảng hoặc cột, bạn có thể thêm các bộ lọc vào công thức.
  • Nếu bạn cần tùy chỉnh các phép tính trên cơ sở từng hàng, DAX cung cấp các hàm cho phép bạn sử dụng giá trị hàng hiện tại hoặc giá trị liên quan làm một loại đối số, để thực hiện các phép tính thay đổi theo ngữ cảnh. Bạn sẽ tìm hiểu thêm về ngữ cảnh sau.
  • DAX bao gồm nhiều hàm trả về bảng thay vì giá trị. Bảng không được hiển thị, nhưng được sử dụng để cung cấp thông tin đầu vào cho các chức năng khác. Ví dụ: bạn có thể truy xuất một bảng rồi đếm các giá trị riêng biệt trong đó hoặc tính tổng động trên các bảng hoặc cột đã lọc.
  • DAX bao gồm nhiều chức năng thông minh về thời gian. Các hàm này cho phép bạn xác định hoặc chọn phạm vi ngày và thực hiện các phép tính động dựa trên chúng. Ví dụ: bạn có thể so sánh tổng trong các khoảng thời gian song song.
  • Excel có một hàm phổ biến là VLOOKUP. Hàm DAX không lấy một ô hoặc phạm vi ô làm tham chiếu như hàm VLOOKUP thực hiện trong Excel. Các hàm DAX lấy một cột hoặc một bảng làm tham chiếu. Xin lưu ý rằng trong Power BI Desktop, bạn đang làm việc với một mô hình dữ liệu quan hệ. Việc tra cứu các giá trị trong một bảng khác rất dễ dàng và trong hầu hết các trường hợp, bạn không cần phải tạo bất kỳ công thức nào.

Như bạn có thể thấy, các hàm trong DAX có thể giúp bạn tạo các công thức mạnh mẽ. Chúng tôi thực sự chỉ chạm vào những điều cơ bản của chức năng. Khi kỹ năng DAX phát triển, bạn sẽ tạo công thức bằng cách sử dụng nhiều hàm khác nhau.

4.5. Hàm QuickQuiz

  1. Hàm luôn tham chiếu là gì?
  2. Một công thức có thể chứa nhiều hơn một hàm không?
  3. Loại hàm nào bạn sẽ sử dụng để nối hai chuỗi văn bản thành một chuỗi?

Câu trả lời được cung cấp ở cuối bài viết này.

4.6. Ngữ cảnh

Ngữ cảnh là một trong những khái niệm DAX quan trọng nhất cần hiểu. Có hai loại ngữ cảnh trong DAX: ngữ cảnh hàng và ngữ cảnh bộ lọc. Trước tiên chúng ta sẽ xem xét ngữ cảnh hàng.

Ngữ cảnh hàng:

Ngữ cảnh hàng dễ dàng nhất được coi là hàng hiện tại. Nó áp dụng khi một công thức có chức năng áp dụng các bộ lọc để xác định một hàng. Hàm vốn sẽ áp dụng ngữ cảnh hàng cho từng hàng của bảng mà nó đang lọc. Loại bối cảnh hàng này thường áp dụng nhất cho các biện pháp.

4.7. Lọc ngữ cảnh

Ngữ cảnh bộ lọc khó hiểu hơn một chút so với ngữ cảnh hàng. Bạn có thể dễ dàng nghĩ nhất về bối cảnh bộ lọc là: Một hoặc nhiều bộ lọc được áp dụng trong phép tính xác định kết quả hoặc giá trị.

Ngữ cảnh bộ lọc không tồn tại ở vị trí ngữ cảnh hàng; nó áp dụng ngoài ngữ cảnh hàng. Ví dụ: để thu hẹp hơn nữa các giá trị cần đưa vào phép tính, bạn có thể áp dụng ngữ cảnh bộ lọc, ngữ cảnh này không chỉ chỉ định ngữ cảnh hàng mà còn chỉ định một giá trị cụ thể (bộ lọc) trong ngữ cảnh hàng đó.

Bạn có thể dễ dàng nhìn thấy ngữ cảnh bộ lọc trong các báo cáo của mình. Ví dụ: khi bạn thêm TotalCost vào một trực quan hóa, sau đó thêm Year và Region, bạn đang xác định ngữ cảnh bộ lọc chọn một tập hợp con dữ liệu dựa trên một năm và khu vực nhất định.

Tại sao bối cảnh bộ lọc rất quan trọng đối với DAX? Bởi vì mặc dù ngữ cảnh bộ lọc có thể dễ dàng được áp dụng nhất bằng cách thêm các trường vào trực quan hóa, nhưng ngữ cảnh bộ lọc cũng có thể được áp dụng trong công thức DAX bằng cách xác định bộ lọc bằng cách sử dụng các hàm như ALL, RELATED, FILTER, CALCULATE, theo mối quan hệ và bằng các thang đo khác và cột. Ví dụ: hãy xem công thức sau trong thước đo có tên là Doanh số bán hàng tại cửa hàng:

Bối cảnh bộ lọc với DAX trong Power BI Desktop

Để hiểu rõ hơn về công thức này, chúng ta có thể chia nhỏ nó.

Công thức này bao gồm các yếu tố cú pháp sau:

A. Tên thước đo, Doanh số bán hàng tại cửa hàng .

B. Toán tử dấu bằng ( = ), cho biết phần đầu của công thức.

C. Hàm CALCULATE, đánh giá một biểu thức, dưới dạng đối số, trong ngữ cảnh được sửa đổi bởi các bộ lọc đã chỉ định.

D. Dấu ngoặc đơn () , bao quanh một biểu thức chứa một hoặc nhiều đối số.

E. Một thước đo [Total Sales] trong cùng một bảng với một biểu thức. Thước đo Tổng doanh số có công thức: =SUM(Sales[SalesAmount]).

F. Dấu phẩy ( , ), phân tách đối số biểu thức đầu tiên khỏi đối số bộ lọc.

G. Cột được tham chiếu đầy đủ, Channel[ChannelName]. Đây là bối cảnh hàng của chúng tôi. Mỗi hàng trong cột này chỉ định một kênh, chẳng hạn như Cửa hàng hoặc Trực tuyến.

H. Giá trị cụ thể, Store , dưới dạng bộ lọc. Đây là bối cảnh bộ lọc của chúng tôi.

Công thức này đảm bảo chỉ các giá trị doanh số được xác định bởi thước đo Tổng doanh số mới được tính cho các hàng trong cột Channel[ChannelName] với giá trị Store được sử dụng làm bộ lọc.

Như bạn có thể tưởng tượng, việc có thể xác định ngữ cảnh bộ lọc trong một công thức có những khả năng to lớn và mạnh mẽ. Khả năng chỉ tham chiếu một giá trị cụ thể trong một bảng liên quan chỉ là một ví dụ. Đừng lo lắng nếu bạn không hoàn toàn hiểu ngữ cảnh ngay lập tức. Khi bạn tạo công thức của riêng mình, bạn sẽ hiểu rõ hơn về ngữ cảnh và lý do tại sao ngữ cảnh lại quan trọng như vậy trong DAX.

4.8. Câu đố nhanh ngữ cảnh

  1. Hai loại bối cảnh là gì?
  2. Bối cảnh bộ lọc là gì?
  3. Bối cảnh hàng là gì?

Câu trả lời được cung cấp ở cuối bài viết này.

5. Bản tóm tắt

Bây giờ, bạn đã có hiểu biết cơ bản về các khái niệm quan trọng nhất trong DAX, bạn có thể bắt đầu tạo công thức DAX cho số đo của riêng mình. DAX thực sự có thể hơi khó tìm hiểu, nhưng có rất nhiều tài nguyên dành cho bạn. Sau khi đọc qua bài viết này và thử nghiệm với một vài công thức của riêng bạn, bạn có thể tìm hiểu thêm về các khái niệm và công thức DAX khác có thể giúp bạn giải quyết các vấn đề kinh doanh của riêng mình. Có nhiều tài nguyên DAX dành cho bạn; quan trọng nhất là tham chiếu Data Analysis Expressions (DAX) .

Vì DAX đã xuất hiện được vài năm trong các công cụ Microsoft BI khác, chẳng hạn như Power Pivot và các mô hình Analysis Services Tabular, nên có rất nhiều thông tin tuyệt vời. Bạn có thể tìm thêm thông tin trong sách, sách trắng và blog Microsoft và các chuyên gia BI. Wiki Trung tâm tài nguyên DAX trên TechNet cũng là một nơi tuyệt vời để bắt đầu.

Đáp án QuickQuiz:

Cú pháp:

  1. Xác thực và nhập thước đo vào mô hình.
  2. Dấu ngoặc vuông [].

Chức năng:

  1. Một bảng và một cột.
  2. Đúng. Một công thức có thể chứa tối đa 64 hàm lồng nhau.
  3. Các chức năng văn bản .

Định nghĩa bài văn:

  1. Ngữ cảnh hàng và ngữ cảnh bộ lọc.
  2. Một hoặc nhiều bộ lọc trong phép tính xác định một giá trị.
  3. Hàng hiện tại.

Xem thông tin khai giảng Khóa học Business Intelligence mới nhất tại Mastering Data Analytics. Liên hệ 0961 48 48 66 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!