Khởi động Nhanh: Tìm hiểu Kiến thức cơ bản về DAX trong 30 Phút

Áp dụng cho
Excel cho Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Bắt đầu Nhanh này dành cho người dùng mới dùng Power Pivot trong Excel hoặc dự án mô hình dạng bảng được tạo ra trong Công cụ Dữ liệu SQL Server. Bài viết này nhằm cung cấp cho bạn một giới thiệu nhanh chóng và dễ dàng về cách bạn có thể dùng Biểu thức Phân tích Dữ liệu (DAX) để giải quyết một số vấn đề lập mô hình dữ liệu và phân tích cơ bản. Chủ đề này bao gồm thông tin khái niệm, một loạt các tác vụ bạn có thể hoàn thành và một vài bài kiểm tra để kiểm tra những gì bạn đã học. Sau khi hoàn thành chủ đề này, bạn sẽ hiểu rõ các khái niệm cơ bản nhất trong DAX.

DAX là gì?

DAX là tập hợp các hàm, toán tử và hằng số có thể được 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ói một cách đơn giản hơn, DAX giúp bạn tạo ra thông tin mới từ dữ liệu có sẵn trong mô hình của bạn.

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

Thật dễ dàng để tạo sổ làm việc và nhập một số dữ liệu vào đó. Bạn thậm chí có thể tạo PivotTable hoặc PivotChart hiển thị thông tin quan trọng 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 dữ liệu bán hàng quan trọng trên một vài 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 kết hợp các dữ liệu kiểm kê quan trọng từ một vài bảng trong các nguồn dữ liệu khác nhau? Công thức DAX cung cấp chức năng này cũng như nhiều chức năng quan trọng khác. Việc tìm hiểu cách tạo các 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 có được thông tin mình 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à Business Intelligence và DAX sẽ giúp bạn đạt được điều đó.

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

Bạn có thể đã quen thuộc 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, những 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 tôi sẽ tập trung đặc biệt vào việc tìm hiểu các công thức DAX được sử dụng trong tính toán. Bạn đã quen thuộc với các khái niệm cơ bản của cả cột tính toánsố đo (còn được gọi là trường tính toán), cả hai điều này được mô tả trong Trợ giúp Power Pivot. Bạn cũng nên làm quen với môi trường và công cụ biên soạn Power Pivot trong Excel.

Sổ làm việc 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 nó với một số 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 sổ làm việc DAX Mẫu Formulas.xlsx của Contoso. Bạn có thể tải xuống sổ làm việc từ http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Khi bạn đã tải sổ làm việc xuống máy tính của mình, hãy mở sổ làm việc đó rồi mở cửa sổ Power Pivot.

Hãy bắt đầu!

Chúng tôi sẽ định hình DAX xoay quanh ba khái niệm cơ bản rất quan trọng: Cú pháp, Hàm và Ngữ cảnh. Tất nhiên, 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.

Cú pháp

Trước khi bạn tạo công thức của riêng mình, chúng ta hãy xem cú pháp công thức DAX. Cú pháp bao gồm các thành phần khác nhau tạo nên một công thức hay đơn giản hơn là cách viết công thức. Ví dụ, chúng ta hãy xem một công thức DAX đơn giản được dùng để tạo dữ liệu (giá trị) mới cho mỗi hàng trong cột được tính, có tên là Margin, trong bảng FactSales: (màu văn bản công thức chỉ mang tính chất minh họa)

Công thức cột được tính

Cú pháp của công thức này bao gồm các thành phần sau đây:

  1. Toán tử dấu bằng (=) cho biết phần đầu của công thức và khi công thức này được tính toán, toán tử sẽ trả về kết quả hoặc giá trị. Tất cả các công thức tính toán giá trị đều sẽ bắt đầu bằng dấu bằng.
  2. Cột được tham chiếu [SalesAmount] chứa các giá trị mà chúng ta muốn trừ đi. Tham chiếu cột trong công thức luôn được đặt trong dấu ngoặc vuông []. Không giống các công thức Excel tham chiếu ô, công thức DAX luôn tham chiếu đến một cột.
  3. Toán tử toán học trừ (-).
  4. Cột được tham chiếu [TotalCost] chứa các giá trị mà chúng ta muốn trừ khỏi các giá trị trong cột [SalesAmount].

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

