Nâng trình phân tích dữ liệu kinh doanh bằng những khóa học của MDA
Chuyển Đổi Dữ Liệu Ẩn Và Rõ Ràng Trong Công Thức DAX
Mỗi chức năng DAX có các yêu cầu cụ thể đối với các loại dữ liệu được sử dụng làm đầu vào và đầu ra. Ví dụ: một số hàm yêu cầu số nguyên đối với một số đối số và ngày đối với những đối số khác; các chức năng khác yêu cầu văn bản hoặc bảng.
Nếu dữ liệu trong cột mà bạn chỉ định làm đối số không tương thích với kiểu dữ liệu mà hàm yêu cầu, DAX trong nhiều trường hợp sẽ trả về lỗi. Tuy nhiên, bất cứ khi nào có thể, DAX sẽ cố gắng chuyển đổi hoàn toàn dữ liệu sang loại dữ liệu được yêu cầu. Ví dụ:
- Bạn có thể nhập một ngày dưới dạng một chuỗi và DAX sẽ phân tích cú pháp chuỗi đó và cố gắng chuyển nó thành một trong các định dạng ngày và giờ của Windows.
- Bạn có thể thêm TRUE + 1 và nhận được kết quả 2, vì TRUE được chuyển đổi ngầm thành số 1 và phép toán 1+1 được thực hiện.
- Nếu bạn thêm các giá trị vào hai cột và một giá trị sẽ được biểu thị dưới dạng văn bản (“12”) và giá trị kia dưới dạng số (12), thì DAX sẽ chuyển đổi hoàn toàn chuỗi thành một số rồi thực hiện phép cộng cho kết quả dạng số. Biểu thức sau trả về 44: = “22” + 22.
- Nếu bạn tìm cách nối hai số, DAX sẽ trình bày chúng dưới dạng chuỗi rồi nối. Biểu thức sau trả về “1234”:=12&34.
1. Bảng chuyển đổi dữ liệu ngầm định:
Loại chuyển đổi được thực hiện và được xác định bởi toán tử, toán tử này sẽ truyền các giá trị mà nó yêu cầu trước khi thực hiện thao tác được yêu cầu. Các bảng này liệt kê các toán tử và cho biết chuyển đổi được thực hiện trên từng loại dữ liệu trong cột khi nó được ghép nối với loại dữ liệu trong hàng giao nhau.
1.1. Phép cộng (+):
Toán tử (+) | Số nguyên | Tiền tệ | Số thực | Ngày/Giờ |
Số nguyên | Số nguyên | Tiền tệ | Số thực | Ngày/Giờ |
Tiền tệ | Tiền tệ | Tiền tệ | Số thực | Ngày/Giờ |
Số thực | Số thực | Số thực | Số thực | Ngày/Giờ |
Ngày/Giờ | Ngày/Giờ | Ngày/Giờ | Ngày/Giờ | Ngày/Giờ |
Ví dụ: nếu một số thực được sử dụng trong phép cộng kết hợp với dữ liệu tiền tệ, thì cả hai giá trị đều được chuyển đổi thành REAL và kết quả được trả về là REAL.
1.2. Phép trừ (-):
Trong bảng sau, tiêu đề hàng là dấu trừ (bên trái) và tiêu đề cột là dấu trừ (bên phải).
Toán tử (-) | Số nguyên | Tiền tệ | Số thực | Ngày/Giờ |
Số nguyên | Số nguyên | Tiền tệ | Số thực | Số thực |
Tiền tệ | Tiền tệ | Tiền tệ | Số thực | Số thực |
Số thực | Số thực | Số thực | Số thực | Số thực |
Ngày/Giờ | Ngày/Giờ | Ngày/Giờ | Ngày/Giờ | Ngày/Giờ |
Ví dụ: nếu một ngày được dùng trong phép toán trừ với bất kỳ loại dữ liệu nào khác, thì cả hai giá trị đều được chuyển đổi thành ngày và giá trị trả về cũng là một ngày.
1.3. Phép nhân (*):
Toán tử (*) | Số nguyên | Tiền tệ | Số thực | Ngày/Giờ |
Số nguyên | Số nguyên | Tiền tệ | Số thực | Số nguyên |
Tiền tệ | Tiền tệ | Số thực | Tiền tệ | Tiền tệ |
Số thực | Số thực | Tiền tệ | Số thực | Số thực |
Ví dụ: nếu một số nguyên được kết hợp với một số thực trong phép toán nhân, thì cả hai số đều được chuyển đổi thành số thực và giá trị trả về cũng là THỰC.
1.4. Phép chia (/):
Trong bảng sau, tiêu đề hàng là tử số và tiêu đề cột là mẫu số.
Phép chia (/) (Hàng/Cột) | Số nguyên | Tiền tệ | Số thực | Ngày/Giờ |
Số nguyên | Số thực | Tiền tệ | Số thực | Số thực |
Tiền tệ | Tiền tệ | Số thực | Tiền tệ | Số thực |
Số thực | Số thực | Số thực | Số thực | Số thực |
Ngày/Giờ | Số thực | Số thực | Số thực | Số thực |
Ví dụ: nếu một số nguyên được kết hợp với một giá trị tiền tệ trong phép chia, thì cả hai giá trị đều được chuyển đổi thành số thực và kết quả cũng là một số thực.
Xem thêm: Định Hình Dữ Liệu Trong Power BI Desktop
2. Toán so sánh:
Trong các biểu thức so sánh, giá trị Boolean được coi là lớn hơn giá trị chuỗi và giá trị chuỗi được coi là lớn hơn giá trị số hoặc ngày/giờ; số và giá trị ngày/giờ được coi là có cùng thứ hạng. Không có chuyển đổi ngầm định nào được thực hiện cho các giá trị Boolean hoặc chuỗi; BLANK hoặc một giá trị trống được chuyển đổi thành 0/””/false tùy thuộc vào loại dữ liệu của giá trị được so sánh khác.
Các biểu thức DAX sau đây minh họa hành vi này:
=IF(FALSE()>”true”,”Biểu thức là đúng”, “Biểu thức là sai”), trả về “Biểu thức là đúng”
=IF(“12″>12,”Biểu thức là đúng”, “Biểu thức là sai”), trả về “Biểu thức là đúng”
=IF(“12″=12,”Biểu thức là đúng”, “Biểu thức là sai”), trả về “Biểu thức là sai”
Các chuyển đổi được thực hiện hoàn toàn cho các loại số hoặc ngày/giờ như được mô tả trong bảng sau:
Toán so sánh | Số nguyên | Tiền tệ | Số thực | Ngày/Giờ |
Số nguyên | Số nguyên | Tiền tệ | Số thực | Số thực |
Tiền tệ | Tiền tệ | Tiền tệ | Số thực | Số thực |
Số thực | Số thực | Số thực | Số thực | Số thực |
Ngày/Giờ | Số thực | Số thực | Số thực | Ngày/Giờ |
3. Xử lý khoảng trống, chuỗi trống và giá trị bằng không:
Trong DAX, giá trị rỗng, giá trị trống, ô trống hoặc giá trị bị thiếu đều được biểu thị bằng cùng một loại giá trị là BLANK. Bạn cũng có thể tạo khoảng trống bằng cách sử dụng hàm BLANK hoặc kiểm tra khoảng trống bằng cách sử dụng hàm ISBLANK.
Cách các khoảng trống được xử lý trong các hoạt động như cộng hoặc nối phụ thuộc vào chức năng riêng lẻ. Bảng sau đây tóm tắt sự khác biệt giữa các công thức DAX và Microsoft Excel, theo cách xử lý các khoảng trống.
Biểu hiện | DAX | Excel |
BLANK+BLANK | BLANK | 0(zero) |
BLANK + 5 | 5 | 5 |
BLANK + 5 | BLANK | 0(zero) |
5/BLANK | Infinity | Error |
0/BLANK | NaN | Error |
BLANK/BLANK | BLANK | Error |
FALSE OR BLANK | FALSE | FALSE |
FALSE AND BLANK | FALSE | FALSE |
TRUE OR BLANK | TRUE | TRUE |
TRUE AND BLANK | FALSE | TRUE |
BLANK OR BLANK | BLANK | Error |
BLANK AND BLANK | BLANK | Error |
Trên đây là chi tiết về chuyển đổi dữ liệu ẩn và rõ ràng trong công thức DAX mà bạn có thể tham khảo. Để biết thêm nhiều thông tin bổ ích về Power BI Desktop thì hãy truy cập vào website của Mastering Data Analytics nhé.
Xem thông tin khai giảng Khóa học Business Intelligence sớm nhất tại Mastering Data Analytics. Với mọi thắc mắc xin liên hệ hotline 0961 48 66 48 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!