값 대신 SELECTEDVALUE 사용
데이터 모델러로서 열이 특정 값으로 필터링되는지 여부를 테스트하는 DAX 식을 작성해야 하는 경우가 있습니다.
이전 버전의 DAX에서는 세 가지 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의 사용은 방어 기술입니다. 여러 값이 국가-지역 열을 필터링할 수 있기 때문에 필요합니다. 이 경우 VALUES 함수는 여러 행의 테이블을 반환합니다. 여러 행의 테이블을 스칼라 값과 비교하면 오류가 발생합니다.
추천
SELECTEDVALUE 함수를 사용하는 것이 좋습니다. 이 문서에서 설명하는 패턴과 동일한 결과를 얻을 수 있지만 더 효율적이고 우아하게 수행됩니다.
SELECTEDVALUE 함수를 사용하여 이제 측정값 정의 예제를 다시 작성합니다.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
팁
SELECTEDVALUE 함수에 대체 결과 값을 전달할 수 있습니다. 필터 또는 여러 필터가 열에 적용되지 않을 때 대체 결과 값이 반환됩니다.
관련 콘텐츠
- 학습 경로: Power BI Desktop에서 DAX 사용
- 궁금한 점이 더 있나요? Power BI 커뮤니티에 질문합니다.
- 제안 사항은? Power BI 개선을 위한 아이디어 제공
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기