Trong bảng FactSales, đối với mỗi hàng trong cột được tính lề, hãy tính (=) một giá trị bằng cách trừ (-) các giá trị trong cột [Tổng_Phí_Số_Doanh_số].

Chúng ta hãy xem một loại công thức khác, một loại được dùng trong số đo:

Công chức cột được tính

Công thức này bao gồm các thành phần cú pháp sau đây:

  1. Tên thước đo Tổng của Doanh số. Công thức cho giá trị đo có thể gồm tên số đo, tiếp theo là dấu hai chấm, rồi đến công thức tính toán.
  2. Toán tử dấu bằng (=) cho biết phần đầu của công thức tính toán. Khi được tính toán, nó sẽ trả về kết quả.
  3. Hàm SUM cộng tất cả các số trong cột [SalesAmount]. Bạn sẽ tìm hiểu thêm về các hàm sau.
  4. Dấu ngoặc đơn () bao quanh một hoặc nhiều tham đối. Tất cả các hàm đều cần có ít nhất một tham đối. Đối số chuyển một giá trị cho hàm.
  5. Bảng tham chiếu FactSales.
  6. Cột được tham chiếu [SalesAmount] trong bảng FactSales. Với đối số này, hàm SUM biết để tổng hợp hàm SUM trên cột nào.

Bạn có thể đọc công thức này là:

Đối với thước đo có tên Tổng Doanh Số, hãy tính (=) TỔNG các giá trị trong cột [Doanh Số] trong bảng Thực tế_Doanh_số.

Khi được đặt vào vùng thả Giá trị trong Danh sách Trường PivotTable, thước đo này sẽ tính toán và trả về các giá trị được xác định bởi mỗi ô trong PivotTable, chẳng hạn như Điện thoại Di động ở Hoa Kỳ.

Lưu ý rằng có một số điểm khác biệt về công thức này so với công thức chúng ta dùng cho cột được tính Ký quỹ. Cụ thể, chúng tôi đã giới thiệu một hàm SUM. Hàm là công thức được viết sẵn giúp bạn dễ dàng hơn khi thực hiện các tính toán phức tạp và các thao tác với số, ngày, thời gian, văn bản và nhiều nội dung khác. Bạn sẽ tìm hiểu thêm về các hàm sau.

Không giống như cột được tính Lề trước đó, bạn sẽ thấy cột [SalesAmount] được đặt trước là bảng FactSales chứa cột đó. Đây được gọi là tên cột đủ điều kiện trong đó bao gồm tên cột đứng 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 tên bảng được bao gồm 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 ngắn hơn và dễ đọc hơn. Tuy nhiên, bạn nên luôn bao gồm tên bảng trong các công thức đo lường, ngay cả khi ở trong cùng một bảng.

Lưu ý

Nếu tên bảng có chứa khoảng trắng, từ khóa dành riêng hoặc ký tự không được phép, bạn phải đặt tên bảng trong dấu ngoặc đơn. Bạn cũng phải đặt tên bảng trong dấu ngoặc kép nếu tên chứa bất kỳ ký tự nào nằm ngoài phạm vi ký tự chữ và số ANSI, bất kể bản địa của bạn có hỗ trợ bộ ký tự đó hay không.

Điều rất quan trọng là công thức của bạn phải có cú pháp chính xác. Trong hầu hết các trường hợp, nếu cú pháp không chính xác, lỗi cú pháp sẽ được trả về. Trong các trường hợp khác, cú pháp có thể chính xác, nhưng giá trị trả về có thể không như bạn mong đợi. Power Pivot (và Công cụ Dữ liệu SQL Server) bao gồm IntelliSense; một tính năng 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 các phần tử đúng.

Chúng ta hãy tạo một công thức đơn giản. Tác vụ này sẽ giúp bạn hiểu sâu hơn về cú pháp công thức và cách tính năng IntelliSense trong thanh công thức có thể giúp bạn.

