DAX nâng cao trong Power BI
Carl Rosseel
Curriculum Manager
Hàm logic xử lý một biểu thức để trả thông tin về giá trị hoặc tập trong biểu thức.
Các hàm logic dùng nhiều nhất:
IF()AND(), OR(), NOT()SWITCH()Cấu trúc:
IF(<logical_test>, <value_if_true>, <value_if_false>)Ví dụ:
Performance = IF([Total Sales] >= 50 000, "Target Reached", "Target Not Reached")Cấu trúc:
IF(<logical_test>, <value_if_true>[, <value_if_false>])Ví dụ:
Performance = IF([Total Sales] >= 50 000, "Target Reached", "Target Not Reached") | Name | Total Sales |
|---|---|
| Jenny | 48,431 |
| Jane | 76,528 |
| Dwayne | 24,167 |
| Thomas | 52,125 |
Cấu trúc:
IF(<logical_test>, <value_if_true>[, <value_if_false>])Ví dụ:
Performance = IF([Total_Sales] >= 50 000, "Target Reached", "Target Not Reached")| Name | Total Sales | Performance |
|---|---|---|
| Jenny | 48,431 | Chưa đạt mục tiêu |
| Jane | 76,528 | Đạt mục tiêu |
| Dwayne | 24,167 | Chưa đạt mục tiêu |
| Thomas | 52,125 | Đạt mục tiêu |
Cả ba toán tử trả về TRUE hoặc FALSE.
AND(<logical1>,<logical2>)TRUE nếu cả hai điều kiện là TRUEAND(5 < 4, 5 < 6) = AND(FALSE, TRUE) = FALSEOR(<logical1>,<logical2>)TRUE nếu có ít nhất một điều kiện TRUEOR(5 < 4, 5 < 6) = OR(FALSE, TRUE) = TRUENOT(<logical>)TRUE thành FALSE và ngược lạiNOT(OR(5 < 4, 5 < 6)) = NOT(TRUE) = FALSEAND có thể dùng &&
AND(5 < 4, 5 < 6) = 5 < 4 && 5 < 6 OR có thể dùng ||
OR(5 < 4, 5 < 6) = 5 < 4 || 5 < 6Đánh giá một biểu thức theo danh sách giá trị và trả về một trong nhiều kết quả.
SWITCH(<expression>, <value>, <result>[, <value>, <result>] ... [, <else>])IF() lồng nhauPerformance = SWITCH(TRUE,
[Total_Sales] < 25 000, "Poor",
[Total_Sales] < 50 000, "Below expectations",
[Total_Sales] < 75 000, "Above expectations",
"Exceptional")
Performance = SWITCH(TRUE,
[Total_Sales] < 25 000, "Poor",
[Total_Sales] < 50 000, "Below expectations",
[Total_Sales] < 75 000, "Above expectations",
"Exceptional")
| Name | Total Sales |
|---|---|
| Jenny | 48,431 |
| Jane | 76,528 |
| Dwayne | 24,167 |
| Thomas | 52,125 |
Performance = SWITCH(TRUE,
[Total_Sales] < 25 000, "Poor",
[Total_Sales] < 50 000, "Below expectations",
[Total_Sales] < 75 000, "Above expectations",
"Exceptional")
| Name | Total Sales | Performance |
|---|---|---|
| Jenny | 48,431 | Dưới kỳ vọng |
| Jane | 76,528 | Xuất sắc |
| Dwayne | 24,167 | Kém |
| Thomas | 52,125 | Trên kỳ vọng |
DISCOUNT = SWITCH([Clothing Type],
"Shoes", 0.15,
"Pants", 0.20,
"Belts", 0.30,
"T-shirt", 0.25)
| Clothing Type |
|---|
| Shoes |
| Pants |
| Belt |
| T-shirt |
DISCOUNT = SWITCH([Clothing Type],
"Shoes", 0.15,
"Pants", 0.20,
"Belts", 0.30,
"T-shirt", 0.25)
| Clothing Type | Discount |
|---|---|
| Shoes | 15% |
| Pants | 20% |
| Belt | 30% |
| T-shirt | 25% |
DAX nâng cao trong Power BI