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

Quan trọng:  Bài viết này là dịch máy, hãy xem tuyên bố miễn trừ trách nhiệm. Bạn hãy tìm phiên bản tiếng Anh của bài viết này tại đây để tham khảo.

Biểu thức phân tích dữ liệu (DAX) âm thanh đe dọa sự thứ nhất, nhưng không cho phép tên khả năng lừa gạt bạn. DAX cơ bản thật dễ dàng để hiểu. Điều đầu tiên đầ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ính toán và cho thước đo (còn được gọi là trường được tính toán). DAX có một số hàm được dùng trong công thức Excel, và chức năng bổ sung được thiết kế để làm việc với dữ liệu quan hệ và thực hiện phép tính gộp linh động.

Tìm hiểu các Công thức DAX

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

Tuy nhiên, các công thức DAX có những điểm khác biệt quan trọng sau đây:

  • Nếu bạn muốn tùy chỉnh các phép tính trên cơ sở theo từng hàng, thì DAX có 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ị có liên quan để thực hiện các phép tính khác nhau theo bối cảnh.

  • DAX có một kiểu hàm trả về kết quả là một bảng, thay vì một giá trị đơn lẻ. Có thể dùng những hàm này để cung cấp dữ liệu đầu vào cho các hàm khác.

  • Thời gian thông minh hàmtrong DAX cho phép tính sử dụng các phạm vi ngày và so sánh kết quả giữa các giai đoạn song song.

Dùng Hàm DAX ở đâu

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

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

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

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

Khi cột chứa công thức, thì giá trị được tính toán cho từng hàng. Kết quả sẽ được tính toán cho cột đó ngay khi bạn tạo công thức. Các giá trị cột chỉ được tính toán lại nếu dữ liệu ẩn dưới đượ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ột được tính toán dựa trên số đo và cột được tính toán khác. Tuy nhiên, tránh dùng cùng một tên cho cột được tính và số đo, như này có thể dẫn đến kết quả khó hiểu. Khi tham chiếu đến một cột, tốt nhất là sử dụng một tham chiếu cột đủ điều kiện, để tránh vô tình gọi một số đo.

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

Thước đo

Một số đo là công thức được tạo ra cụ thể để sử dụng trong một PivotTable (hoặc) sử dụng Power Pivot dữ liệu. Thước đo có thể dựa trên hàm tính gộp chuẩn, chẳng hạn như Tổng số 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 số đo được sử dụng trong khu vực giá trị của PivotTable. Nếu bạn muốn đặt được tính toán kết quả trong một vùng khác nhau của PivotTable, hãy dùng một cột được tính toán.

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

Định nghĩa của số đo mà bạn tạo sẽ được lưu với bảng dữ liệu nguồn của 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ông tin chi tiết hơn, hãy xem các thước đo trong Power Pivot.

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

Cũng giống như Excel, Power Pivot cung cấp  thanh công thức để dễ dàng hơn trong việc tạo và sử dụng công thức, và tính năng Tự động Điền để giảm thiểu các lỗi đánh máy và cú pháp.

Để nhập tên bảng   Hãy bắt đầu gõ tên của bảng đó. Tính năng Tự động Điền Công thức sẽ đưa ra một danh sách thả xuống chứa các tên hợp lệ bắt đầu với những chữ cái đó.

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

Để biết thêm chi tiết và xem qua cách 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 Điền

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 được lồng trong đó. 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, tất cả các văn bản sau điểm chèn giữ nguyên không đổi.

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

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

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ả của một hàm làm đối số cho một hàm khác. Bạn có thể lồng tối đa 64 mức hàm vào cột được tính toán. Tuy nhiên, lồng hàm có thể khiến cho việc tạo hoặc khắc phục sự cố của công thức trở nên khó khăn.

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

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

