Dùng hàm TREATAS () để thiết lập quan hệ ảo giữa hai bảng không thể tạo mối quan hệ trong Power Bi với DAX
Tháng Chín 15, 2021
Thông thường, trong Power Bi hay Power Pivot, khi bạn thiết lập mối quan hệ giữa các bảng dữ liệu với nhau thì rất dễ dàng khi phân tích và tạo các trình bày báo cáo dựa vào mối quan hê giữa các bảng dữ liệu đã được thiết lập. Tuy nhiên không phải lúc nào dữ liệu của các bảng đều có thể liên kết với nhau khi bạn tạo quá nhiều mối liên hệ giữa các bảng dữ liệu, thì sẽ có những mối quan hệ giữa các bảng xung đột với nhau.
Vậy khi có quá nhiều bảng dữ liệu và không thể liên kết dữ liệu từ các bảng với nhau do có quá nhiều mối quan hệ thì bạn sẽ xử lý như thế nào?
Thông thường những trường hợp như vậy thì bạn sẽ xóa bớt các mối quan hệ trong các bảng dữ liệu và giữ lại những mối quan hệ cần thiết cho báo cáo. Tuy nhiên không phải lúc nào cũng chỉ cần xóa bớt mối quan hệ của bảng dữ liệu, vì vậy bạn có thể xử lý bằng cách tạo một mối liên hệ ảo giữa các bảng hay tạo mối liên hệ tạm thời bằng hàm TREATAS trong biểu thức DAX để tạo một phép tính hay một trường dữ liệu mới với mối liên hệ giữa các bảng với nhau. Và mối liên hệ này chỉ áp dụng với công thức đang áp dụng, không ảnh hưởng gì đến dữ liệu gốc của bạn hay các mối liên hệ hiện tại đang áp dụng của các bảng dữ liệu.
Bạn có thể tìm hiểu thêm hàm TREATAS ở đây
Cấu trúc của hàm TREATAS để tạo mối liên hệ ảo hay tạm thời như sau giữa các bảng tính.
TREATAS(table_expression, <column>[, <column>[, <column>[,…]]]} )
table_expression : Biểu thức kết quả trong bảng
<column>[, <column>[, <column>[,…]]]}: Các cột dùng để tạo liên kết
Ví dụ với một dữ liệu như sau 2 bảng này hiện tại không được tạo mối liên hệ với nhau mặc dù nội dung có liên hệ với nhau thông qua tên và danh mục sản phẩm.

Nội dung của bảng Sales và bảng phân nhóm như sau:
Bảng Sales:

Bảng phân nhóm:

Thông thường bạn sẽ thiết lập mối quan hệ giữa hai bảng để có thể tính được doanh thu của nhóm sản phẩm trái cây hay rau. Tuy nhiên có thể vì những lý do nào đó bạn không thể tạo được mối liên hệ trong dữ liệu của bạn. Thì có thể sử dụng hàm TREATAS để tạo một công thức tính như sau nhằm tạo một mối liên hệ tạm thời hay liên hệ ảo giữa 2 bảng.
Khi chưa có mối liên hệ thì dữ liệu sẽ không được nhảy đúng doanh số của sản phẩm nhóm rau và trái cây như sau:

Để tạo một phép tính mới bằng biểu thức DAX trong Power BI bạn bấm vào New measure hay tạo phép tính mới như sau:

Như vậy giao diện để tạo một phép tính sẽ hiện lên, bạn có thể đặt tên cho phép tính và đặt công thức vào như sau:

Như vậy tạo phép tính doanhthutheonhom như sau với hàm TREATAS để tạo mối quan hệ giữa 2 bảng Phân Nhóm và Sale.

Như vậy bạn đã tạo được một phép tính có mối liên hệ giữa các bảng với nhau mà không ảnh hưởng đên các mối liên hệ gốc khi sửa dụng Power Bi.

Như vậy với hàm TREATAS bạn có thể tạo ra nhiều phép tính liên hệ giữa các bảng khác nhau trong tình huống không thể tạo mối liên hệ hay không muốn thay đổi mối liên hệ ở dữ liệu gốc trong Power Bi.