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

Bắt đầu Nhanh này dành cho người dùng mới sử dụng Power Pivot trong Excel mô hình dạng bảng hoặc dự án mô hình dạng bảng được tạo Công cụ Dữ liệu SQL Server. Diễn giải này 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ể 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 cơ bản và phân tích. 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 cầ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 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 một 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 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 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ác công thức DAX cung cấp khả năng này và nhiều chức năng quan trọng khác. Học cách tạo các công thức DAX hiệu quả sẽ giúp bạn khai tác được tối đa dữ liệu của mình. Khi có đượ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 ảnh hưởng đến mấu chố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

Có thể bạn đã 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 chưa có kinh nghiệm với các 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ác công thức DAX và giải quyết ngay các vấn đề BI trong thế giới thực.

Chúng tôi sẽ tập trung cụ thể vào việc tìm hiểu công thức DAX được sử dụng trong tính toán. Bạn đã quen thuộc với khái niệm cơ bản của cả cột và số đo được tính toán (còn được gọi là trường được tính toán), cả hai đều được mô tả trong Power Pivot giúp. Bạn cũng nên làm quen với các tính năng Power Pivot các Excel và công cụ tác giả.

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, dùng nó với một số dữ liệu thực tế và tự xem kết quả cho mình. Các ví dụ và tác vụ ở đây sử dụng sổ làm việc DAX mẫu 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, hãy mở sổ làm việc đó, rồi mở cửa Power Pivot của bạn.

Hãy bắt đầu!

Chúng tôi sẽ tạo khung cho 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 là 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, 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 thành 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 mới (giá trị) cho mỗi hàng trong một cột được tính, được đặt 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, toán tử sẽ trả về kết quả hay 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 những 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 Excel các công thức có tham chiếu đến một ô, 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 những giá trị mà chúng tôi 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, thường sẽ rất hữu ích nếu bạn chia nhỏ từng thành phần thành một ngôn ngữ mà bạn nghĩ và nói hàng ngày. 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 Margin, tính toán (=) một giá trị bằng cách trừ đi (-)các giá trị trong cột [TotalCost] từ các giá trị trongcột [SalesAmount] .

Chúng ta hãy xem một loại công thức khác, một loại được sử dụng trong một 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 đo lường Tổng Doanh Thu. Công thức cho phép đo có thể bao gồm tên số đo, theo sau 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 đượ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 này.

  4. Dấu ngoặc đơn () bao quanh một hoặc nhiều đối số. Tất cả các hàm yêu cầu ít nhất một tham đối. Một đối số truyền một giá trị đến một 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 cần tổng hợp cột nào.

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

Đối với số đo có tên Tổng Doanh Thu, hãy tính tổng (=)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ề giá trị được xác định bởi mỗi ô trong PivotTable, ví dụ như Điện thoại Di động ở Hoa Kỳ.

Lưu ý 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 tôi sử dụng cho cột được tính Lề. Đặc biệt, 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 thực hiện các tính toán phức tạp và thao tác 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ề. Điều này được gọi là một tên 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ể khiến cho các công thức dài tham chiếu đến nhiều cột ngắn hơn và dễ đọc hơn. Tuy nhiên, bạn nên luôn đặt tên bảng trong công thức đo, ngay cả khi ở trong cùng một bảng.