Nhiệm vụ: Tạo công thức đơn giản cho cột được tính

  1. Nếu bạn chưa ở trong cửa sổ Power Pivot, trong Excel, trên ribbon PowerPivot, hãy bấm Cửa sổ Power Pivot.
  2. Trong cửa sổ Power Pivot, bấm vào bảng FactSales (tab).
  3. Cuộn đến cột ngoài cùng bên phải, rồi trong tiêu đề cột, bấm Thêm Cột.
  4. Bấm vào thanh công thức dọc theo phần trên cùng của cửa sổ trình thiết kế mô hình.
    Thanh Công thức PowerPivot
    Con trỏ của bạn bây giờ xuất hiện trong thanh công thức. Thanh công thức là nơi bạn có thể nhập công thức cho cột được tính toán hoặc trường được tính toán.
    Chúng ta hãy dành vài phút để xem ba nút ở bên trái của thanh công thức.
    Thanh công thức
    Khi con trỏ hiện hoạt trong thanh công thức, ba nút đó sẽ hoạt động. Nút ngoài cùng bên trái, chữ X, chỉ đơn giản là một nút hủy. Tiếp tục và bấm vào nút này. Con chạy của bạn không còn xuất hiện trong thanh công thức, nút hủy bỏ và nút dấu kiểm không còn xuất hiện nữa. Tiếp tục và bấm lại vào thanh công thức. Nút hủy bỏ và nút dấu kiểm bây giờ sẽ xuất hiện lại. Điều này có nghĩa là bạn đã sẵn sàng để bắt đầu nhập công thức.
    Nút dấu kiểm là nút kiểm tra công thức. Tính năng này không có nhiều tác dụng cho đến khi bạn nhập công thức. Chúng ta sẽ nhắc lại cách này sau giây lát.
    Bấm vào nút Fx . Bạn sẽ thấy một hộp thoại mới sẽ xuất hiện; hộp thoại chèn hàm. Hộp thoại Chèn Hàm là cách dễ nhất để bắt đầu nhập công thức DAX. Chúng ta sẽ thêm hàm vào công thức khi tạo số đo sau một chút, nhưng hiện tại, bạn không cần thêm hàm vào công thức cột được tính. Tiếp tục và đóng hộp thoại Chèn hàm.
  5. Trong thanh công thức, hãy nhập dấu bằng =, sau đó nhập dấu ngoặc vuông mở [. Bạn sẽ thấy một cửa sổ nhỏ xuất hiện với tất cả các cột trong bảng FactSales. Đây là IntelliSense trong thực tiễn.
    Vì các cột được tính toán luôn được tạo trong bảng hiện hoạt hiện tại nên không cần phải đặt tên bảng vào trước tên cột. Tiếp tục và cuộn xuống rồi bấm đúp vào [SalesQuantity]. Bạn cũng có thể cuộn đến tên cột bạn muốn, rồi nhấn Tab.
    Con trỏ của bạn hiện hoạt ở bên phải [SalesQuantity].
  6. Nhập một khoảng trắng, rồi nhập toán tử trừ - (dấu trừ), rồi nhập một khoảng trắng khác.
  7. Bây giờ, nhập một dấu ngoặc vuông mở khác [. Lần này, chọn cột [ReturnQuantity], rồi nhấn Enter.
    Nếu bạn gặp lỗi, hãy xem kỹ cú pháp của bạn. Nếu cần, hãy so sánh nó với công thức trong cột Tính lãi được mô tả trước đó.
    Sau khi bạn nhấn Enter để hoàn tất công thức, từ Tính toán sẽ xuất hiện trong thanh trạng thái dọc theo phía dưới cửa sổ Power Pivot. Việc này diễn ra nhanh chóng, ngay cả khi bạn vừa tính toán giá trị mới cho hơn ba triệu hàng.
  8. Bấm chuột phải vào tiêu đề cột và đổi tên cột, NetSales.

Thế là xong! Bạn vừa tạo một công thức DAX đơn giản nhưng rất mạnh mẽ. Đối với từng hàng trong bảng FactSales, công thức NetSales tính toán một giá trị bằng cách lấy giá trị trong cột [SalesQuantity] trừ đi giá trị trong cột [Số lượng Doanh_số_lượng]. Lưu ý cách chúng tôi vừa nói "Cho mỗi hàng". Đây là ภาพรวมของmột khái niệm rất quan trọng khác trong DAX; Ngữ cảnh hàng. Bạn sẽ tìm hiểu thêm về ngữ cảnh hàng sau.

Một điều thực sự quan trọng cần hiểu khi nhập toán tử vào công thức DAX là kiểu dữ liệu trong các đối số mà bạn đang sử dụng. Ví dụ, nếu bạn nhập công thức sau, = 1 & 2, giá trị trả về sẽ là giá trị văn bản "12". Điều này là do toán tử dấu và (&) dùng cho móc nối văn bản. DAX diễn giải công thức này là: Tính toán kết quả bằng cách lấy giá trị 1 dưới dạng văn bản và cộng giá trị 2 dưới dạng văn bản. Bây giờ, nếu bạn nhập = 1 + 2, DAX sẽ đọc công thức này là: Tính toán kết quả bằng cách lấy giá trị số 1 và cộng giá trị số 2. Kết quả tất nhiên là "3", một giá trị số. DAX tính toán giá trị kết quả tùy thuộc vào toán tử trong công thức, không dựa trên kiểu dữ liệu của cột được dùng trong đối số. Các kiểu dữ liệu trong DAX rất quan trọng, nhưng nằm ngoài phạm vi của phần Bắt đầu Nhanh này. Để tìm hiểu thêm về các kiểu dữ liệu và toán tử trong công thức DAX, hãy xem Tham chiếu DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) trong Sách Trực tuyến.

Hãy thử một cách khác. Lần này, bạn sẽ tạo một số đo bằng cách nhập công thức và sử dụng IntelliSense. Đừng lo lắng quá nhiều nếu bạn không hiểu đầy đủ công thức. Điều quan trọng ở đây là tìm hiểu cách tạo công thức sử dụng một số thành phần cùng nhau theo cú pháp chính xác.

Tác vụ: Tạo công thức đo

  1. Trong bảng FactSales , bấm vào ô trống bất kỳ trong Khu vực Tính toán. Đây là khu vực ô trống ngay dưới bảng trong cửa sổ Power Pivot.

Vùng Tính trong PowerPivot

  1. Trong thanh công thức, nhập tên Doanh số Quý Trước đó:.
  2. Nhập dấu bằng = để bắt đầu công thức tính toán.
  3. Nhập vài chữ cái đầu CAL, rồi bấm đúp vào hàm bạn muốn sử dụng. Trong công thức này, bạn muốn sử dụng hàm CALCULATE .
  4. Nhập dấu mở ngoặc đơn ( để bắt đầu các đối số được chuyển đến hàm CALCULATE.
    Lưu ý sau khi nhập dấu ngoặc đơn mở, IntelliSense sẽ hiển thị cho bạn các đối số cần thiết cho hàm CALCULATE. Bạn sẽ tìm hiểu về các đối số sau một chút.
  5. Nhập vài chữ cái đầu tiên của bảng FactSales, rồi trong danh sách thả xuống, bấm đúp vào FactSales[Sales].
  6. Nhập dấu phẩy (,) để xác định bộ lọc đầu tiên, sau đó nhập PRE, rồi bấm đúp vào hàm PREVIOUSQUARTER .
    Sau khi chọn hàm PREVIOUSQUARTER, một dấu ngoặc đơn mở khác sẽ xuất hiện, cho biết cần phải có đối số khác; lần này dành cho hàm PREVIOUSQUARTER.
  7. Nhập vài chữ cái đầu tiên là Dim, rồi bấm đúp vào DimDate[DateKey].
  8. Hãy đóng cả đối số được truyền đến hàm PREVIOUSQUARTER và hàm CALCULATE bằng cách nhập hai dấu đóng ngoặc tròn )).
    Công thức của bạn giờ sẽ trông giống như thế này:
    Doanh số Quý Trước đó:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))
  9. Bấm vào nút kiểm tra công thức trên thanh công thức để xác thực công thức. Nếu bạn gặp lỗi, hãy xác minh từng thành phần của cú pháp.

