[DAX Tutorial] Cách sử dụng hàm Divide trong Power BI

Trong quá trình xử lý và phân tích dữ liệu bằng DAX trong Power BI, phép chia là một trong những tác vụ cơ bản và thường xuyên nhất. Tuy nhiên, nếu không xử lý khéo léo, bạn rất dễ gặp phải lỗi chia cho 0 khiến báo cáo bị lỗi hiển thị. Để giải quyết triệt để vấn đề này, hàm DIVIDE trong Power BI được sinh ra như một giải pháp tối ưu và an toàn nhất. Bài viết này, Starttrain sẽ giúp bạn hiểu rõ từ cú pháp, cách hoạt động cho đến các ví dụ thực tế trực quan từ một báo cáo doanh thu thực tế.

Hàm DIVIDE trong Power BI là gì?

Hàm DIVIDE trong Power BI là một hàm toán học và lượng giác thuộc ngôn ngữ DAX, được thiết kế chuyên biệt để thực hiện phép chia giữa hai biểu thức. Điểm ưu việt lớn nhất của hàm DIVIDE so với toán tử chia thông thường (dấu gạch chéo /) là khả năng tự động xử lý lỗi khi mẫu số bằng 0 hoặc rỗng (BLANK) một cách cực kỳ mượt mà.Cú pháp chuẩn của hàm DIVIDE trong DAX như sau:

DIVIDE(Numerator, Denominator [, AlternateResult])

Giải thích chi tiết các tham số

  • Numerator (Tử số): Đây là biểu thức hoặc giá trị số mà bạn muốn chia. Nó có thể là một cột dữ liệu, một hằng số hoặc một thước đo (Measure) đã được tính toán từ trước (ví dụ: tổng doanh thu, tổng số lượng).
  • Denominator (Mẫu số): Đây là biểu thức hoặc giá trị số dùng để chia. Tương tự như tử số, đây có thể là một số cố định hoặc một Measure (ví dụ: tổng số đơn hàng, tổng số khách hàng).
  • AlternateResult (Kết quả thay thế – Tùy chọn): Đây là tham số không bắt buộc. Khi mẫu số (Denominator) bằng 0, rỗng (BLANK) hoặc phát sinh lỗi chia, hàm DIVIDE sẽ trả về giá trị mà bạn định nghĩa ở tham số này. Nếu bạn bỏ qua không điền, hàm sẽ mặc định trả về giá trị trống (BLANK).

Tại sao nên dùng hàm DIVIDE thay vì toán tử chia?

Nhiều người mới bắt đầu thường sử dụng toán tử gạch chéo ” / ” để làm phép chia. Tuy nhiên, các chuyên gia phân tích dữ liệu luôn khuyên dùng hàm DIVIDE vì các lý do sau đây:

  • Tránh lỗi hiển thị trên Dashboard: Nếu dùng toán tử ” / “, khi mẫu số bằng 0, Power BI sẽ báo lỗi, làm mất thẩm mỹ và giảm độ tin cậy của báo cáo. Hàm DIVIDE sẽ chuyển các lỗi này thành khoảng trống (BLANK) hoặc giá trị mặc định do bạn thiết lập.
  • Tối ưu hiệu suất (Performance): Đối với các tập dữ liệu lớn hàng triệu dòng, việc sử dụng hàm DIVIDE giúp công cụ tính toán của Power BI tối ưu hóa truy vấn tốt hơn so với việc viết các hàm điều kiện phức tạp dạng “IF(Mẫu số = 0, BLANK(), Tử số / Mẫu số)”.
  • Code DAX sạch đẹp, dễ bảo trì: Việc dùng hàm giúp các dòng code DAX của bạn ngắn gọn, tường minh và chuẩn hóa theo đúng tiêu chuẩn thiết kế cơ sở dữ liệu chuyên nghiệp.

Dưới đây là bảng so sánh trực quan giữa hai phương pháp này:

Tiêu chíSử dụng hàm DIVIDESử dụng toán tử chia (/)
Xử lý khi mẫu số bằng 0Tự động trả về BLANK hoặc giá trị thay thế (AlternateResult) mà bạn thiết lập.Trả về lỗi hiển thị hoặc các giá trị “Infinity”, “NaN” trên Dashboard.
Hiệu suất tính toánRất nhanh và tối ưu nhờ cơ chế xử lý lỗi tích hợp sâu trong công cụ DAX.Chậm hơn nếu phải lồng thêm hàm IF để kiểm tra mẫu số có bằng 0 hay không.
Độ phức tạp của codeCode cực kỳ ngắn gọn, sạch đẹp và chuyên nghiệp.Code phức tạp và dài dòng hơn khi cần bẫy lỗi chia cho 0.
Khuyên dùngSử dụng cho hầu hết mọi trường hợp tính toán tỷ lệ, doanh thu trung bình.Chỉ nên dùng khi bạn chắc chắn 100% mẫu số không bao giờ bằng 0.

Ví dụ cụ thể khi sử dụng hàm DIVIDE trong Power BI

Để giúp bạn hình dung trực quan, chúng ta hãy cùng phân tích một trường hợp thực tế: Tính toán chỉ số Giá trị đơn hàng trung bình – Average Order Value (AOV).

Bước 1: Viết công thức DAX với hàm DIVIDE

Như thể hiện trong thanh công thức ở ảnh chụp màn hình thứ nhất, chúng ta cần tạo một Measure mới có tên là Average Order Value (AOV) để tính giá trị trung bình của mỗi đơn hàng.

Công thức DAX được thiết lập chính xác như sau:

Average Order Value (AOV) = DIVIDE([Total Sales], [Total Orders], BLANK())

hàm Divide trong power bi

Phân tích các thành phần trong công thức thực tế:

  • Average Order Value (AOV): Tên của Measure mới.
  • [Total Sales]: Tử số (Numerator) – Thước đo tính tổng doanh thu bán hàng.
  • [Total Orders]: Mẫu số (Denominator) – Thước đo tính tổng số lượng đơn hàng đã đặt.
  • BLANK(): Tham số thay thế (AlternateResult). Nếu một danh mục sản phẩm nào đó chưa phát sinh bất kỳ đơn hàng nào (tức là Total Orders = 0), hệ thống sẽ không báo lỗi mà trả về giá trị rỗng (Blank), giúp biểu đồ hiển thị sạch sẽ.

Sau khi viết xong công thức, Measure này được lưu trữ trong bảng #MEASURE và được định dạng kiểu tiền tệ (Currency) với số thập phân bằng 0 (như hiển thị trên thanh công cụ Measure tools).

Bước 2: Trực quan hóa dữ liệu 

Sau khi tính toán thành công bằng hàm DIVIDE, chỉ số AOV sẽ được đưa lên màn hình Dashboard tương tác một cách trực quan như ở ảnh chụp màn hình thứ hai:

  • Thẻ chỉ số tổng quát (Card Visual): Hiển thị con số AOV trung bình toàn doanh nghiệp cực kỳ rõ ràng là $996 (Average Order Value).
  • Biểu đồ đường theo thời gian (Average Order Value (AOV) by Year): Giúp doanh nghiệp theo dõi xu hướng biến động giá trị đơn hàng qua các năm (từ năm 2025 đến năm 2026). Dễ dàng nhận thấy xu hướng đang giảm dần, từ đó giúp nhà quản lý đưa ra quyết định kịp thời.
  • Biểu đồ cột ngang theo danh mục sản phẩm (Average Order Value (AOV) by Category): Phân tích chi tiết giá trị đơn hàng trung bình của từng ngành hàng như Trang sức (Jewelry), Thể thao (Sports), Bách hóa (Grocery), Thiết bị điện tử (Electronics), Đồ chơi (Toys), Thiết bị gia dụng (Home), Làm đẹp (Beauty), … Nhờ hàm DIVIDE hoạt động chuẩn xác, các ngành hàng không có doanh thu hoặc không có đơn hàng sẽ tự động ẩn đi hoặc không gây lỗi cho toàn bộ trục biểu đồ.

hàm Divide trong power bi

Một số lưu ý khi sử dụng hàm DIVIDE trong Power BI

Mặc dù hàm DIVIDE rất mạnh mẽ và tiện lợi, bạn vẫn cần nắm lòng một số lưu ý kỹ thuật sau để làm chủ hoàn toàn công cụ này:

Thay đổi giá trị trả về mặc định