Lưu ý: Nếu tên của bảng có 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 ngoặc đơn. Bạn cũng phải đặt tên bảng trong dấu ngoặc trích dẫn 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 có cú pháp đúng. Trong hầu hết các trường hợp, nếu cú pháp không chính xác thì 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ị được trả về có thể không như mong đợi của bạn. Power Pivot (và nhiều định Công cụ Dữ liệu SQL Server) bao gồm các giá IntelliSense; một tính năng được sử dụng để tạo các công thức chính xác về mặt cú pháp bằng cách giúp bạn chọn các thành phần chính xác.

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

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

  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 Cửa Power Pivot.

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

  3. Cuộn sang cột bên phải nhất, sau đó trong tiêu đề cột, bấm Thêm Cột.

  4. Bấm vào thanh công thức dọc theo đầu 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 tính toán hoặc trường được tính toán.

    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 , đơngiản là một nút hủy bỏ. Hãy tiếp tục và bấm vào biểu tượng đó. Con chạy 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 sẽ không còn xuất hiện nữa. Tiếp tục và bấm vào thanh công thức một lần nữa. Nút hủy bỏ và nút dấu kiểm lúc này 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. Nó sẽ không thực hiện nhiều cho đến khi bạn nhập công thức. Chúng tôi sẽ quay lại sau một lúc.

    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 hàm vào công thức khi sau đó chúng ta tạo một số đo, 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 với tất cả các cột trong bảng FactSales. Thao tác này IntelliSense thực hiện.

    Vì các cột được tính toán luôn được tạo trong bảng hiện hoạt mà bạn đang ở trong đó, không cần phải đặt tên bảng trước tên cột. Tiếp tục và cuộn xuống, sau đó 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 chạy của bạn hiện hoạt ở 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ờ, nhập một dấu ngoặc vuông mở khác [. Lần này, hãy chọn cột [Số lượngTrả về] 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 thiết, 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 sổ Power Pivot bạn. Mọi thứ diễn ra nhanh chóng, mặc dù bạn chỉ 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 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 về một khái niệm rất quan trọng khác trong DAX; ngữ cảnh hàng. Sau này, bạn sẽ tìm hiểu thêm về ngữ cảnh của 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 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ử ampersand (&) là để kết hợp văn bản. DAX hiểu rằng công thức này cần đọ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 đã gõ = 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à thêm 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 là 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ề 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à 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.

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

  1. Trong bảng Doanh số Dữ kiện, 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 bên dưới một bảng trong cửa Power Pivot trang.

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 một 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 chuyển đến hàm CALCULATE.

    Lưu ý sau khi nhập dấu ngoặc đơn mở, IntelliSense cho bạn thấy 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, sau đó 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, rồi 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 một tham đối khác là bắt buộc; lần này, đối với hàm PREVIOUSQUARTER.

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

  8. Đóng cả hai đối số được chuyển đến 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 giờ đây sẽ trông giống như thế này:

    Doanh số Quý Trước:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Bấm 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 đã thực hiện điều đó! Bạn vừa mới tạo một số đo bằng DAX, chứ không phải đơn giản như vậy. Công thức này sẽ tính toán tổng doanh thu 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 đượ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 ý rằng hàm PREVIOUSQUARTER được lồng làm đối số được truyền vào hàm CALCULATE. Các công thức DAX có thể bao gồm đến 64 hàm lồng nhau. Không có khả năng một công thức bao giờ chứa quá nhiều hàm lồng nhau. 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 nhanh lắm.

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

Cuối cùng, bạn dùng hàm CALCULATE. Đây là một trong các hàm mạnh mẽ nhất trong DAX. Khi bạn tạo các 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. 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 phát triển, bạn hãy đặc biệt chú ý đến điều 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 tháng. Trong Công thức Contoso DAX Samples.xlsx làm việc, 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

Có thể bạn sẽ hỏi: 'Tôi có thể tạo công thức DAX đơn giản nhất?' Đáp án cho câu hỏi đó là 'công thức mà bạn không cần phải làm'. Và đó chính là điều bạn có thể làm bằng cách sử dụng 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 số đ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 giá trị. Bạn có thể tự động tạo công thức bằng cách dùng tính năng tổng hợp chuẩn.

Tác 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 toán

  1. Trong bảng FactSales, cuộn tới 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 toán.

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 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 Trung bình của Số lượng Trả về: theo sau là công thức =AVERAGE([Số lượng Trả về]).

Bây giờ không dễ dàng như vậy 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 tính toán tổng hợp tiêu chuẩn.

Điều này sẽ 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 về một số tính năng thực sự tuyệt vời như IntelliSense và Tự Tính toán để giúp bạn tạo các công thức nhanh chóng, dễ dàng và chính xác. Tất nhiên là bạn có thể tìm hiểu thêm nhiều hơn về cú pháp. Một nơi tốt để tìm hiểu thêm là Tham khảo DAX hoặc Sách SQL Trực tuyến.

Cú pháp QuickQuiz

  1. Nút này trên thanh công thức có chức nă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 viết công thức như sau: Trong bảng
    DimProduct,đối với mỗi hàng trong cột tính UnitMargin,tính toán giá trị bằng cách trừ các giá trị trong cột UnitCost từ các giá trị trong cột Đơn Giá?

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, một 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: Ngày và Giờ, Thông tin, Hàm 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 Excel công thức, 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 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 tính toán thay đổi theo ngữ cảnh. Bạn sẽ tìm hiểu thêm về ngữ cảnh sau này.

  • 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 đầ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ức 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, rồi 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 sang cột ngoài cùng bên phải, sau đó 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. Chèn Hàm Tùy chọn 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 danh mục. 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ả đều đượ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 định vị loại hàm bạn đang tìm kiếm hơn.

  5. 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 một 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ọnhà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ử 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 cuối cửa sổ Power Pivot bạn. 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ẽ có giao diện như sau: =RELATED(DimChannel[ChannelName])

Bạn vừa đượ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 nếu đã cung cấp mối quan hệ giữa bảng bạn hiện tại và bảng có chứa các giá trị bạn muốn nhận. Tất nhiên, hàm RELATED có khả năng rất 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 doanh thu 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à xem thông tin quan trọng nhất mà bạn thực sự cần dễ dàng hơn. Giống như hàm CALCULATE đã mô tả ở phần trước, hàm RELATED rất quan trọng và có thể bạn 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 ra các công thức rất mạnh mẽ. Chúng tôi thực sự chỉ hiểu được những thông tin cơ bản về hàm. Khi kỹ năng DAX của bạn 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 để kết hợp 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 ta sẽ tìm hiểu ngữ cảnh của hàng.

Ngữ cảnh Hàng

Ngữ cảnh của hàng dễ hiểu nhất 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 không? 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ị của 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 [TotalCost] và trừ chúng ra khỏi các giá trị trong cột [SalesAmount].

Trong ô được 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ó hàm áp dụng các 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 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 được áp dụng 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 nghĩ đến ngữ cảnh bộ lọc nhất như: 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 của 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 vùng 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 của bộ lọc để chọn một tập dữ liệu con dựa trên một năm và khu vực nhất định.

Tại sao ngữ cảnh của bộ lọc lại quan trọng như vậy đối với DAX? Vì mặc dù ngữ cảnh của 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, nhưng ngữ cảnh của 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 dùng các hàm như ALL, RELATED, FILTER, CALCULATE, theo 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 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 nhì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, 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 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 đối số.

  5. Một 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ẽ chỉ đảm bảo các giá trị doanh số, được xác định bởi bộ lọc Doanh số, chỉ được tính toán cho các hàng trong cột DimChannel[ChannelName] có giá trị "Store", 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ó chức năng rất lớn và mạnh mẽ. Khả năng tham chiếu chỉ một giá trị cụ thể trong một 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 hoàn toàn 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 ngữ cảnh rất quan trọng trong DAX.

QuickQuiz Ngữ cảnh

  1. Hai loại ngữ cảnh này 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 bạn đã hiểu rõ 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 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 Power Pivot Trợ giúp, SQL Server Sách Trực tuyến, 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à nơi tuyệt vời để bắt đầu. Tham khảo 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. Đảm bảo lưu tệp vào mục Yêu thích của bạn.

DAX trong bảng trắng Mô hình Bảng BI, sẵn có để 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. Báo cáo 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ó.

QuickQuiz Answers

Cú pháp:

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

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

  3. =[Đơn Giá] - [UnitCost]

Hàm:

  1. Một bảng và một cột.

  2. Có. Một công thức có thể bao gồm đế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 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?

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

×