Bạn đã làm được! Bạn vừa tạo một số đo bằng DAX, và không phải là một số đo dễ dàng về điều đó. Công thức này sẽ làm gì là tính toán tổng doanh thu cho quý trước, tùy thuộc vào bộ lọc được áp dụng trong PivotTable hoặc PivotChart.

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. Đầu tiên, công thức này bao gồm hai hàm. Lưu ý rằng hàm PREVIOUSQUARTER được lồng dưới dạng đối số được chuyển đến hàm CALCULATE . Công thức DAX có thể bao gồm đến 64 hàm lồng. Không chắc một công thức có bao gồm nhiều hàm lồng nhau như vậy. Thực tế, một công thức như vậy sẽ rất khó để tạo và gỡ lỗi, và có lẽ cũng sẽ không nhanh lắm.

Trong công thức này, bạn cũng đã sử dụng bộ lọc. Bộ lọc thu hẹp nội dung sẽ được tính. Trong trường hợp này, bạn đã chọn một bộ lọc làm đối số mà thực ra là một hàm khác. Bạn sẽ tìm hiểu thêm về các bộ lọc sau.

Cuối cùng, bạn sử dụng hàm CALCULATE. Đây là một trong những hàm mạnh mẽ nhất của DAX. Khi bạn tạo các mô hình dữ liệu và tạo các công thức phức tạp hơn, bạn có thể sẽ dùng hàm này nhiều lần. Việc thảo luận về hàm CALCULATE nằm ngoài phạm vi của Hướng dẫn Nhanh này, nhưng khi kiến thức của bạn về DAX ngày càng tăng, hãy đặc biệt chú ý đến vấn đề này.

