Với DAX, chúng ta có nhiều toán tử (Operators) để có thể sử dụng trong mỗi biểu thức. Trong các toán tử so sánh, DAX cung cấp 2 toán tử khá giống nhau là toán tử “=” (Equal to) và toán tử “==” (Strict Equal to). Khi thực hiện các biểu thức tính với DAX, đôi lúc bạn sẽ thắc mắc về sự khác nhau giữa toán tử “=” (Equal to) và toán tử “==” (Strict Equal to). Bài viết hôm nay Datapot sẽ giúp bạn phân biệt vấn đề này nhé.
Biểu thức toán tử “=” sẽ trả qua kết quả là TRUE khi 2 đối số được so sánh có kết quả bằng nhau. Phép toán tử này sẽ không thực hiện bất kỳ 1 chuyển đổi ngầm định nào giữa các chuỗi ký tự, và các giá trị Boolean.
Các phép so sánh dưới đây luôn trả ra kết quả là TRUE:
- So sánh giữa BLANK và 0
- So sánh giữa BANK và ký tự trống (empty string)
- So sánh giữa BLANK và FALSE
Biểu thức toán tử “==” sẽ trả ra kết quả là TRUE khi 2 đối số so sánh có kết quả bằng nhau hoặc không có giá trị nào bằng BLANK. Khi so sánh giá trị BLANK với một giá trị khác, kết quả sẽ trả về là FALSE. Tương tự với toán tử “=”, toán tử “==” không thực hiện bất kỳ 1 chuyển đổi ngầm định nào giữa các chuỗi ký tự, và các giá trị Boolean.
Như vậy, ta có thể hiểu sự khác nhau giữa 2 toán tử này chỉ xuất hiện khi có ít nhất 1 trong 2 đối số so sánh là BLANK
Biểu thức “=” | Kết quả | Biểu thức “==” | Kết quả |
Product[Color] = “Red” | Trả ra kết quả là TRUE nếu Product[Color] có giá trị “Red”, còn lại sẽ trả kết quả là FALSE | Product[Color] == “Red” | Trả ra kết quả là TRUE nếu Product[Color] có giá trị “Red”, còn lại sẽ trả kết quả là FALSE |
Product[Color] = BLANK() | Trả ra kết quả là TRUE nếu Product[Color] có giá trị BLANK hoặc ký tự trống, còn lại sẽ trả kết quả là FALSE | Product[Color] == BLANK() | Trả ra kết quả là TRUE nếu Product[Color] có giá trị BLANK, trả kết quả là FALSE nếu Product[Color] là ký tự trống hoặc giá trị khác |
Product[Color] = “” | Trả ra kết quả là TRUE nếu Product[Color] có giá trị BLANK hoặc ký tự trống, còn lại sẽ trả kết quả là FALSE | Product[Color] == “” | Trả ra kết quả là TRUE nếu Product[Color] có giá trị là ký tự trống, trả kết quả là FALSE nếu Product[Color] là BLANK hoặc giá trị khác |
Ví dụ bên dưới thể hiện so sánh 0 và Blank bằng 2 cách khác nhau và kết quả
Comparision 0 Equal to BLANK = 0 = BLANK()
Comparision 0 Strict equal to BLANK = 0 == BLANK()

Điểm giống nhau cơ bản giữa toán tử “=” và “==” là chúng đều dùng để so sánh và trả về giá trị là TRUE hoặc FALSE. Tuy nhiên trong các trường hợp so sánh với giá trị BLANK hoặc ký tự trống thì 2 cách toán tử sẽ khác nhau. Nhìn chung toán tử “==” như cái tên của nó – Strict Equal, là phép so sánh bằng chặt chẽ hơn. Để an toàn, chúng ta có thể ưu tiên sử dụng dấu “==” trong các phép so sánh.
Hy vọng sau bài viết này, bạn không còn phải lăn tăn khi lựa chọn cách sử dụng hai toán tử trên khi thực hiện các biểu thức DAX trên Power BI nhé.
Tìm hiểu về DAX trong Power BI tại đây.