Biểu thức Phân tích Dữ liệu (DAX) trong PowerPivot
Applies ToExcel cho Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

Biểu thức Phân tích Dữ liệu (DAX) có vẻ hơi đáng sợ lúc đầu, nhưng đừng để cái tên đánh lừa bạn. Thông tin cơ bản về DAX thực sự khá dễ hiểu. Đ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ột được Tínhcho Thước đo (còn được gọi là các trường được tính toán). DAX bao gồm một số hàm được sử dụng trong công thức Excel và các hàm bổ sung được thiết kế để hoạt động với dữ liệu có liên quan và thực hiện tổng 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 dấu bằng, bạn hãy nhập dấu bằng, theo sau là tên hàm hoặc biểu thức và mọi giá trị hoặc tham đối bắt buộc. Giống như Excel, DAX cung cấp nhiều hàm khác nhau mà bạn có thể sử dụng để làm việc với chuỗi, thực hiện tính toán bằng cách sử dụng ngày và giờ hoặc tạo các giá trị có điều kiện.

Tuy nhiên, các 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 theo từng 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 giá trị liên quan để thực hiện tính toán thay đổi theo ngữ cảnh.

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

  • Hàm Thông minh Thời gian trong DAX cho phép tính toán sử dụng phạm vi ngày và so sánh kết quả giữa các kỳ song song.

Vị trí Sử dụng Công thức DAX

Bạn có thể tạo công thức Power Pivot trong các clumns được tính hoặc trong các celds được tính.

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

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

Các công thức trong cột được tính toán khá giống với 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 bảng; thay vào đó, công thức DAX sẽ tự động áp dụng cho toàn bộ cột.

Khi một cột chứa một công thức, giá trị được tính cho mỗi hàng. 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 tính toán lại theo cách thủ công được sử dụng.

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

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

Biện pháp

Số đo là một công thức được tạo riêng cho việc sử dụng trong PivotTable (hoặc PivotChart) sử dụng dữ Power Pivot liệu. Số đo có thể dựa trên các hàm tổng hợp tiêu chuẩn, chẳng hạn như COUNT hoặc SUM hoặc bạn có thể xác định công thức của riêng mình bằng cách sử dụng DAX. Số đ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, thay vào đó hãy sử dụng một cột được tính toán.

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 số đo vào PivotTable. Khi bạn thêm số đo, công thức sẽ được định trị cho mỗi ô trong khu vực Giá trị của PivotTable. Vì kết quả được tạo ra cho mỗi tổ hợp tiêu đề hàng và cột nên kết quả cho số đo có thể khác nhau trong mỗi ô.

Định nghĩa của số đo mà bạn tạo được lưu cùng với bảng dữ liệu nguồn của số đo đó. 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 Thước đo trong Power Pivot.

Tạo Công thức bằng Cách dùng Thanh Công thức

Power Pivot, chẳng hạn như Excel, cung cấp một thanh công thức để giúp bạn tạo và sửa công thức dễ dàng hơn, cũng như chức năng Tự động Hoàn tất, để giảm thiểu lỗi nhập và cú pháp.

Để nhập tên bảng   Bắt đầu nhập tên bảng. Tự động Điền Công thức 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 những chữ cái đó.

Để nhập tên cột   Nhập dấu ngoặc vuông, 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ừ một bảng khác, bắt đầu nhập các 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 Hoàn tất.

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

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

Bạn có thể dùng Tự động Điền Công thức ở giữa một công thức hiện có với các hàm lồng vào nhau. Văn bản ngay trước điểm chèn được sử 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 sẽ không thay đổi.

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

Power Pivot thêm dấu đóng ngoặc đơn của các hàm hoặc tự động khớp với dấu ngoặc đơn. Bạn nên đảm bảo rằng mỗi hàm có thể sửa một cách đồng nghĩa hoặc bạn không thể lưu hay 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 hàm, nghĩa là bạn sử 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 tối đa 64 mức hàm vào các cột được tính toán. Tuy nhiên, việc lồng có thể khiến bạn khó tạo hoặc khắc phục sự cố về công thức.

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

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

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

Thư viện hàm DAX dựa trên thư viện hàm Excel, nhưng các thư viện có nhiều khác biệt. Mục này tóm tắt sự khác biệt và điểm giống nhau giữa các hàm Excel và hàm DAX.

  • Nhiều hàm DAX có cùng tên và có hành vi chung giống với hàm Excel nhưng đã được sửa đổi để lấy các kiểu đầu vào khác nhau và trong một số trường hợp, có thể trả về 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ông thức Excel trong Power Pivot sửa đổi nào đó.

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

  • Hàm ngày và giờ DAX trả về kiểu dữ liệu ngày giờ. Ngược lại, hàm ngày và giờ của Excel trả về số nguyên đại diện cho ngày tháng dưới dạng số sê-ri.

  • Nhiều hàm DAX mới trả về bảng giá trị hoặc thực hiện tính toán dựa trên bảng giá trị làm dữ liệu đầu vào. Ngược lại, Excel không có hàm nào trả về bảng nhưng một số hàm có thể hoạt động 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ư hàm tra cứu mảng và vector trong Excel. Tuy nhiên, các hàm DAX yêu cầu thiết lập mối quan hệ 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 cùng kiểu, DAX sẽ thay đổi toàn bộ cột thành kiểu dữ liệu phù hợp nhất với tất cả các giá trị.

