Biểu thức Phân tích Dữ liệu (DAX) trong PowerPivot

Biểu thức Phân tích Dữ liệu (DAX) trong PowerPivot

Các biểu thức phân tích dữ liệu (DAX) âm thanh một chút đáng sợ lúc đầu, nhưng không để tên đánh lừa bạn. Những điều cơ bản về DAX thực sự rất dễ hiểu. Trước tiên, những điều đầu tiên-DAX không phải là một ngôn ngữ lập trình. DAX là một ngôn ngữ công thức. Bạn có thể sử dụng DAX để xác định các phép tính tùy chỉnh cho các cột được tính toán và đối với các biện pháp (còn được gọi là trường được tính toán). DAX bao gồm một số hàm được dùng trong công thức Excel và các hàm bổ sung được thiết kế để làm việc với dữ liệu quan hệ và thực hiện các tập hợp động.

Tìm hiểu về công thức DAX

Công thức DAX rất giống với công thức Excel. Để tạo một, bạn nhập một dấu bằng, tiếp theo là một tên hàm hoặc biểu thức và bất kỳ giá trị hoặc đối số nào cần thiết. Chẳng hạn như Excel, DAX cung cấp nhiều hàm mà bạn có thể sử dụng để làm việc với chuỗi, thực hiện các phép tính bằng ngày và thời gian, hoặc tạo các giá trị có điều kiện.

Tuy nhiên, công thức DAX khác nhau theo những cách quan trọng sau đây:

  • Nếu bạn muốn tùy chỉnh tính toán trên cơ sở hàng theo hàng, DAX bao gồm 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 để thực hiện các phép tính thay đổi theo ngữ cảnh.

  • DAX bao gồm một kiểu hàm có trả về một bảng là kết quả của nó chứ không phải là một giá trị duy nhất. Những hàm này có thể được dùng để cung cấp đầu vào cho các hàm khác.

  • Các hàmthời gian thông minh trong Dax cho phép các phép tính bằng cách sử dụng phạm vi ngày và so sánh các kết quả trên các kỳ song song.

Nơi sử dụng công thức DAX

Bạn có thể tạo công thức trong Power Pivot trong một trong cácolumns được tính toán choặc trong tính toán fields.

Cột được tính toán

Cột được tính là một cột mà bạn thêm vào bảng Power Pivot hiện có. Thay vì dán hoặc nhập các giá trị trong cột, bạn tạo một công thức DAX xác định giá trị của cột. Nếu bạn bao gồm bảng Power Pivot trong PivotTable (hoặc PivotChart), cột được tính toán có thể được dùng như bạn sẽ có bất kỳ cột dữ liệu nào khác.

Các công thức trong các cột được tính toán giống như các công thức mà bạn tạo trong Excel. Tuy nhiên, không giống như trong Excel, bạn không thể tạo công thức khác cho các hàng khác nhau trong một bảng; thay vào đó, công thức DAX được áp dụng tự động đối với toàn bộ cột.

Khi một cột có chứa một công thức, giá trị sẽ được tính cho mỗi hàng. Các kết quả được tính toán cho cột ngay khi bạn tạo công thức. Giá trị cột chỉ được tính toán lại nếu dữ liệu cơ sở được làm mới hoặc nếu sử dụng tính toán lại thủ công.

Bạn có thể tạo các cột được tính toán dựa trên các số đo và các cột được tính khác. Tuy nhiên, tránh dùng cùng tên cho cột được tính và một thước đo, vì điều này có thể dẫn đến kết quả khó hiểu. Khi tham chiếu đến một cột, cách tốt nhất là sử dụng tham chiếu cột đủ điều kiện, để tránh vô tình gọi một số đo.

Để biết thêm thông tin chi tiết, hãy xem cột được tính trong Power Pivot.

Số đo