Trong nhiều báo cáo tài chính, việc để trống (BLANK) đôi khi khiến người xem hiểu lầm là hệ thống bị thiếu dữ liệu. Nếu bạn muốn hiển thị số 0 thay vì khoảng trống khi không có đơn hàng, hãy thay đổi tham số thứ ba:Average Order Value (AOV) = DIVIDE([Total Sales], [Total Orders], 0)

Lúc này, thay vì để trống, hệ thống sẽ hiển thị số 0 một cách rõ ràng trên các bảng số liệu.

Khi nào nên dùng toán tử chia

Có một trường hợp ngoại lệ duy nhất bạn nên dùng toán tử ” / ” là khi bạn muốn cố tình nhận thông báo lỗi. Ví dụ: Trong giai đoạn kiểm thử chất lượng dữ liệu, bạn cần phát hiện ra các dòng dữ liệu bị lỗi chia cho 0 để xử lý từ nguồn chứ không muốn Power BI tự động che giấu lỗi đó đi.

Đảm bảo định dạng dữ liệu nhất quán

Sau khi tạo Measure bằng hàm DIVIDE, hãy luôn kiểm tra lại định dạng hiển thị của cột (Formatting). Nếu kết quả là tỷ lệ phần trăm (như tỷ lệ chuyển đổi, tỷ lệ tăng trưởng), hãy chọn định dạng là Percentage (%). Nếu là giá trị tiền tệ như ví dụ trên, hãy định dạng là Currency kèm ký hiệu tiền tệ tương ứng.

[FAQ] Các câu hỏi thường gặp về hàm DIVIDE trong Power BI

Tôi có thể trả về một dòng chữ cảnh báo thay vì số 0 hoặc khoảng trống không?

Được, bạn hoàn toàn có thể trả về một chuỗi văn bản (Text) ở tham số thứ ba. Ví dụ: Average Order Value (AOV) = DIVIDE([Total Sales], [Total Orders], “Chưa có đơn hàng”) Tuy nhiên, cần lưu ý rằng nếu bạn trả về dạng chữ, định dạng của Measure đó sẽ chuyển thành dạng Text và bạn sẽ gặp khó khăn nếu muốn sử dụng Measure này làm đầu vào cho các biểu đồ dạng đường, cột (vốn chỉ nhận dữ liệu dạng số).

Tại sao kết quả của hàm DIVIDE đôi khi hiển thị trống trơn trên bảng số liệu?

Điều này xảy ra do tham số thứ ba AlternateResult bị bỏ trống, hoặc bạn đã gán giá trị mặc định là BLANK(). Đây là hành vi hoàn toàn bình thường để giữ cho giao diện báo cáo sạch sẽ. Nếu bạn muốn hiển thị rõ số 0 để người xem dễ so sánh, hãy thay đổi tham số này thành số 0 như hướng dẫn ở trên.

Tổng kết

Hàm DIVIDE trong Power BI không chỉ đơn thuần là công cụ thực hiện phép tính toán mà còn là giải pháp tối ưu giúp báo cáo của bạn chuyên nghiệp, sạch sẽ và mượt mà hơn. Bằng cách tự động xử lý các giá trị rỗng hoặc lỗi chia cho 0, hàm DIVIDE giúp bảo vệ giao diện Dashboard khỏi các lỗi hiển thị không mong muốn, nâng cao đáng kể trải nghiệm người dùng và tính chính xác của dữ liệu.

Khi xây dựng các mô hình dữ liệu lớn phức tạp, hãy tạo thói quen ưu tiên sử dụng hàm DIVIDE thay cho toán tử chia thông thường. Điều này giúp hệ thống của bạn vận hành nhanh hơn, mã DAX dễ đọc hơn và các biểu đồ xu hướng luôn hiển thị chính xác nhất.
Nếu muốn thành thạo DAX, Data Model, Power Query và các kỹ thuật xây dựng Dashboard chuyên nghiệp, bạn có thể tham khảo Khóa học Power BI với lộ trình từ cơ bản đến nâng cao và nhiều bài tập thực hành thực tế.

Để lại một bình luận

Form - đọc sách
Form - Single Report Template

Vui lòng liên hệ qua những thông tin bên dưới. Starttrain sẽ phản hồi bạn trong thời gian sớm nhất.

Form Dashboard service