DAX CƠ BẢN: HÀM DISTINCTCOUNT – CÁCH SỬ DỤNG VÀ VÍ DỤ CỤ THỂ

Ngày đăng: 17/06/2024

Trong báo cáo, việc lọc và kiểm tra dữ liệu sẽ hỗ trợ quá trình ra quyết định nhanh chóng và chính xác. Một trong những công cụ mạnh mẽ giúp đạt được điều này là hàm DISTINCTCOUNT. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng hàm DISTINCTCOUNT để trích xuất thông tin quan trọng từ tập dữ liệu.

Mục đích sử dụng hàm DISTINCTCOUNT

DISTINCTCOUNT dùng để đếm trong một cột có bao nhiêu giá trị khác nhau.

Phân biệt DISTINCT & UNIQUE

Thuộc tính

DISTINCT

UNIQUE

Định nghĩa

Trả về các giá trị khác nhau trong một tập hợp dữ liệu

Mỗi giá trị chỉ xuất hiện một lần duy nhất trong tập hợp dữ liệu

Ví dụ:

Có thể thấy a và c suất hiện 3 lần trong bảng dữ liệu, vậy thì a và c là giá trị DISTINCT.

Giá trị b chỉ suất hiện duy nhất 1 lần trong bảng dữ liệu, b là giá trị UNIQUE.

Cú pháp hàm DISTINCTCOUNT

Cú pháp:

DISTINCTCOUNT(<column>)

Giải thích thông số:

Thông số

Mô tả

column

Cột chứa các giá trị cần đếm

Kết quả trả về:

DISTINCTCOUNT trả về một số nguyên đại diện cho số lượng các giá trị duy nhất trong cột được tính.

Lưu ý:

  • Hàm chỉ nhận duy nhất tham số là một cột duy nhất ( cột này có thể chứa bất cứ kiểu dữ liệu nào).
  • Khi hàm không tìm thấy hàng nào để đếm, hàm sẽ trả về BLANK.
  • Hàm DISTINCTCOUNT có đếm giá trị BLANK. Để bỏ qua giá trị BLANK, bạn có thể sử dụng hàm DISTINCTCOUNTNOBLANK.

Trường hợp cụ thể sử dụng hàm DISTINCTCOUNT

Trường hợp 1: Giả sử bạn đang làm việc với một bảng ‘Fact.Sales’ chứa toàn bộ giao dịch của một siêu thị bao gồm mã giao dịch, thời điểm giao dịch và ID khách hàng. Bạn cần tạo 2 measure < Số lượng giao dịch>, <Khách hàng giao dịch> để tìm số lượng giao dịch và số khách hàng từng giao dịch từ trước đến nay:

Công thức:

Số lượng giao dịch =
DISTINCTCOUNT ( ' Fact.Sales '[SalesOrderNumber] )
Khách hàng giao dịch =
DISTINCTCOUNT ( ' Fact.Sales '[CustomerKey] )

Giải thích công thức:

Hàm DISTINCTCOUNT sẽ xác định số đơn hàng/khách hàng đã từng suất hiện, nếu hàm gặp trị đã từng được xác định thì hàm sẽ bỏ qua. Ví dụ: Nếu cột SalesOrderNumber chứa các giá trị SO123, SO124, SO123, SO125, hàm này sẽ trả về kết quả là 3, vì có ba giá trị khác nhau (SO123, SO124, SO125).

Kết quả trả về:

Trường hợp 2: Tiếp tục sử dụng dữ liệu từ trường hợp 1, bạn cần tạo 2 measure < Số Lượng Giao Dịch (01/2018) >, < Khách Hàng Giao Dịch (01/2018) > để tìm số lượng giao dịch và số khách hàng từng giao dịch trong tháng 1 năm 2018:

Công Thức:

< Số Lượng Giao Dịch (01/2018) >

< Khách Hàng Giao Dịch (01/2018) >

Số Lượng Giao Dịch (01/2018) =
CALCULATE (
    DISTINCTCOUNT ( ‘Internet Sales'[SalesOrderNumber] ),
    FILTER ( ‘Internet Sales’, MONTH ( ‘Internet Sales'[OrderDate] ) == 1 ),
    YEAR ( ‘Internet Sales'[OrderDate] == 2018 )
)

Khách Hàng Giao Dịch (01/2018) =
CALCULATE (
    DISTINCTCOUNT ( ‘Internet Sales'[CustomerKey] ),
    FILTER ( ‘Internet Sales’, MONTH ( ‘Internet Sales'[OrderDate] ) == 1 ),
    YEAR ( ‘Internet Sales'[OrderDate] ) == 2018
)

Giải thích công thức:

Bước 1: Bộ lọc “FILTER(‘Internet Sales’, MONTH(‘Internet Sales'[OrderDate]) == 1 && YEAR(‘Internet Sales'[OrderDate]) == 2018)” áp dụng điều kiện lọc để chỉ giữ lại các đơn hàng có ngày đặt hàng trong tháng 1 năm 2018.

Bước 2: Hàm sẽ xác định số đơn hàng/khách hàng đã từng suất hiện trong tháng 1 năm 2018, nếu hàm gặp trị đã từng được xác định thì hàm sẽ bỏ qua.

Kết quả trả về:

Tạm kết

Trong bài viết này, chúng ta đã tìm hiểu về hàm DISTINCTCOUNT trong Power BI và cách lấy ra số lượng giá trị trong 1 cột. Chúng ta đã thảo luận về cú pháp cơ bản của hàm DISTINCTCOUNT và cách xử lý trong các trường hợp khác nhau. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng hàm trong Power BI và áp dụng nó vào công việc phân tích dữ liệu của bạn một cách hiệu quả.

Chia sẻ bài viết này

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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

This site uses Akismet to reduce spam. Learn how your comment data is processed.