Một thước đo là một công thức được tạo đặc biệt để sử dụng trong PivotTable (hoặc PivotChart) sử dụng dữ liệu Power Pivot. Các biện pháp có thể dựa trên các hàm tổng hợp chuẩn, chẳng hạn như đếm hoặc tổng, hoặc bạn có thể xác định công thức của riêng bạn bằng cách sử dụng DAX. Một thước đo được sử dụng trong khu vực giá trị của pivottable. Nếu bạn muốn đặt các kết quả được tính toán trong một khu vực khác của PivotTable, hãy dùng cột được tính thay thế.

Khi bạn xác định một công thức cho một số đo rõ ràng, không có gì xảy ra cho đến khi bạn thêm các thước đo vào PivotTable. Khi bạn thêm thước đo, công thức được đánh giá cho mỗi ô trong khu vực giá trị của pivottable. Vì kết quả được tạo ra cho mỗi kết hợp các tiêu đề hàng và cột, kết quả của phép đo có thể khác nhau trong từng ô.

Định nghĩa của thước đo mà bạn tạo được lưu cùng với bảng dữ liệu nguồn. Nó xuất hiện trong danh sách trường PivotTable và sẵn dùng cho tất cả người dùng của sổ làm việc.

Để biết thêm thông tin chi tiết, hãy xem các biện pháp trong Power Pivot.

Tạo công thức bằng cách sử dụng thanh công thức

Power Pivot, chẳng hạn như Excel, cung cấp thanh công thức để giúp dễ dàng tạo và chỉnh sửa công thức và chức năng tự động hoàn tất, để thu nhỏ lỗi đánh máy và cú pháp.

Để nhập tên của bảng   Bắt đầu nhập tên của bảng. Công thức AutoComplete cung cấp một danh sách thả xuống chứa các tên hợp lệ bắt đầu bằng các chữ cái đó.

Để nhập tên của một cột   Nhập dấu ngoặc đơn, rồi chọn cột từ danh sách cột trong bảng hiện tại. Đối với một cột từ bảng khác, bắt đầu nhập chữ cái đầu tiên của tên bảng, rồi chọn cột từ danh sách thả xuống tự động điền.

Để biết thêm chi tiết và hướng dẫn về cách thức xây dựng công thức, hãy xem tạo công thức cho các phép tính trong Power Pivot.

Mẹo sử dụng tính năng tự động hoàn tất

Bạn có thể sử dụng tính năng tự động điền công thức ở giữa công thức hiện có với các hàm lồng nhau. Văn bản ngay trước điểm chèn được dùng để hiển thị các giá trị trong danh sách thả xuống và tất cả văn bản sau điểm chèn vẫn không đổi.

Các tên đã xác định mà bạn tạo cho các hằng số không hiển thị trong danh sách thả xuống tự động điền, nhưng bạn vẫn có thể nhập chúng.

Power Pivot không thêm dấu ngoặc đơn đóng của hàm hoặc tự động khớp dấu ngoặc đơn. Bạn nên đảm bảo rằng mỗi hàm là cú pháp chính xác hoặc bạn không thể lưu hoặc sử dụng công thức. 

Sử dụng nhiều hàm trong một công thức

Bạn có thể lồng các hàm, có nghĩa là bạn dùng kết quả từ một hàm làm đối số của một hàm khác. Bạn có thể lồng lên đến mức 64 của các hàm trong các cột được tính toán. Tuy nhiên, việc lồng có thể khiến khó tạo hoặc khắc phục các công thức.

Nhiều hàm DAX được thiết kế chỉ được sử dụng như các hàm lồng nhau. Những hàm này trả về một bảng, vốn không thể lưu trực tiếp như một kết quả; nó sẽ được cung cấp như là đầu vào của một hàm Table. Ví dụ: hàm SUMX, AVERAGEX và MINX đều yêu cầu bảng là đối số đầu tiên.

