SELECTEDVALUE 대신 VALUES 사용
데이터 모델러로서 열이 특정 값으로 필터링되는지 여부를 테스트하는 DAX 식을 작성해야 할 수도 있습니다.
이전 버전의 DAX3개의 DAX 함수가 포함된 패턴을 사용하여 이 요구 사항을 안전하게 달성했습니다. IF, HASONEVALUE 및 VALUES. 다음 측정값 정의는 예제를 제공합니다. 그것은 판매세 금액을 계산하지만, 호주 고객에게 판매된 경우에만 해당합니다.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
이 예제에서 HASONEVALUE 함수는 Country-Region 열의 단일 값이 현재 필터 컨텍스트에 표시되는 경우에만 TRUE 반환합니다. TRUE일 때 VALUES 함수는 텍스트 "Australia"에 비교됩니다. VALUES 함수가 TRUE반환하면 Sales 측정값에 0.10을 곱합니다(%10을 나타낸다). 두 개 이상의 값이 열을 필터링하기 때문에 HASONEVALUE 함수가 FALSE반환하는 경우 첫 번째 IF 함수는 BLANK반환합니다.
HASONEVALUE 사용하는 것은 방어 기법입니다. 여러 값이 Country-Region 열을 필터링할 수 있기 때문에 필요합니다. 이 경우 VALUES 함수는 여러 행의 테이블을 반환합니다. 여러 행의 테이블을 스칼라 값과 비교하면 오류가 발생합니다.
추천
SELECTEDVALUE 함수를 사용하는 것이 좋습니다. 이 문서에서 설명하는 패턴과 동일한 결과를 얻을 수 있지만 더 효율적이고 우아하게 수행됩니다.
이제 SELECTEDVALUE 함수를 사용하여 측정값 정의 예제를 다시 작성합니다.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
팁
대체 결과 값을 SELECTEDVALUE 함수에 전달할 수 있습니다. 필터 또는 여러 필터가 열에 적용되지 않을 때 대체 결과 값이 반환됩니다.
관련 콘텐츠
- 학습 경로: Power BI Desktop에서 DAX 사용
- 질문? Power BI 커뮤니티에 질문해 보세요
- 제안? Power BI 개선하기 위한 아이디어 기여