(2019/6/22) Excel의 SUMIFS 함수로 만든 테이블과 Power BI로 만든 테이블의 숫자가 맞지 않을 때 Tips

본 기사에서 쓰는 내용



Excel의 SUMIFS 함수에서 집계된 결과와 동일한 값의 테이블을 만들고 싶을 때,
관계에 의해 집계치가 맞지 않는 부분을 무리 교환하는 방법입니다.

예: 프로젝트 예산 및 실적 비교 표





전제 1: 예산과 실적은 별도로 관리됩니다.





전제 2: 2개의 테이블은 프로젝트 ID로 연결됩니다





전제 3: 프로젝트 실시 부서≠예산 기부 부서



프로젝트 ID와 관련된 예산 관리 테이블의 부서 이름과 프로젝트 관리 테이블의 부서 이름이 반드시 일치하지는 않습니다. 또 하나의 프로젝트에 대해 복수의 예산이 사용되는 경우도 있습니다. 관계 변경도 금지됩니다.

전제 4: 결과는 SUMIFS 함수의 부서명 당 집계와 일치합니다





전제 5: 전제 4의 Excel이 잘못된 집계 결과라고 말하지 마십시오.



Power BI의 올바른 사용법이라고는 생각하지 않지만, 강해지고 있다.

무엇이 문제로 어떻게 해결됩니까?



관리 테이블의 부서명을 바탕으로 집계한 경우 Power BI에서 프로젝트 ID에 의한 관계가 있기 때문에 계산이 맞지 않습니다.

문제는 부서명별로 집계할 수 없다는 것





DAX를 이용하여 Project ID에 의한 관계를 무효화한 후, 부서명의 매칭만으로 집계합니다.




테이블 간의 관계는 변경하지 않고 원하는 값을 가져올 수있었습니다.

Power BI의 테이블 이름은 각각 다음과 같습니다.
- 프로젝트 관리표: Projects
- 예산관리표: 코스트
- Project ID로 Full Outer 옵션으로 병합된 테이블: Mapper

DAX에 의한 집계 방법
1. 프로젝트관리표와 예산관리표에서 부서명이 일치하는 것만 집계
2. 부서명이 맞지 않는 것은 ALLEXCEPT 함수로 프로젝트 관리표측의 부서명에만 맞추어 집계한다
3. Total은 별도로 계산한다

Project_Cost.DAX
対プロジェクト部門実績 = 
    IF(
        MIN(Projects[部署]) = MAX(Projects[部署]),
        CALCULATE(
            SUM('Mapper'[Costs.実績]), 
            FILTER('Mapper', [部署]=[Costs.部署])
        )
        + CALCULATE(
            SUM('Mapper'[Costs.実績]), 
            FILTER(
                ALLEXCEPT('Mapper', Costs[部署]),
                AND([部署]<>[Costs.部署], MIN(Projects[部署]) = [Costs.部署])
            )
        ),
        SUM('Mapper'[Costs.実績])
    )

※보다 좋은 방법이 발견되는 대로, 갱신하고 싶습니다. 아이디어 등 있으면 지적하실 수 있으면 다행입니다.

좋은 웹페이지 즐겨찾기