Lưu ý: Một số giới hạn về việc lồng vào các hàm tồn tại trong các biện pháp, để đảm bảo hiệu suất không bị ảnh hưởng bởi nhiều phép tính theo yêu cầu giữa các cột.

So sánh các hàm DAX và các hàm Excel

Thư viện hàm DAX được dựa trên thư viện hàm Excel nhưng các thư viện có nhiều sự khác biệt. Phần này tóm tắt sự khác biệt và tương tự giữa các hàm Excel và các hàm DAX.

  • Nhiều hàm DAX có cùng tên và cùng một hành vi chung như các hàm Excel nhưng đã được sửa đổi để có các kiểu đầu vào khác nhau và trong một số trường hợp, có thể sẽ trả về một kiểu dữ liệu khác. Thông thường, bạn không thể sử dụng các hàm DAX trong công thức Excel hoặc sử dụng các công thức Excel trong Power Pivot mà không cần sửa đổi.

  • Hàm DAX không bao giờ lấy tham chiếu ô hoặc phạm vi là tham chiếu, mà thay vào đó, các hàm DAX có thể lấy một cột hoặc bảng là tham chiếu.

  • Hàm ngày và thời gian DAX trả về kiểu dữ liệu DateTime. Trong độ tương phản, hàm date và Time trả về một số nguyên đại diện cho một ngày là số sê-ri.

  • Nhiều hàm DAX mới có thể trả về một bảng các giá trị hoặc thực hiện các phép tính dựa trên bảng giá trị như đầu vào. Ngược lại, Excel không có hàm trả về bảng, nhưng một số hàm có thể làm việc với mảng. Khả năng dễ dàng tham chiếu các bảng và cột hoàn chỉnh là một tính năng mới trong Power Pivot.

  • DAX cung cấp các hàm tra cứu mới tương tự như các hàm trong trình tra cứu mảng và véc tơ trong Excel. Tuy nhiên, hàm DAX yêu cầu mối quan hệ được thiết lập giữa các bảng.

  • Dữ liệu trong một cột dự kiến sẽ luôn có cùng kiểu dữ liệu. Nếu dữ liệu không giống như kiểu, DAX sẽ thay đổi toàn bộ cột đến kiểu dữ liệu phù hợp nhất tất cả các giá trị.

Các kiểu dữ liệu DAX

Bạn có thể nhập dữ liệu vào mô hình dữ liệu Power Pivot từ nhiều nguồn dữ liệu khác nhau có thể hỗ trợ các kiểu dữ liệu khác nhau. Khi bạn nhập hoặc tải dữ liệu, sau đó sử dụng dữ liệu trong các phép tính hoặc trong Pivottable, dữ liệu sẽ được chuyển đổi thành một trong các kiểu dữ liệu Power Pivot. Để có danh sách các kiểu dữ liệu, hãy xem kiểu dữ liệu trong mô hình dữ liệu.

Loại dữ liệu bảng là một kiểu dữ liệu mới trong DAX được dùng làm đầu vào hoặc đầu ra cho nhiều hàm mới. Ví dụ, hàm FILTER sẽ mất một bảng như đầu vào và kết quả một bảng khác chỉ chứa các hàng đáp ứng các điều kiện bộ lọc. Bằng cách kết hợp các hàm bảng với các hàm tổng hợp, bạn có thể thực hiện các phép tính phức tạp hơn các tập dữ liệu được xác định động. Để biết thêm thông tin, hãy xem phần gộp trong Power Pivot.

Công thức và mô hình quan hệ

Cửa sổ Power Pivot là một khu vực mà bạn có thể làm việc với nhiều bảng dữ liệu và kết nối các bảng trong một mô hình quan hệ. Trong mô hình dữ liệu này, các bảng được kết nối với nhau theo mối quan hệ, cho phép bạn tạo mối tương quan với các cột trong các bảng khác và tạo các phép tính thú vị hơn. Ví dụ, bạn có thể tạo công thức tính tổng các giá trị cho một bảng liên quan và sau đó lưu giá trị đó trong một ô duy nhất. Hoặc để điều khiển các hàng từ bảng liên quan, bạn có thể áp dụng bộ lọc cho bảng và cột. Để biết thêm thông tin, hãy xem mối quan hệ giữa các bảng trong một mô hình dữ liệu.