Lưu ý

Thông thường, để sử dụng các hàm hiển thị Thời gian Thông minh trong công thức DAX, bạn phải chỉ định cột ngày duy nhất bằng cách dùng hộp thoại Đánh dấu là Bảng Ngày. Trong sổ làm việc Samples.xlsx Công thức DAX của Contoso, cột DateKey trong bảng DimDate được chọn làm cột ngày duy nhất.

Tín dụng Bổ sung

Bạn có thể hỏi: 'Công thức DAX đơn giản nhất mà tôi có thể tạo là gì?' Chà, câu trả lời cho điều đó là 'công thức bạn không cần phải làm'. Và đó chính là những gì bạn có thể làm bằng cách sử dụng một hàm tổng hợp chuẩn trong một số đo. Hầu như mọi mô hình dữ liệu đều cần lọc và tính toán trên dữ liệu tổng hợp. Ví dụ: hàm SUM trong thước đo Tổng Số tiền Doanh số mà bạn đã thấy trước đó được sử dụng để cộng tất cả các số trong một cột cụ thể. DAX cũng bao gồm một số hàm tổng hợp giá trị khác. Bạn có thể tự động tạo công thức bằng cách sử dụng phép tổng hợp tiêu chuẩn bằng cách sử dụng tính năng Tự Tính tổng.

Nhiệm vụ tín dụng bổ sung: Tạo công thức đo bằng cách dùng tính năng Tự động Tính tổng

  1. Trong bảng FactSales, cuộn đến cột ReturnQuantity, rồi bấm vào tiêu đề cột để chọn toàn bộ cột.
  2. Trên tab Trang đầu , trên ribbon, trong nhóm Tính toán , bấm vào nút Tự Tính tổng .

Tự động tính tổng trong PowerPivot

Bấm vào mũi tên xuống bên cạnh AutoSum, rồi bấm Average (lưu ý cả các hàm tổng hợp chuẩn khác mà bạn cũng có thể sử dụng).

Ngay lập tức, một số đo mới được tạo ra với tên là Average là ReturnQuantity: theo sau là công thức =AVERAGE([ReturnQuantity]).

Bây giờ không dễ dàng sao? Tất nhiên, không phải tất cả các công thức bạn tạo đều đơn giản như vậy. Tuy nhiên, bằng cách sử dụng tính năng Tự Tính tổng, bạn có thể tạo các công thức nhanh chóng và dễ dàng bằng cách sử dụng các phép tính tổng hợp tiêu chuẩn.

