
Các công thức nâng cao như IF và VLOOKUP có thể rườm rà trong Excel khi làm việc với tập dữ liệu lớn. Mặt khác, Power BI cung cấp Biểu Thức Phân Tích Dữ Liệu (DAX), có thể hợp lý hóa và đơn giản hóa các phép tính phức tạp này. Công thức DAX cho phép bạn tạo cột tính toán, đo lường (measure) và bảng hiệu quả hơn, dễ bảo trì hơn so với công thức Excel truyền thống.
Trong hướng dẫn này, chúng ta sẽ khám phá 5 công thức DAX Power BI đơn giản hóa các phép tính Excel phức tạp. Nếu bạn là người dùng Excel thành thạo, học DAX sẽ nâng cao kỹ năng Power BI và làm cho phân tích dữ liệu mạnh mẽ, hiệu quả hơn.
1. CALCULATE: Thay Đổi Ngữ Cảnh Bộ Lọc
Trong Excel, tính giá trị dựa trên điều kiện cụ thể thường yêu cầu câu lệnh IF lồng nhau. Hàm CALCULATE của DAX cho phép bạn thay đổi ngữ cảnh bộ lọc theo cách hiệu quả, dễ đọc hơn. Đây là một trong những hàm DAX mạnh mẽ nhất, cho phép tổng hợp phức tạp và lọc động.
Tương Đương Excel: Câu Lệnh IF Lồng Nhau
Trong Excel, bạn có thể có thứ như sau:
=IF(A2 > 100, "Cao", IF(A2 > 50, "Trung Bình", "Thấp"))
Power BI DAX:
Phân Loại Doanh Số = CALCULATE( IF(SUM(Sales[SalesAmount]) > 50000, "Cao", "Thấp"), Products[Category] = "Sách" )

Trong trường hợp này, CALCULATE thay đổi ngữ cảnh bộ lọc để chỉ bao gồm dữ liệu cho "Sách" trước khi đánh giá xem tổng doanh số có vượt quá 50.000 hay không.
CALCULATE sửa đổi ngữ cảnh bộ lọc hiện tại. Nó nói với Power BI bỏ qua bộ lọc hiện có và áp dụng điều kiện được chỉ định thay vào đó. Bạn cũng có thể xếp chồng nhiều điều kiện nếu cần.
2. RELATED: Truy Cập Bảng Liên Quan
Excel dùng hàm tra cứu để lấy giá trị liên quan từ bảng khác. Trong Power BI, hàm RELATED làm cho quá trình này đơn giản và hiệu quả hơn.
Tương Đương Excel: VLOOKUP
Trong Excel, công thức như sau:
=VLOOKUP(A2, SalesData, 2, FALSE)
truy xuất giá trị từ cột thứ hai của bảng SalesData nơi cột đầu tiên khớp với giá trị trong A2.
Power BI DAX: RELATED
Hàm RELATED trong DAX truy xuất giá trị từ bảng liên quan. Để dùng RELATED, phải có mối quan hệ giữa hai bảng trong mô hình dữ liệu Power BI.
- Cột tính toán trong bảng Sales
Danh Mục Sản Phẩm = RELATED(Products[Category])

Ở đây, hàm RELATED lấy Danh Mục Sản Phẩm từ bảng Products dựa trên mối quan hệ hiện có. Điều này loại bỏ nhu cầu công thức tra cứu phức tạp và giảm lỗi bằng cách tận dụng mô hình dữ liệu.
3. SWITCH(TRUE(), …): Thay Thế Gọn Gàng Cho Câu Lệnh IF Lồng Nhau
Hàm IF của Excel trở nên khó quản lý với nhiều điều kiện, nhưng hàm SWITCH của DAX hợp lý hóa logic điều kiện. Nó đặc biệt hữu ích khi xử lý nhiều điều kiện mà không cần IF lồng nhau sâu.
Tương Đương Excel: Câu Lệnh IF Lồng Nhau
Trong Excel, bạn có thể dùng thứ như:
=IF(A2>100000,"Cao",IF(A2>50000,"Trung Bình",IF(A2>10000,"Thấp","Rất Thấp")))
Power BI DAX:
Cấp Độ Doanh Số = SWITCH( TRUE(), [Total Sales] > 200000, "Hiệu Suất Cao", [Total Sales] > 150000, "Mạnh", [Total Sales] > 100000, "Vừa Phải", "Cơ Bản" )