Vì bạn có thể liên kết các bảng bằng cách sử dụng mối quan hệ, Pivottable của bạn cũng có thể bao gồm dữ liệu từ nhiều cột từ các bảng khác nhau.

Tuy nhiên, vì công thức có thể làm việc với toàn bộ các bảng và cột, bạn cần phải có các phép tính thiết kế khác với bạn trong Excel.

  • Nói chung, công thức DAX trong một cột luôn được áp dụng cho toàn bộ các giá trị trong cột (không bao giờ chỉ có một vài hàng hoặc ô).

  • Các bảng trong Power Pivot phải luôn có cùng số cột trong mỗi hàng, và tất cả các hàng trong một cột phải chứa cùng một kiểu dữ liệu.

  • Khi các bảng được kết nối bằng một mối quan hệ, bạn dự kiến sẽ đảm bảo rằng hai cột được dùng như các phím có giá trị khớp với phần lớn. Vì Power Pivot không áp dụng tính toàn vẹn tham khảo, có thể có các giá trị không khớp trong cột khóa và vẫn tạo ra mối quan hệ. Tuy nhiên, sự hiện diện của các giá trị trống hoặc không khớp có thể ảnh hưởng đến kết quả của các công thức và sự xuất hiện của Pivottable. Để biết thêm thông tin, hãy xem tra cứu trong công thức Power Pivot.

  • Khi bạn liên kết các bảng bằng cách sử dụng mối quan hệ, bạn phóng to phạm vi hoặc context mà trong đó công thức của bạn được đánh giá. Ví dụ: các công thức trong PivotTable có thể bị ảnh hưởng bởi bất kỳ bộ lọc hoặc đề mục cột và hàng trong PivotTable. Bạn có thể viết các công thức thao tác ngữ cảnh nhưng ngữ cảnh cũng có thể làm cho kết quả của bạn thay đổi theo những cách mà bạn có thể không dự đoán. Để biết thêm thông tin, hãy xem ngữ cảnh trong công thức Dax.

Cập Nhật kết quả của công thức

Dữ liệu r efresh và tính toán lại là hai hoạt động riêng biệt nhưng liên quan mà bạn nên hiểu khi thiết kế mô hình dữ liệu có chứa các công thức phức tạp, lượng lớn dữ liệu hoặc dữ liệu thu được từ các nguồn dữ liệu bên ngoài.

Làm mới dữ liệu là quy trình cập nhật dữ liệu trong sổ làm việc của bạn với dữ liệu mới từ nguồn dữ liệu bên ngoài. Bạn có thể làm mới dữ liệu theo cách thủ công tại các khoảng mà bạn chỉ định. Hoặc nếu bạn đã phát hành sổ làm việc vào một site SharePoint, bạn có thể lên lịch tự động làm mới từ các nguồn bên ngoài.

Tính toán lại là quy trình Cập Nhật kết quả của công thức để phản ánh bất kỳ thay đổi nào đối với các công thức và phản ánh những thay đổi đó trong dữ liệu cơ bản. Tính toán lại có thể ảnh hưởng đến hiệu suất theo những cách sau đây:

  • Đối với một cột được tính toán, kết quả của công thức phải luôn được tính toán lại cho toàn bộ cột, bất cứ khi nào bạn thay đổi công thức.

  • Đối với một thước đo, kết quả của một công thức không được tính toán cho đến khi thước đo được đặt trong ngữ cảnh của PivotTable hoặc PivotChart. Công thức cũng sẽ được tính toán lại khi bạn thay đổi bất kỳ tiêu đề hàng hoặc cột nào ảnh hưởng đến các bộ lọc trên dữ liệu hoặc khi bạn làm mới theo cách thủ công PivotTable.