Kiểu Dữ liệu DAX

Bạn có thể nhập dữ liệu vào mô hình Power Pivot liệu 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, rồi 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 Power Pivot liệu của bạn. Để biết 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.

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

Công thức và Mô hình Quan hệ

Cửa Power Pivot là một khu vực nơi 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 bằng mối quan hệ, cho phép bạn tạo tương quan với các cột trong các bảng khác và tạo ra 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, rồi lưu giá trị đó vào một ô duy nhất. Hoặc để kiểm soát các hàng từ bảng có 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ô hình Dữ liệu.

Vì bạn có thể nối kết các bảng bằng cách sử dụng mối quan hệ nên 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ể hoạt động với toàn bộ bảng và cột, bạn cần thiết kế các phép tính khác với cách bạn thực hiện trong Excel.

  • Nói chung, một công thức DAX trong một cột luôn được áp dụng cho toàn bộ tập hợp các giá trị trong cột (không bao giờ chỉ áp dụng cho một vài hàng hoặ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 cột phải chứa cùng 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 cần đảm bảo rằng hai cột được sử dụng làm khóa có giá trị khớp với nhau trong hầu hết các phần. Vì Power Pivot bắt buộc tính toàn vẹn tham chiếu, có thể có các giá trị không khớp trong cột khóa mà vẫn tạo 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ô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 nối kết các bảng bằng các mối quan hệ, bạn sẽ phóng to phạm vi hoặc ctrên văn bản mà 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 đầu đề cột và hàng nào trong PivotTable. Bạn có thể viết các công thức thao tác với ngữ cảnh nhưng ngữ cảnh cũng có thể khiến kết quả thay đổi theo những cách mà bạn có thể không dự đoán được. Để 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ông thức

Dữ liệu refresh và tính toán lại là hai thao tác riêng biệt nhưng có liên quan mà bạn cần hiểu khi thiết kế mô hình dữ liệu 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à quá 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 thời gian mà bạn chỉ định. Hoặc nếu bạn đã phát hành sổ làm việc lên site SharePoint, bạn có thể lên lịch làm mới tự động từ các nguồn bên ngoài.

Tính toán lại là quá 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 chính công thức đó và phản ánh những thay đổi đó trong dữ liệu cơ sở. Việc 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 cột được tính, 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 số đo, kết quả của công thức không được tính toán cho đến khi số đ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ỳ đầu đề hàng hoặc cột nào ảnh hưởng đến bộ lọc trên dữ liệu hoặc khi bạn làm mới PivotTable theo cách thủ công.

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 lỗi khi xác định công thức, công thức có thể chứa lỗi đồng nghĩa, lỗi ngữ nghĩa hoặc lỗi tính toán.

Lỗi syntactic là cách dễ nhất để giải quyết. Các dấu ngoặc đơn hoặc dấu phẩy thường bị thiếu. Để được trợ giúp về 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 khác xảy ra khi cú pháp 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ữ pháp và tính toán như vậy có thể là 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 hiện có.

  • Công thức có vẻ như chính xác, nhưng khi công cụ dữ liệu lấy dữ liệu, nó tìm thấy kiểu không khớp và làm phát sinh lỗi.

  • Công thức truyền một số hoặc loại tham số không chính xác đến một hàm.

  • Công thức tham chiếu đến một cột khác có lỗi và do đó giá trị của cột đó 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 sự để sử 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 chứa công thức không hợp lệ. Trong trường hợp cuối cùng, DAX chuyển sang màu xám cho biết cột đang ở trạng thái chưa được xử lý.

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

Khi xếp hạng hoặc sắp xếp một cột có chứa giá trị NaN (Không phải 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 0 cho 0, một kết quả NaN được trả về.

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

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

Tương thích với Mô hình Dạng bảng của Analysis Services và Chế độ Truy vấn Trực tiếp

Nói chung, các công thức DAX mà bạn xây dựng Power Pivot hoàn toàn tương thích với các mô hình dạng bảng của Analysis Services. Tuy nhiên, nếu bạn di chuyển mô hình Power Pivot của mình sang phiên bản Analysis Services, rồi triển khai mô hình trong chế độ Truy vấn Trực tiếp, sẽ có một số hạn chế.

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

  • 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ế độ DirectQuery, vì công thức chứa hàm DAX không được hỗ trợ đối với nguồn dữ liệu có quan hệ.

Để biết thêm thông tin, hãy xem tài liệu lập mô hình dạng bảng trong SQL Server 2012 BooksOnline.

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ú.