[Total Sales] là measure khác:
Total Sales = SUM(Sales[Amount])
Phân Khúc Khách Hàng: Cột tính toán
Logic Phân Khúc Khách Hàng = SWITCH( TRUE(), CALCULATE([Total Sales]) > 75000 && RELATED(Regions[Country]) = "United States", "US VIP", CALCULATE([Total Sales]) > 50000 && RELATED(Regions[Country]) = "United Kingdom", "UK Premium", CALCULATE([Total Sales]) > 30000 && RELATED(Regions[Country]) = "Canada", "Canada Premium", Customers[CustomerType] = "Premium", "Khách Hàng Cao Cấp", "Tiêu Chuẩn" )

Cách tiếp cận này dễ đọc hơn đáng kể so với IF lồng nhau sâu. Nó lý tưởng cho logic phân loại như phân khúc, nhóm, hoặc phân loại KPI.
4. SUMX: Lặp Qua Bảng Để Tính Tổng
Khi bạn cần thực hiện phép tính hàng theo hàng rồi tổng hợp kết quả, SUMX là hàm thích hợp. Nó lặp qua một bảng, đánh giá biểu thức cho mỗi hàng, rồi tổng kết quả.
Tương Đương Excel: SUMPRODUCT
Trong Excel, bạn có thể dùng:
=SUMPRODUCT(A2:A10, B2:B10)
Power BI DAX:
Tổng Doanh Thu = SUMX( Sales, Sales[Quantity] * Sales[UnitPrice] )

Hàm SUMX lặp qua mỗi hàng của bảng Sales, nhân Quantity với UnitPrice, rồi tổng kết quả.
5. CALCULATE + Thông Minh Thời Gian: Loại Bỏ Logic Ngày Thủ Công
Trong Excel, phép tính dựa trên thời gian thường dựa trên SUMIFS, OFFSET, hoặc INDEX/MATCH phức tạp. DAX cung cấp hàm thông minh thời gian tích hợp sẵn đơn giản hóa các tác vụ này.
Power BI DAX:
Tăng Trưởng Doanh Số YoY % =
VAR CurrentSales = SUM(Sales[SalesAmount])
VAR PreviousSales = CALCULATE(
SUM(Sales[SalesAmount]),
SAMEPERIODLASTYEAR('Calendar'[Date])
)
RETURN DIVIDE(CurrentSales - PreviousSales, PreviousSales, 0)

Đo Lường Thông Minh Thời Gian Tích Hợp Đơn Giản:
Doanh Số YTD = TOTALYTD( SUM(Sales[SalesAmount]), 'Calendar'[Date] )
Doanh Số So Với Năm Trước = CALCULATE(
SUM(Sales[SalesAmount]),
PARALLELPERIOD('Calendar'[Date], -1, YEAR)
)
Các hàm này hoạt động liền mạch với bất kỳ bộ lọc ngày nào trong báo cáo, bao gồm bộ lọc tháng, quý, hoặc năm tài chính. Không cần cột phụ hoặc điều chỉnh thủ công.
Công Thức DAX Trong Báo Cáo:

Mẹo: Dùng DIVIDE Để Xử Lý Lỗi
Trong Excel, chia cho 0 thường gây lỗi. DAX cung cấp giải pháp vững chắc hơn qua hàm DIVIDE, xử lý chia cho 0 một cách khéo léo.
Hàm DIVIDE cho phép chỉ định kết quả thay thế khi chia cho 0 xảy ra:
Biên Lợi Nhuận = DIVIDE(Sales[Profit], Sales[Total Revenue], 0)
Hàm này trả về 0 khi mẫu số bằng 0, tránh lỗi mà không cần logic bổ sung.
Mẹo Khởi Động Nhanh Cho Người Dùng Excel
- Luôn xây dựng mối quan hệ trước: Đây là nơi RELATED và CALCULATE lấy sức mạnh
- Tạo measure, không phải cột: Measure thường nhanh hơn và linh hoạt hơn
- Dùng biến (VAR): Chúng cải thiện độ đọc và khả năng bảo trì
- Kiểm tra trong visual trống: Xác thực measure bằng thẻ hoặc bảng có slicer
- Mẹo hiệu suất: Giữ bộ lọc hẹp nhất có thể; lọc cột trực tiếp thường nhanh hơn quét toàn bảng
Kết Luận
Năm công thức DAX Power BI này — CALCULATE, RELATED, SWITCH, SUMX và hàm thông minh thời gian — cung cấp cách gọn gàng, hiệu quả hơn để xử lý phép tính mà nếu không sẽ cần công thức Excel phức tạp như IF lồng nhau hoặc VLOOKUP. Bằng cách đưa các kỹ thuật này vào quy trình làm việc, bạn có thể đơn giản hóa mô hình dữ liệu, cải thiện hiệu suất, và xây dựng báo cáo có khả năng mở rộng hơn.
Nhận Miễn Phí Bài Tập Excel Nâng Cao Kèm Giải Pháp!