Applies ToExcel cho Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Hướng dẫn Nhanh này dành cho người dùng mới sử dụng Power Pivot dự án mô hình bảng hoặc Excel được tạo trong Công cụ Dữ liệu SQL Server. Nó nhằm 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 Biểu thức Phân tích Dữ liệu (DATA Analysis Expressions- DAX) để giải quyết một số vấn đề về lập mô hình và phân tích dữ liệu cơ bản. Chủ đề này bao gồm thông tin khái niệm, một chuỗi các nhiệm 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 nên hiểu rõ các khái niệm cơ bản nhất trong DAX.

DAX là gì?

DAX là một 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 sẽ giúp bạn tạo thông tin mới từ dữ liệu đã có 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 đó. Thậm chí bạn có thể tạo PivotTable hoặc PivotChart hiển thị thông tin quan trọng mà không cần dùng bất kỳ công thức DAX nào. Nhưng nếu bạn cần phân tích dữ liệu doanh số quan trọng trên một số 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 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 cũng cung cấp khả năng này và nhiều chức 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 cần thiết, bạn có thể bắt đầu giải quyết các vấn đề kinh doanh thực sự ảnh hưởng đến điểm mệt nhất của bạn. Đây là Nghiệp vụ Thông minh 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ác 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 tôi sẽ tập trung cụ thể 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 về cả cột và giá trị đo được tính toán (còn được gọi là trường được tính toán), cả hai cách này đều được mô tả Power Pivot trợ. Bạn cũng nên làm quen với công cụ Power Pivot trong môi trường và công cụ biên soạn Excel.

Sổ làm việc Ví dụ

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

Hãy bắt đầu!

Chúng tôi sẽ khung DAX xung 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ó những khái niệm quan trọng khác trong DAX, nhưng việc hiểu biết 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 công thức hoặc đơ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 sử dụng để tạo dữ liệu mới (giá trị) 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ỉ dành cho mục đích 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 đầu công thức và khi công thức này được tính toán, nó 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ị 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 như các công thức Excel tham chiếu đến một ô, công thức DAX luôn tham chiếu 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ừ đi từ các giá trị trong cột [SalesAmount].

Khi tìm hiểu cách đọc công thức DAX, việc chia nhỏ từng thành phần thành phần thành một ngôn ngữ bạn nghĩ và nói hàng ngày là điều 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 Toán Lề, tính toán (=) một giá trị bằng cách trừ các giá trị (-) trong cột [TotalCost] khỏi các giá trị trong cột [SalesAmount].

Chúng ta hãy xem qua một loại công thức khác, công thức được sử dụng trong thước đ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 phép đo Tổng Doanh thu Số tiền. Công thức cho số đo có thể bao gồm tên số đo, tiếp theo là dấu hai chấm, tiếp theo là công thức tính toán.

  2. Toán tử dấu bằng (=) cho biết đầu công thức tính toán. Khi 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 này.

  4. Dấu ngoặc đơn () bao quanh một hoặc nhiều tham đối. Tất cả các hàm yêu cầu ít nhất một tham đối. Đối số truyền giá trị tới một hàm.

  5. Bảng được 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 cần tổng hợp một cột nào trên cột nào.

Bạn có thể đọc công thức này như sau:

Đối với số đo có tên Tổng Doanh thu Số tiền, hãy tính toán (=) TỔNG các giá trị trong cột [SalesAmount] trong bảng FactSales.

Khi được đặt vào vùng thả Giá trị trong Danh sách Trường PivotTable, số đ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, ví dụ: Điện thoại Di động tại 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 mà chúng ta dùng cho cột được tính toán Lề. Đặc biệt, chúng tôi đã giới thiệu một hàm sum. Hàm là các công thức được viết sẵn giúp bạn dễ dàng thực hiện các phép tính và thao tác phức tạp hơn với số, ngày, thời gian, văn bản và nhiều thao tác khác. Bạn sẽ tìm hiểu thêm về các hàm sau này.

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

Lưu ý: Nếu tên của bảng chứa khoảng trắng, từ khóa dành riêng hoặc ký tự không cho phép, bạn phải đặt tên bảng trong dấu nháy đơ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ể ngôn ngữ của bạn có hỗ trợ bộ ký tự hay không.