Điều này sẽ giúp bạn hiểu khá tốt về cú pháp dùng trong các công thức DAX. Bạn cũng được giới thiệu về một số tính năng thực sự thú vị như IntelliSense và AutoSum để giúp bạn tạo công thức nhanh chóng, dễ dàng và chính xác. Tất nhiên bạn có thể tìm hiểu nhiều hơn về cú pháp. Một nơi hay để tìm hiểu thêm là Tham khảo DAX hoặc Sách Trực tuyến về SQL.

Cú pháp QuickQuiz

  1. Nút này trên thanh công thức có tác dụng gì?
    Nút hàm
  2. Cái gì luôn bao quanh tên cột trong công thức DAX?
  3. Bạn sẽ viết công thức cho những thao tác sau đây như thế nào:
    Trong bảng DimProduct, đối với mỗi hàng trong cột được tính toán UnitMargin, hãy tính toán một giá trị bằng cách trừ các giá trị trong cột UnitCost từ các giá trị trong cột UnitPrice?

Câu trả lời được cung cấp ở cuối chủ đề này.

Hàm

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

DAX bao gồm các thể loại hàm sau: Hàm Ngày và Thời gian, Thông tin, Lô-gic, Toán học, Thống kê, Văn bản và Hiển thị Thời gian Thông minh. 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ẽ có dạng tương tự như bạn; Tuy nhiên, các hàm DAX là duy nhất theo những cách sau đây:

  • Một hàm DAX luôn tham chiếu đến một cột hay một bảng đầy đủ. 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 bộ lọc vào công thức.
  • Nếu bạn cần tùy chỉnh tính toán 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 một giá trị liên quan như một loại đối số, để thực hiện các phép tính thay đổi tùy 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 chứ không trả về giá trị. Bảng không được hiển thị, nhưng được sử dụng để cung cấp đầu vào cho các hàm 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 bảng đó hoặc tính tổng động trên các bảng hoặc cột đã lọc.
  • DAX bao gồm một loạt các hàm hiển thị thời gian thông minh. 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 tính toán động dựa trên các phạm vi đó. Ví dụ, bạn có thể so sánh các tổng giữa các giai đoạn song song.

Đôi khi, thật khó để biết được bạn có thể cần sử dụng hàm nào trong một công thức. Power Pivot và trình thiết kế mô hình dạng bảng trong Công cụ Dữ liệu SQL Server bao gồm tính năng Chèn Hàm, một hộp thoại giúp bạn chọn hàm theo thể loại và cung cấp các mô tả ngắn cho từng hàm.

Hộp thoại Chèn Hàm với Tất cả được chọn và ABS được tô sáng

Chúng ta hãy tạo một công thức mới trong đó bao gồm một hàm mà bạn sẽ chọn bằng cách sử dụng tính năng Chèn Hàm:

Tác vụ: Thêm hàm vào công thức bằng cách sử dụng Chèn Hàm

  1. Trong bảng FactSales, cuộn xuống cột ngoài cùng bên phải, rồi trong tiêu đề cột, bấm Thêm Cột.
  2. Trong thanh công thức, hãy nhập dấu bằng, =.
  3. Bấm vào nút Chèn hàm . Thanh công thức với mũi tên trỏ vào nút Chèn Hàm Thao tác này sẽ mở hộp thoại Chèn hàm .
  4. Trong hộp thoại Chèn Hàm , hãy bấm vào hộp danh sách Chọn một thể loại . Theo mặc định, Tất cả được chọn và tất cả các hàm trong thể loại Tất cả được liệt kê bên dưới. Có rất nhiều hàm, vì vậy bạn sẽ muốn lọc các hàm để xác định được loại hàm mình đang tìm kiếm dễ dàng hơn.
  5. Đối với công thức này, bạn muốn trả về một số dữ liệu đã tồn tại trong bảng khác. Đối với trường hợp đó, bạn sẽ sử dụng hàm trong danh mục Bộ lọc. Tiếp tục và bấm vào danh mục Bộ lọc , rồi trong Chọn hàm, cuộn xuống và bấm đúp vào hàm RELATED. Bấm Ok để đóng hộp thoại Chèn hàm .
  6. Sử dụng IntelliSense để giúp bạn tìm và chọn cột DimChannel[ChannelName].
  7. Đóng công thức, rồi nhấn Enter.
  8. Sau khi bạn nhấn Enter để hoàn tất công thức, từ Tính toán sẽ xuất hiện trong thanh trạng thái dọc theo phía dưới cửa sổ Power Pivot. Bây giờ bạn sẽ thấy rằng bạn vừa tạo một cột mới trong bảng FactSales với thông tin kênh từ bảng DimChannel.
  9. Đổi tên cột Kênh.
    Công thức của bạn phải có dạng như thế này: =RELATED(DimChannel[ChannelName])