So sánh các 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 những thư viện này có nhiều điểm khác biệt. Phần này tóm tắt những điểm khác biệt và tương đồng 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 hành vi chung với các hàm Excel nhưng đã được chỉnh sửa để nhận những kiểu dữ liệu đầu vào khác, và trong một số trường hợp, có thể trả về kiểu dữ liệu khác. Nhìn chung, bạn sẽ không dùng được hàm DAX trong công thức Excel hoặc không dùng được công thức Excel trong Power Pivot nếu không thực hiện một vài chỉnh sửa.

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

  • Hàm ngày và thời gian trong DAX trả về kiểu dữ liệu datetime. Ngược lại, các hàm ngày và thời gian trong Excel trả về một số nguyên biểu thị cho ngày dưới dạng số sê-ri.

  • Nhiều hàm DAX mới trả về một bảng chứa các giá trị hoặc thực hiện các phép tính dựa trên dữ liệu đầu vào là một bảng chứa các giá trị. 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 các mảng. Khả năng dễ dàng tham chiếu đến các cột và bảng hoàn tất 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 tra cứu mảng và véc-tơ trong Excel. Tuy nhiên, các hàm DAX đòi hỏi phải thiết lập mối quan hệ giữa các bảng.

  • Dữ liệu trong một cột được dự kiến là sẽ luôn có cùng một kiểu dữ liệu. Nếu dữ liệu không cùng một kiểu, thì DAX sẽ thay đổi toàn bộ cột thành kiểu dữ liệu có thể chứa đựng tốt 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, mà những nguồn dữ liệu đó 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 đó dùng dữ liệu này trong các phép tính hoặc trong PivotTables, thì 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 Các kiểu dữ liệu trong Mô hình Dữ liệu.

Kiểu dữ liệu bảng là một kiểu dữ liệu mới trong DAX, được 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 lấy bảng làm dữ liệu đầu vào và trả về một bảng khác trong đó chỉ chứa những 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 các hàm tổng hợp, bạn có thể thực hiện những tính toán phức tạp trên những bộ dữ liệu được xác định theo cách động. Để biết thêm thông tin, hãy xem Hàm tổng hợp trong Power Pivot.

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

