Power BI - Dax - SUMX

Ryan·2025년 1월 16일

SQL/Python 분석

목록 보기
68/94

1. SUMX 함수의 기본 구조

DAX
복사
SUMX(
    <table>,
    <expression>
)
  • table: 계산의 대상이 될 테이블(또는 필터가 적용된 테이블 표현식)
  • expression: 테이블의 각 행에 대해 실행할 계산식(예: column1 * column2, IF(...) 등)

일반적인 SUM 함수 vs. SUMX

  • SUM(): 특정 컬럼 값(숫자형)을 그대로 합산
  • SUMX(): 각 행마다 수식을 먼저 실행한 뒤, 그 결과를 합산
  • 즉, SUMX는 “행별 계산 → 합계”의 과정을 수행

2. 단순 예시

예) “Inventory” 테이블에 ItemCount(재고 개수), PriceReg(정가) 컬럼이 있다고 할 때

DAX
복사
Inven Cost =
SUMX(
    Inventory,
    Inventory[ItemCount] * Inventory[PriceReg]
)
  • 동작 방식
    1. Inventory 테이블의 각 행(row)에 대하여 → ItemCount * PriceReg 계산
    2. 계산된 모든 행들의 값을 합산
    3. 즉, “(재고 개수 × 정가)” 총합을 구함
  • 이 Measure를 카드(Card) 시각화나 표(테이블)에 배치하면, 전체 재고 비용(정가 기준) 합계를 확인할 수 있음.

3. 더 복잡한 예시

  • 만약 할인율(Discount)이나 다른 조건이 있다면,
    DAX
    복사
    Inven Actual Cost =
    SUMX(
        Inventory,
        Inventory[ItemCount]
          * Inventory[PriceReg]
          * (1 - Inventory[DiscountRate])
    )
    
    • 각 SKU별로 (개수 × 정가 × (1 - 할인율)) 을 계산한 후, 그 값을 합친 결과를 반환
  • 필요하다면, IF 문 등을 넣어 개별 행 조건에 따라 다른 계산식을 적용할 수도 있음.

4. SUMX vs. 다른 DAX 집계 함수 비교

  1. SUM
    • 단일 컬럼을 그대로 합산할 때 사용 (예: SUM(Inventory[ItemCount]))
    • 행별로 다른 계산식을 먼저 적용해야 한다면 SUMX 필요
  2. AVERAGEX / COUNTX / MINX / MAXX
    • SUMX와 유사한 구조지만, 합산 대신 평균/개수/최솟값/최댓값 등을 구함
    • AVERAGEX(<table>, <expression>) → 각 행의 expression 결과값 평균
  3. CALCULATE + SUMX
    • 더 복잡한 필터 컨텍스트를 적용하면서 행별 계산을 수행할 수도 있음(고급 활용)

5. 성능 & 주의사항

  1. 행 수 많은 테이블
    • SUMX는 각 행을 순회하며 계산하므로, 테이블 행 수가 매우 크면 성능 부담
    • 필터나 요약 테이블을 통해 불필요한 계산을 줄이는 방법 고려
  2. Context(컨텍스트)
    • DAX의 필터 컨텍스트에 따라 table에 적용되는 행 범위가 달라질 수 있음(슬라이서, 페이지 필터 등)
  3. 계산 논리 확인
    • 실수로 SUM(Inventory[ItemCount] * Inventory[PriceReg]) 식을 써도 내부적으로는 (합계 × 합계)가 되지 않지만,만약 Power BI가 이를 자동 변환하지 못하면 원하는 행별 계산이 안 될 수 있으므로 SUMX가 안전.

6. 정리

  • SUMX는 DAX에서 각 행마다 특정 수식을 계산하고 그 결과를 한꺼번에 합산해주는 함수입니다.
  • 재고(개수) × 가격, 판매 수량 × 단가, 할인율 등을 곱한 총액 등 행별 산출 후 합계가 필요할 때 강력하게 활용할 수 있습니다.
  • 일반적인 SUM() 함수와 달리 행 단위 로직이 가능하므로, “계산식이 필요한 합계”에는 SUMX가 핵심입니다.

결과적으로, 재고 관리나 매출 분석처럼 “(수량 × 단가) 합계”가 자주 나오는 시나리오에서

SUMX를 활용하면 쉽고 직관적인 집계를 구현할 수 있으므로, Power BI에서 많이 쓰이는 필수 함수 중 하나입니다.

0개의 댓글