Khắc phục sự cố công thức

Lỗi khi viết công thức

Nếu bạn gặp phải lỗi khi xác định công thức, công thức có thể chứa lỗi cúPháp, lỗi ngữ nghĩahoặc lỗi tính toán.

Lỗi syntactic là dễ dàng nhất để giải quyết. Chúng thường liên quan đến việc thiếu dấu ngoặc đơn hoặc dấu phẩy. Để được trợ giúp với cú pháp của các hàm riêng lẻ, hãy xem tham khảo hàm DAX.

Loại lỗi còn xảy ra khi cú pháp là chính xác, nhưng giá trị hoặc cột được tham chiếu không có ý nghĩa trong ngữ cảnh của công thức. Lỗi ngữ nghĩa và tính toán có thể do bất kỳ vấn đề nào sau đây:

  • Công thức tham chiếu đến một cột, bảng hoặc hàm không có hiện có.

  • Công thức xuất hiện chính xác, nhưng khi công cụ dữ liệu phân cách dữ liệu, nó tìm thấy kiểu không khớp, rồi tăng một lỗi.

  • Công thức sẽ vượt số không chính xác hoặc loại tham số vào một hàm.

  • Công thức tham chiếu đến một cột khác có lỗi và do đó các giá trị của nó không hợp lệ.

  • Công thức tham chiếu đến một cột chưa được xử lý, nghĩa là nó có siêu dữ liệu nhưng không có dữ liệu thực tế để dùng cho các phép tính.

Trong bốn trường hợp đầu tiên, DAX gắn cờ toàn bộ cột có chứa công thức không hợp lệ. Trong trường hợp cuối cùng, DAX đã màu xám ra khỏi cột để cho biết cột đó nằm trong trạng thái không được xử lý.

Kết quả không chính xác hoặc không bình thường khi xếp hạng hoặc đặt giá trị cột

Khi xếp hạng hoặc đặt một cột có chứa giá trị NaN (không phải là số), bạn có thể nhận được kết quả sai hoặc không mong muốn. Ví dụ: khi một phép tính chia cho 0, một kết quả NaN sẽ được trả về.

Điều này là do công thức thực hiện đặt hàng và xếp hạng bằng cách so sánh các giá trị số; Tuy nhiên, NaN không thể so sánh với các số khác trong cột.

Để đảm bảo các kết quả chính xác, bạn có thể sử dụng các câu lệnh có điều kiện bằng cách sử dụng hàm IF để kiểm tra các giá trị NaN và trả về giá trị số 0.

Tính tương thích với các mô hình bảng dịch vụ phân tích và chế độ truy vấn Direct

Nói chung, công thức DAX mà bạn xây dựng trong Power Pivot hoàn toàn tương thích với các mô hình bảng dịch vụ phân tích. Tuy nhiên, nếu bạn di chuyển mô hình Power Pivot của mình sang phiên bản dịch vụ phân tích, sau đó triển khai mô hình trong chế độ truy vấn Direct, có một số hạn chế.

  • Một số công thức DAX có thể trả về kết quả khác nếu bạn triển khai mô hình trong chế độ truy vấn bên dưới.

  • Một số công thức có thể gây ra lỗi xác thực khi bạn triển khai mô hình cho chế độ truy vấn Direct, vì công thức có chứa một hàm DAX không được hỗ trợ đối với nguồn dữ liệu quan hệ.

Để biết thêm thông tin, hãy xem tài liệu mô hình bảng dịch vụ phân tích trong SQL Server 2012 BooksOnline.

Lưu ý:  Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Cho chúng tôi biết thông tin này có hữu ích hay không? Dưới đây là bài viết bằng tiếng Anh để bạn tham khảo..​

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?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×