파워비이에서 고유 개수 (Distinct Count) 계산하는 3 가지 핵심 방법
데이터 분석 분야에서 가장 기본적이면서도 핵심적으로 다루려 해야 할 계산 중 하나가 바로 ‘고유 개수’ 즉 Distinct Count입니다. 이는 특정 열에 포함된 중복 값을 제거한 후 실제 존재하는 독특한 항목의 수를 세는 작업인데, 엑셀을 사용하신 분들이라면 UNIQUE 함수 또는 COUNTA 함수의 배열 적용, 혹은 피벗 테이블의 고유 설정 등 복잡한 수식을 구해야 했습니다.
하지만 파워비이에서는 이러한 작업을 시각화 도구 내부에서 단 한 번의 클릭만으로 해결할 수 있으며, 향후 보고서 수정이 필요할 때 재사용 가능한 DAX 측정값으로 저장해두어 훨씬 간편하게 관리할 수 있습니다. 이번 포스팅에서는 파워비이를 이용해 고유한 값을 세는 방법을 다양한 관점에서 자세히 알아볼 예정이며, 엑셀 사용 경험이 있다면 특히 도움이 될 것입니다.
방법 1: 시각화 기본 설정 (한 번 클릭)
우선 가장 간편한 방법부터 설명드리겠습니다. 엑셀 사용자들이 선호하는 ‘작은 단계’의 접근 방식이라고 할 수 있습니다. 실제 판매 데이터를 가지고 있을 때, ‘총 판매 건이 아니라 실제로 주문을 넣은 고유한 고객 수는 몇 명일까?’를 알고 싶다고 칩시다. 이 경우 모든 주문 행을 세는 것이 아니라, 고유한 고객만 세주도록 하면 됩니다. 시각화 패널의 필드 드롭다운에서 Customer ID 열을 선택한 후, 해당 열의 옵션에서 ‘Count(Distinct)’를 고르기만 하면 파워비이는 자동으로 고유 고객 수를 보여줍니다. 기본 옵션은 전체 행을 세지만, 이 모드에서는 중복을 제외합니다. 이 방법은 빠른 원스오프 분석에 적합하지만, 별도의 측정값으로 따로 저장하거나 다른 계산식에서 참조하기는 어렵다는 점을 알아두시면 좋습니다.
방법 2: 재사용 가능한 측정값 (DAX 함수)
만약 여러 시각화에서 동일한 고유 개수를 보여주고 싶다면, 측정값을 생성하는 것이 좋습니다. 파워비이 Modeling 탭에서 새 측정값을 만든 후, `Distinct Customers = DISTINCTCOUNT(SalesData[Customer ID])` 와 같이 DAX 함수를 작성하시면 됩니다. `DISTINCTCOUNT`는 해당 열의 고유값 개수를 세는 전용 함수입니다. 만약 계산 시 공백을 무시하고 싶다면 `DISTINCTCOUNTNOBLANK` 함수를 사용하면 공백 값을 고유 값으로 포함하지 않은 개수를 확인할 수 있습니다. 측겠값은 여러 곳에 드래그할 수 있어 유지보수가 쉽고 나중에 필터 조건 등을 추가해서 확장할 수 있어 전문 비즈니스 보고서에 더욱 유용합니다.
방법 3: 필터링된 고유 개수 (CALCULATE 연산)
아마도 많은 분들이 필요로 할 부분이 있을 것입니다. 특정 조건하에서만 고유 개수를 세야 하는 상황입니다. 예를 들어, 3 천 달러 이상 구매한 고가 고객이나 특정 지역 내에서 판매된 고유 제품만 세고 싶다면 `CALCULATE` 함수를 사용하면 됩니다. 이 함수는 필터 컨텍스트를 적용하는 가장 강력한 DAX 도구입니다. 예를 들어 `CALCULATE(DISTINCTCOUNT(SalesData[Customer ID]), SalesData[Sales Amount] > 3000)` 이라고 작성하면 3 천 달러 이상 구매 고객만 고유하며 세게 됩니다.
엑셀과 파워비이에서의 차이점 살펴보기
두 가지 방식을 비교해 보면, 엑셀에서는 전체 고유 개수를 위해 UNIQUE 와 COUNTA 조합이나 피벗 설정이 필요했습니다. 파워비이는 단순히 필드를 드래그하고 옵션을 선택하는 방식입니다. 엑셀은 피벗 테이블에서 행에 범주를 추가하고 수식을 복사하거나 파워 피벗을 활용해야 했지만, 파워비이는 하나의 DAX 측정값을 보고서에 어디든 끌어서 쓸 수 있습니다. 또한 슬라이서나 필터를 변경할 때 엑셀은 수식을 다시 입력하거나 피벗을 새로고침해야 하지만, 파워비이 필터 컨텍스트는 자동으로 반영되는 것이 큰 장점입니다.
보통 저울고장 (Gotchas) 확인하기
분석 과정에서 자주 나오는 실수를 미리 알려드립니다. 먼저 ‘Count’와 ‘Distinct Count’를 혼동하지 않아야 합니다. DAX 에서는 `COUNT` 대신 `DISTINCTCOUNT` 를 사용해야 하며, `DISTINCTCOUNT` 는 공백을 고유 값으로 포함할 수 있으므로 공백을 제외하려면 `NOBLANK` 함수가 필요합니다. 또 이름이 조금이라도 다를 경우, 예컨대 ‘Acme Ltd’ 와 ‘ACME LTD’ 는 서로 다른 값으로 인식될 수 있습니다. 이는 고유 개수를 너무 많이 세어 버릴 수 있으므로, 고객 ID 나 표준화된 코드를 사용하는 것이 가장 좋습니다. 텍스트를 분석할 경우라면 파워비이 쿼리에서 대소문자를 통일하거나 공백을 정리하는 작업을 먼저 수행해야 정확한 결과를 얻을 수 있습니다.
결론
이제 소개해 드린 방법들을 활용하시면 파워비이에서 고유한 값을 세는 작업을 아주 쉽고 안전하게 수행하실 수 있습니다. 복잡한 수식에서 간단한 드롭다운 선택으로 넘어가는 과정 자체가 직관적입니다. 다음 데이터 보고서 작업에서 ID, 이름, 코드 열에 드래그하여 고유 개수를 계산해 보시고, 데이터 모델에서 임의의 슬라이스나 필터 차원에서 ‘고유한 X 의 개수는 몇 개?’라는 질문에 답할 수 있는 모든 도구를 갖추셨으면 좋겠습니다. 엑셀에서 파워비이转过하시는 분들에게 있어 가장 만족스러운 업그레이드 중 하나일 수 있습니다.
이 글은 ExcelDemy의 기사를 바탕으로 작성되었습니다.
