Excel DAX - Lỗi công thức
Bạn có thể gặp lỗi khi viết DAX formulasvới cú pháp sai. Các trường được tính toán và các cột được tính toán có thể chứa các hàm DAX yêu cầu một loại đối số cụ thể. Đối số của các hàm DAX có thể là bảng, cột hoặc các hàm DAX khác (các hàm DAX lồng nhau). Vì các hàm DAX có thể trả về bảng và cột, nên cần kiểm tra xem có đúng loại đối số được truyền cho các hàm DAX hay không.
Lỗi công thức DAX có thể là lỗi cú pháp hoặc lỗi ngữ nghĩa. Các lỗi có thể xảy ra tại thời điểm thiết kế hoặc tại thời điểm chạy.
Trong chương này, bạn sẽ tìm hiểu về một số lỗi DAX phổ biến, nguyên nhân của chúng và cách khắc phục những lỗi đó.
Lỗi DAX: Tính toán bị hủy bỏ
Lỗi sau có thể xảy ra khi cố gắng tạo (thời gian thiết kế) hoặc sử dụng (thời gian chạy) một trường được tính toán với chức năng thông minh thời gian DAX. Trong mỗi trường hợp, phạm vi ngày không liền kề sẽ được chuyển đến hàm thông minh thời gian.
“Lỗi DAX: GIỚI THIỆU TÍNH TOÁN: MdxScript (phiên bản) (00, 0) Hàm 'DATEADD' chỉ hoạt động với các lựa chọn ngày liền kề."
Nguyên nhân lúc Run-time
Lỗi này có thể được hiển thị khi trường được tính toán với chức năng thông minh thời gian DAX được đặt trong vùng GIÁ TRỊ của PivotTable và các trường ngày như tháng hoặc quý được chọn làm bộ lọc hoặc bộ lọc trước khi chọn năm. Ví dụ: nếu bạn có dữ liệu của ba năm - 2014, 2015 và 2016 và bạn cố gắng chỉ sử dụng tháng March mà không chọn trường Year, thì các giá trị không phải là giá trị dữ liệu liền kề và bạn sẽ gặp lỗi.
Làm thế nào để sửa lỗi lúc chạy?
Trong ví dụ trên,
Đầu tiên, thêm Năm làm bộ cắt hoặc bộ lọc và chọn một năm.
Sau đó, thêm Tháng hoặc Quý dưới dạng bộ cắt hoặc bộ lọc.
Sau đó, chọn một hoặc nhiều tháng hoặc quý để cắt hoặc lọc cho năm đã chọn.
Nguyên nhân tại thời điểm thiết kế
Hàm thông minh thời gian DAX yêu cầu cột ngày được chỉ định cho đối số ngày. Cột ngày phải có một phạm vi ngày liền nhau. Lỗi này có thể được trả lại, nếu có giá trị ngày trong một hoặc nhiều hàng trong cột ngày không tiếp giáp với giá trị dữ liệu trong các hàng trước đó và kế tiếp.
Nếu bạn đã nhập bảng chứa ngày tháng từ nguồn dữ liệu, hãy nhớ rằng nhiều tổ chức chạy quy trình đặc biệt quét các bảng trong cơ sở dữ liệu để tìm các giá trị không hợp lệ và thay thế các bảng đó bằng một giá trị cụ thể. Nghĩa là, nếu ngày không hợp lệ được tìm thấy, ngày đó sẽ được gán một giá trị ngày cụ thể có thể không tiếp giáp với các giá trị dữ liệu khác trong cột.
Làm thế nào để sửa lỗi này tại thời điểm thiết kế?
Làm như sau để sửa lỗi tại thời điểm thiết kế -
Nếu bảng ngày của bạn được nhập từ nguồn dữ liệu, hãy sử dụng Làm mới trong cửa sổ Power Pivot để nhập lại bất kỳ thay đổi nào được tìm thấy tại nguồn.
Kiểm tra các giá trị trong cột ngày của bạn để đảm bảo rằng chúng theo thứ tự liền kề. Nếu bất kỳ giá trị nào được tìm thấy không đúng vị trí, nó sẽ phải được sửa tại nguồn và bảng ngày tháng sẽ phải được làm mới.
Tạo bảng ngày và cột ngày riêng biệt trong Mô hình dữ liệu của bạn. Chỉ định cột ngày mới làm đối số ngày trong công thức gây ra lỗi. Bảng ngày dễ dàng tạo và thêm vào Mô hình Dữ liệu.
Lỗi ngữ nghĩa DAX - Một ví dụ
Lỗi DAX sau đây là lỗi ngữ nghĩa -
“Hàm 'CALCULATE' đã được sử dụng trong biểu thức true-false được sử dụng làm biểu thức lọc bảng. Điều này không được phép."
Nguyên nhân
Lỗi này có thể xuất hiện khi không thể sử dụng một hoặc nhiều biểu thức bộ lọc trong ngữ cảnh của trường được tính toán hoặc biểu thức cột được tính toán.
Trong hầu hết các trường hợp, lỗi này là do biểu thức bộ lọc được chỉ định làm đối số cho hàm DAX CALCULATE. Hàm CALCULATE yêu cầu các bộ lọc được xác định dưới dạng biểu thức Boolean hoặc biểu thức bảng.
Làm thế nào để sửa chữa những lỗi như vậy?
Bạn có thể sửa các lỗi như vậy bằng cách sử dụng hàm DAX FILTER để xác định bộ lọc dưới dạng biểu thức bảng, sau đó có thể được sử dụng làm đối số cho hàm DAX CALCULATE.