Bạn vừa được giới thiệu về một hàm rất quan trọng khác trong DAX, hàm RELATED . Hàm RELATED trả về giá trị từ bảng khác. Bạn có thể sử dụng hàm RELATED với điều kiện có mối quan hệ giữa bảng bạn đang ở và bảng có chứa các giá trị bạn muốn có. Tất nhiên, hàm RELATED có khả năng to lớn. Trong trường hợp này, bây giờ bạn có thể bao gồm kênh bán hàng cho từng giao dịch bán hàng trong bảng FactSales. Giờ đây, bạn có thể ẩn bảng DimChannel từ danh sách trường PivotTable, giúp bạn dễ dàng dẫn hướng hơn và chỉ xem thông tin quan trọng nhất mà bạn thực sự cần. Giống như hàm CALCULATE được mô tả trước đó, hàm RELATED rất quan trọng và bạn có thể sẽ sử dụng hàm này nhiều lần.

Như bạn có thể thấy, các hàm trong DAX có thể giúp bạn tạo ra những công thức rất mạnh mẽ. Chúng tôi thực sự chỉ đề cập đến những điều cơ bản về hàm. Khi kỹ năng DAX của bạn được cải thiện, bạn sẽ tạo công thức bằng nhiều hàm khác nhau. Một trong những nơi tốt nhất để tìm hiểu chi tiết về tất cả các hàm DAX là trong Tham chiếu Biểu thức Phân tích Dữ liệu (DAX).

QuickQuiz về hàm

  1. Hàm luôn tham chiếu đến điều gì?
  2. Một công thức có thể chứa nhiều hàm không?
  3. Bạn sẽ sử dụng thể loại hàm nào để ghép 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 chủ đề này.

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 kiểu ngữ cảnh trong DAX; Ngữ cảnh Hàng và Ngữ cảnh Bộ lọc. Trước hết, chúng ta sẽ xem xét ngữ cảnh của hàng.

Ngữ cảnh Hàng

Ngữ cảnh hàng dễ nhất được nghĩ là hàng hiện tại. Ví dụ: Bạn có nhớ cột được tính Lề mà bạn đã thấy trước đó khi tìm hiểu về cú pháp? Công thức =[SalesAmount] - [TotalCost] tính toán giá trị trong cột Lề cho từng hàng trong bảng. Giá trị cho mỗi hàng được tính toán từ các giá trị trong hai cột khác, [SalesAmount] và [TotalCost] trong cùng hàng. DAX có thể tính toán giá trị cho mỗi hàng trong cột Lề vì nó có ngữ cảnh: Đối với mỗi hàng, nó lấy các giá trị trong cột [Tổng_Phí] và trừ các giá trị đó từ các giá trị trong cột [Số_tiền_Doanh_số].

Trong ô được chọn được hiển thị dưới đây, giá trị $49,54 trong hàng hiện tại được tính toán bằng cách lấy giá trị $51,54 trong cột [Tổng_phí] lấy giá trị $101,08 trong cột [Doanh số_Doanh_số].

Ngữ cảnh hàng trong PowerPivot

Ngữ cảnh hàng không chỉ áp dụng cho các cột được tính toán. Ngữ cảnh hàng cũng áp dụng bất cứ khi nào công thức có hàm áp dụng bộ lọc để xác định một hàng đơn trong bả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. Kiểu ngữ cảnh hàng này thường áp dụng nhất cho giá trị đo.

Ngữ cảnh Bộ lọc

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 nhất nghĩ về ngữ cảnh bộ lọc là: Một hoặc nhiều bộ lọc được áp dụng trong một phép tính giúp xác định kết quả hay giá trị.