Cửa sổ Power Pivot là một vùng 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ô hình quan hệ. Trong mô hình dữ liệu này, bảng được kết nối với nhau bằng mối quan hệ, cho phép bạn tạo ra tương quan với các cột trong 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 đó giá trị tổng cho một bảng có liên quan và sau đó lưu giá trị đó trong mộ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ác mối quan hệ, cho nên PivotTables của bạn cũng có thể chứa dữ liệu từ nhiều cột thuộc nhiều bảng khác nhau.

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

  • Nhìn chung, công thức DAX trong một cột luôn luôn được áp dụng cho toàn bộ bộ dữ liệu trong cột đó (không bao giờ chỉ áp dụng cho 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 cần bảo đảm rằng hai cột được dùng làm khóa phải có hầu hết các giá trị khớp nhau. Vì Power Pivot không bắt buộc tính toàn vẹn tham chiếu, cho nên có thể có các giá trị không khớp trong một cột khóa và vẫn tạo ra được một 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à hình thức 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 bảng bằng cách sử dụng mối quan hệ, bạn phóng to phạm vi, hoặc context công thức được đánh giá. Ví dụ, công thức trong một PivotTable có thể có bị ảnh hưởng bởi bất kỳ bộ lọc hoặc đầu đề cột và hàng trong PivotTable. Bạn có thể viết các công thức để điều khiển ngữ cảnh, nhưng ngữ cảnh cũng có thể gây ra kết quả của bạn để thay đổi theo cách mà bạn có thể không dự tính. Để 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 lại là hai thao tác riêng biệt nhưng liên quan mà bạn nên hiểu rõ khi thiết kế một mô hình dữ liệu có chứa công thức phức tạp, số lượng lớn dữ liệu, hoặc dữ liệu được lấy từ nguồn dữ liệu ngoài.

Làm mới dữ liệu là một quá trình cập nhật dữ liệu trong sổ làm việc của bạn với những dữ liệu mới từ mộ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 vào những khoảng thời gian do bạn chỉ định. Hoặc nếu bạn đã phát hành sổ làm việc lên trang SharePoint, bạn có thể lên lịch trình làm mới tự động từ 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ác công thức để phản ánh mọi thay đổi đối với bản thân công thức đó và để phản ánh những thay đổi này trong dữ liệu ẩn dưới. Việc tính toán lại có thể được thực hiện 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 luôn được tính toán lại cho toàn bộ cột, bất kỳ khi nào bạn thay đổi công thức.

  • Đối với một số đo, kết quả của 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 sẽ cũng được tính toán lại khi bạn thay đổi bất kỳ hàng hay tiêu đề cột ảnh hưởng đến các bộ lọc trên dữ liệu hoặc khi bạn theo cách thủ công làm mới PivotTable.

Khắc phục Sự cố về Công thức

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

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

Lỗi cú pháp là những lỗi dễ khắc phục nhất. Đó thường là do thiếu dấu ngoặc hoặc dấu phẩy. Để được trợ giúp về cú pháp của các hàm riêng biệt, hãy xem Tham chiếu Hàm DAX.

Một kiểu lỗi khác xuất hiện khi cú pháp đúng, nhưng giá trị hoặc cột được tham chiếu không có nghĩa trong bối cảnh của công thức. Những lỗi ngữ nghĩa hoặc lỗi tính toán này có thể nảy sinh từ 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 tồn tại.

  • Công thức trông có vẻ đúng, nhưng khi bộ máy dữ liệu tìm kiếm thông tin, nó tìm thấy kiểu dữ liệu không khớp và phát sinh lỗi.

  • Công thức chuyển một con số hoặc kiểu tham số không chính xác đến hàm.

  • Công thức tham chiếu đến một cột khác mà cột đó có lỗi, vì vậy 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ý, có nghĩa là cột đó có siêu dữ liệu nhưng không có dữ liệu thực tế nào để dùng cho các phép tính.

Trong bốn trường hợp đầu tiên, DAX sẽ gắn cờ cho 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 sẽ làm mờ cột đó để cho biết rằng cột này đang có trạng thái chưa được xử lý.

Các kết quả không chính xác hoặc khác thường khi xếp hạng hoặc sắp xếp thứ tự các giá trị của cột

Khi xếp hạng hoặc sắp xếp thứ tự một cột có chứa giá trị NaN (Không phải Số), bạn có thể thấy các kết quả sai hoặc kết quả không mong muốn. Ví dụ, khi một phép tính chia 0 cho 0, nó trả về kết quả NaN.

Điều này là do cỗ máy công thức thực hiện việc sắp xếp thứ tự hoặc 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.

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

Tính tương thích với Mô hình Bảng Dịch vụ Phân tích và Mô hình Truy vấn Trực tiếp

Nhìn chung, các công thức DAX mà bạn dựng trong Power Pivot hoàn toàn tương thích với mô hình bảng Dịch vụ Phân tích. Tuy nhiên, nếu bạn chuyển mô hình Power Pivot thành một phiên bản Dịch vụ Phân tích, sau đó triển khai mô hình đó trong chế độ Truy vấn Trực tiếp, thì sẽ có một vài 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ế độ Truy vấn Trực tiếp.

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

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

Ghi chú: Tuyên bố miễn trừ trách nhiệm Dịch Máy: Bài viết này do một hệ thống máy tính dịch mà không có sự can thiệp của con người. Microsoft cung cấp những bản dịch máy này để giúp người dùng không nói tiếng Anh hiểu nội dung về các sản phẩm, dịch vụ và công nghệ của Microsoft. Do bài viết này được dịch máy nên có thể có các lỗi về từ vựng, cú pháp hoặc ngữ pháp.

Phát triển các kỹ năng 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.

×