Điều rất quan trọng là các công thức của bạn 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 các giá trị được trả về có thể không giố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 được sử dụng để tạo ra các công thức sửa syntactically bằng cách giúp bạn chọn các thành phần chính xác.

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 thêm 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 dải băng Power Pivot, hãy bấm Power Pivot Sổ.

  2. Trong cửa Power Pivot, bấm vào bảng (tab) FactSales .

  3. Cuộn sang cột bên phải nhiều nhất, 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ía 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ờ sẽ 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 chút thời gian để xem ba nút ở bên trái 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ẽ hiện hoạt. Nút ngoài cùng bên trái, X, chỉ đơn giản là một nút hủy bỏ. Hãy tiếp tục và bấm vào nó. Con trỏ của bạn không còn xuất hiện trong thanh công thức và nút hủy bỏ và nút dấu kiểm không còn xuất hiện. 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. Thao tác này không có tác dụng gì nhiều cho đến khi bạn nhập công thức. Chúng tôi sẽ trở lại với nó trong một chút.

    Bấm vào nút Fx . Bạn sẽ thấy một hộp thoại mới 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 một hàm vào công thức khi chúng ta tạo một số đo sau đó một chút, nhưng bây giờ, bạn không cần thêm hàm vào công thức cột được tính của mình. Tiếp tục và đóng hộp thoại Chèn Hàm.

  5. Trong thanh công thức, 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 cùng với tất cả các cột trong bảng FactSales. Đây là IntelliSense hoạt động.

    Vì các cột được tính luôn được tạo trong bảng hiện hoạt mà bạn đang ở trong đó nên không cần phải đặt trước tên cột với tên bảng. 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 mình muốn, rồi nhấn Tab.

    Con trỏ của bạn hiện đang hoạt động ở bên phải của [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ờ, hãy 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 xét 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 được tính Lề được mô tả ở phần trước.

    Sau khi bạn nhấn Enter để hoàn thành công thức, từ Tính toán sẽ xuất hiện trong thanh trạng thái dọc theo phần dưới cùng của cửa Power Pivot này. Nó diễn ra nhanh chóng, ngay cả khi bạn chỉ tính toán các 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 mỗi hàng trong bảng FactSales, công thức NetSales tính toán một giá trị bằng cách trừ giá trị trong cột [ReturnQuantity] khỏi giá trị trong cột [SalesQuantity]. Hãy lưu ý cách chúng ta vừa nói "Đối với mỗi hàng". Đây là một cái nhìn thoáng qua của một khái niệm rất quan trọng trong DAX; ngữ cảnh hàng. Sau này, bạn sẽ tìm hiểu thêm về ngữ cảnh hàng.

Đ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ố bạn đang sử dụng. Ví dụ: nếu bạn muốn nhập công thức sau đây, = 1 & 2, giá trị được trả về sẽ là giá trị văn bản "12". Điều này là do toán tử dấu và (&) là để ghép nối văn bản. DAX diễn giải công thức này để đọc: Tính toán kết quả bằng cách lấy giá trị 1 làm 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 các 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ố. Kiểu dữ liệu trong DAX rất quan trọng nhưng nằm ngoài phạm vi của Bắt đầu Nhanh này. Để tìm hiểu thêm về kiểu dữ liệu và toán tử trong công thức DAX, hãy xem Tham khảo 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à bằng cách 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 bằng cách sử dụng một số thành phần cùng nhau trong cú pháp chính xác.

Nhiệm vụ: Tạo công thức đo

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

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 tiên 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 dùng hàm CALCULATE .

  4. Nhập một dấu ngoặc đơn mở ( để bắt đầu các đối số được truyền vào 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 tham đối trong 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 xuất hiện, cho biết cần phải có một tham đối khác; lần này, cho hàm PREVIOUSQUARTER.

  7. Nhập một vài chữ cái đầu tiên mờ, rồi bấm đúp vào DimDate[DateKey].

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

    Công thức của bạn giờ đây sẽ trô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 điều đó! Bạn chỉ cần tạo ra một biện pháp bằng cách sử dụng DAX, và không phải là một trong những dễ dàng lúc đó. Công thức này sẽ 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 PivotTable hoặc PivotChart.

Bạn vừa mới được giới thiệu về một số khía cạnh quan trọng của công thức DAX. Trước tiên, công thức này bao gồm hai hàm. Lưu ý hàm PREVIOUSQUARTER được lồng làm đối số được truyền đến hàm CALCULATE . Công thức DAX có thể bao gồm đến 64 hàm lồng nhau. Có vẻ như một công thức không bao giờ chứa quá nhiều hàm lồng vào nhau. Trong thực tế, một công thức như vậy sẽ rất khó để tạo và gỡ lỗi, và có thể nó cũng sẽ không rất nhanh.

Trong công thức này, bạn cũng đã dùng 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ố, mà thực ra là một hàm khác. Bạn sẽ tìm hiểu thêm về bộ lọc sau.

Cuối cùng, bạn dùng hàm CALCULATE. Đây là một trong những hàm mạnh mẽ nhất trong DAX. Khi bạn tạo mô hình dữ liệu và tạo công thức phức tạp hơn, có thể bạn sẽ sử dụng hàm này nhiều lần. 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 tăng lên, hãy đặc biệt chú ý đến hàm 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 sử dụng hộp thoại Đánh dấu là Bảng Ngày. Trong sổ làm việc Samples.xlsx 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: 'Tôi có thể tạo công thức DAX đơn giản nhất là gì?' Câu trả lời cho câu hỏi đó là 'công thức mà bạn không cần phải làm'. Và đó chính xác 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 tiêu 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 Doanh thu mà bạn đã thấy trước đó được 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 vài hàm khác tổng hợp các giá trị. Bạn có thể tự động tạo công thức bằng cách sử dụng các 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 sử dụng tính năng Tự 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 dải băng, 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 Tự tính tổng, rồi bấm vào Trung bình (lưu ý các hàm tổng hợp tiêu 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 với tên Trung bình của ReturnQuantity: theo sau là công thức =AVERAGE([ReturnQuantity]).

Bây giờ không phải là dễ dàng? 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ông thức nhanh chóng và dễ dàng bằng cách sử dụng tính toán tổng hợp tiêu chuẩn.

Điều này sẽ cung cấp cho bạn một sự hiểu biết khá rõ về cú pháp được sử dụng trong các công thức DAX. Bạn cũng được giới thiệu một số tính năng thực sự tuyệt vời 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 có rất nhiều hơn nữa bạn có thể tìm hiểu về cú pháp. Một nơi tốt để tìm hiểu thêm là DAX Reference hoặc SQL Books Online.

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. Điều gì luôn bao quanh một tên cột trong công thức DAX?

  3. Bạn sẽ viết công thức cho công thứ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, tính toán một giá trị bằng cách trừ các giá trị trong cột UnitCost khỏi 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 xác định trước thực hiện tính toán bằng cách sử dụng các giá trị cụ thể, được 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 đây: Hàm Ngày và Giờ, Thông tin, Lô-gic, Toán học, Thống kê, Văn bản và 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ẽ xuất hiện 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:

  • 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 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 sẽ 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 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 chứ không phải là một giá trị. Bảng không được hiển thị nhưng được sử dụng để cung cấp dữ liệu đầu vào cho các hàm khác. Ví dụ: bạn có thể truy xuấ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 thông minh 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 tính toán động dựa trên chúng. Ví dụ, bạn có thể so sánh tổng trong các kỳ song song.

Đôi khi, thật khó để biết được hàm nào bạn có thể cần sử dụng trong 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 mô tả ngắn cho từng hàm.Chèn Hàm

Chúng ta hãy tạo một công thức mới bao gồm một hàm mà bạn sẽ chọn bằng cách 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 đến 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, nhập dấu bằng, =.

  3. Bấm vào nút Chèn Hàm . Chèn Hàm Thao tác này sẽ mở ra hộp thoại Chèn Hàm.

  4. Trong hộp thoại Chèn Hàm , bấm vào hộp danh sách Chọn 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ê dưới đây. Đó là rất nhiều hàm, vì vậy bạn sẽ muốn lọc các hàm để dễ dàng xác định loại hàm bạn đang tìm kiếm 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 một bảng khác. Vì vậy, bạn sẽ sử dụng hàm trong thể loại Bộ lọc. Tiếp tục và bấm vào thể loại Bộ lọc, sau đó trong Chọn một 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 thành công thức, từ Tính toán sẽ xuất hiện trong thanh trạng thái dọc theo phần dưới cùng của cửa Power Pivot này. 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 sẽ trông như thế này: =RELATED(DimChannel[ChannelName])

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

Hàm QuickQuiz

  1. Hàm luôn tham chiếu như thế nào?

  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 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 tôi sẽ xem xét ngữ cảnh hàng.

Ngữ cảnh Hàng

Ngữ cảnh hàng được hiểu dễ dàng nhất là hàng hiện tại. Ví dụ, hãy nhớ cột tính toán 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 một giá trị trong cột Lề cho mỗi 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 một 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 [TotalCost] và trừ chúng khỏi các giá trị trong cột [SalesAmount].

Trong ô đã chọn hiển thị bên dưới, giá trị $ 49,54 trong hàng hiện tại được tính bằng cách trừ giá trị $51,54 trong cột [TotalCost] từ giá trị $101,08 trong cột [SalesAmount].

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 một công thức có một hàm áp dụng các bộ lọc để xác định một hàng duy nhất trong bảng. Hàm vốn sẽ áp dụng ngữ cảnh hàng cho mỗi hàng của bảng mà hàm đang lọc. Loại ngữ cảnh hàng này thường áp dụng cho số đo.

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ĩ về ngữ cảnh của bộ lọc như sau: 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ả hoặc giá trị.

Ngữ cảnh bộ lọc không tồn tại thay cho ngữ cảnh hàng; thay vào đó, nó sẽ áp dụng ngoài ngữ cảnh hàng. Ví dụ: để thu hẹp thêm các giá trị cần đưa vào một 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 ngữ cảnh hàng đó.

Dễ dàng nhìn thấy ngữ cảnh bộ lọc trong PivotTable. Ví dụ: khi bạn thêm TotalCost vào khu vực Giá trị, rồi thêm Năm và Khu vực vào Hàng hoặc Cột, bạn sẽ xác định ngữ cảnh bộ lọc chọn tập dữ liệu con dựa trên 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? Vì, mặc dù 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 vào 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à theo các số đo và cột khác. Ví dụ: chúng ta hãy xem công thức sau đây trong một số đo có tên 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 công thức này, chúng ta có thể phân tích, 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 số đo StoreSales, theo sau là dấu hai chấm :.

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

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

  4. Dấu ngoặc đơn () bao quanh một hoặc nhiều tham đối.

  5. Số đo [Doanh số] trong cùng một bảng với một biểu thức. Số đ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", làm 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ố, dưới dạng bộ lọc, được tính toán chỉ 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 công thức có chức năng to lớn và mạnh mẽ. Chỉ có thể tham chiếu 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 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 ngữ cảnh và lý do tại sao nó rất quan trọng trong DAX.

QuickQuiz 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

Giờ đây, khi bạn đã hiểu rõ các khái niệm quan trọng nhất trong DAX, bạn có thể tự mình tạo công thức DAX cho các cột và số đo được tính toán. DAX thực sự có thể là một chút khó khăn để tìm hiểu, nhưng có rất nhiều tài nguyên có sẵn 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 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 sẵn dùng cho bạn trong trợ giúp Power Pivot, SÁCH SQL Server Online, sách trắng và blog từ cả Microsoft và 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 tài nguyên tuyệt vời. Hãy nhớ lưu tệp vào 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 cái nhìn chi tiết hơn về các 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 DAX của Contoso Formulas.xlsx bạn đã có.

Câu trả lời QuickQuiz

Cú pháp:

  1. Mở tính năng Chèn Hàm.

  2. Dấu ngoặc vuông [].

  3. =[Đơn_Giá] - [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ể bao gồm tối đa 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 xác định một giá trị duy nhất.

  3. Hàng hiện tại.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.