Ngữ cảnh bộ lọc không tồn tại tại vị trí của ngữ cảnh hàng; thay vào đó, nó áp dụng thêm cho ngữ cảnh hàng. Ví dụ, để thu hẹp thêm 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, không chỉ xác định ngữ cảnh hàng mà còn chỉ xác định một giá trị cụ thể (bộ lọc) trong bối cảnh hàng đó.

Ngữ cảnh bộ lọc có thể dễ dàng nhìn thấy trong PivotTable. Ví dụ: khi bạn thêm TotalCost vào vùng Giá trị, rồi thêm Year and Region vào Hàng hoặc Cột, bạn đang xác định ngữ cảnh bộ lọc sẽ chọn một tập hợp con dữ liệu dựa trên một năm và khu vực đã cho.

Tại sao ngữ cảnh bộ lọc lại quan trọng đối với DAX? Bởi vì, trong khi ngữ cảnh bộ lọc có thể được áp dụng dễ dàng nhất bằng cách thêm nhãn cột và hàng và slicer trong PivotTable, 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 một bộ lọc sử dụng các hàm như ALL, RELATED, FILTER, CALCULATE, theo mối quan hệ và các số đo và cột khác. Ví dụ: chúng ta hãy xem công thức sau đây trong thước đo có tên là StoreSales:

Công thức

Rõ ràng công thức này phức tạp hơn một số công thức khác mà bạn đã thấy. Tuy nhiên, để hiểu rõ hơn về công thức này, chúng ta có thể chia nhỏ công thức này, giống như chúng ta đã làm với các công thức khác.

Công thức này bao gồm các thành phần cú pháp sau đây:

  1. Tên thước đo StoreSales, theo sau là dấu hai chấm :.
  2. Toán tử dấu bằng (=) cho biết phần đầu của công thức.
  3. Hàm CALCULATE đánh giá một biểu thức, làm đối số, trong ngữ cảnh được sửa đổi bởi các bộ lọc đã xác định.
  4. Dấu ngoặc đơn () bao quanh một hoặc nhiều tham đối.
  5. Số đo [Sales] trong cùng bảng với biểu thức. Thước đo Doanh số có công thức: =SUM(FactSales[SalesAmount]).
  6. Dấu phẩy (,) phân tách từng bộ lọc.
  7. Cột được tham chiếu và một giá trị cụ thể, DimChannel[ChannelName] ="Store", như một bộ lọc.

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

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

QuickQuiz về ngữ cảnh

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

Câu trả lời được cung cấp ở cuối chủ đề này.

Tóm tắt

Bây giờ bạn đã hiểu 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 các cột và số đo được tính toán của riêng mình. DAX thực sự có thể hơi khó để tìm hiểu, nhưng có nhiều tài nguyên sẵn dùng cho bạn. Sau khi đọc qua chủ đề này vài lần và thử nghiệm với một vài công thức của riêng mình, 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 bạn. Có nhiều tài nguyên DAX sẵn dùng cho bạn trong Trợ giúp Power Pivot, Sách Trực tuyến về SQL Server, sách trắng và blog từ cả Microsoft lẫn các chuyên gia BI hàng đầu. Wiki Trung tâm Tài nguyên DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) là một nơi tuyệt vời để bắt đầu. Tham chiếu Biểu thức Phân tích Dữ liệu (DAX) cũng là một nguồn tài nguyên tuyệt vời. Hãy nhớ lưu nó trong mục Yêu thích của bạn.

DAX trong sách trắng Mô hình Bảng BI, có sẵn để tải xuống (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) cung cấp một cái nhìn chi tiết hơn về những khái niệm được giới thiệu ở đây, cũng như nhiều khái niệm và công thức nâng cao khác. Sách trắng này cũng sử dụng cùng một sổ làm việc mẫu Contoso DAX Formulas.xlsx mà bạn đã có.

Đáp án của QuickQuiz

Cú pháp:

  1. Mở tính năng Chèn hàm.
  2. Dấu ngoặc đơn [].
  3. =[UnitPrice] - [UnitCost]

Chức năng:

  1. Một bảng và một cột.
  2. Có. Một công thức có thể chứa đến 64 hàm lồng nhau.
  3. Hàm Văn bản.

Ngữ cảnh:

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