오류 함수를 적절하게 사용
데이터 모델러로서 평가 시간 오류를 발생시키는 DAX 식을 작성할 때 두 가지 유용한 DAX 함수를 사용하는 것이 좋습니다.
- ISERROR 함수는 단일 식을 사용하고 해당 식에서 오류가 발생하는 경우 TRUE를 반환합니다.
- 두 식을 사용하는 IFERROR 함수입니다. 첫 번째 식에서 오류가 발생하면 두 번째 식의 값이 반환됩니다. 실제로 ISERROR 함수를 IF 함수 내에 중첩하는 보다 최적화된 구현입니다.
그러나 이러한 함수는 유용할 수 있으며 이해하기 쉬운 식을 작성하는 데 기여할 수 있지만 계산 성능을 크게 저하시킬 수도 있습니다. 이러한 함수는 필요한 스토리지 엔진 검색 수를 늘리기 때문에 발생할 수 있습니다.
대부분의 평가 시간 오류는 예기치 않은 BLANK 또는 0 값 또는 잘못된 데이터 형식 변환으로 인해 발생합니다.
권장 사항
ISERROR 및 IFERROR 함수를 사용하지 않는 것이 좋습니다. 대신 모델을 개발하고 식을 작성할 때 방어 전략을 적용합니다. 전략에는 다음이 포함될 수 있습니다.
품질 데이터가 모델에 로드되었는지 확인: 파워 쿼리 변환을 사용하여 유효하지 않거나 누락된 값을 제거하거나 대체하고 올바른 데이터 형식을 설정합니다. 파워 쿼리 변환을 사용하여 잘못된 데이터 변환과 같은 오류가 발생할 때 행을 필터링할 수도 있습니다.
모델 열 Is Nullable 속성을 Off로 설정하여 데이터 품질을 제어할 수도 있습니다. 그러면 BLANK가 발견되면 데이터 새로 고침이 실패합니다. 이 오류가 발생하면 성공적인 새로 고침의 결과로 로드된 데이터가 테이블에 다시 기본.
IF 함수 사용: IF 함수 논리 테스트 식은 오류 결과가 발생할지 여부를 결정할 수 있습니다. ISERROR 및 IFERROR 함수와 마찬가지로 이 함수는 추가 스토리지 엔진 검색을 발생시킬 수 있지만 오류가 발생하지 않을 경우 보다 성능이 향상될 수 있습니다.
오류 내성 함수 사용: 일부 DAX 함수는 오류 조건을 테스트하고 보정합니다. 이러한 함수를 사용하면 대신 반환될 대체 결과를 입력할 수 있습니다. DIVIDE 함수는 이러한 예제 중 하나입니다. 이 함수 에 대한 추가 지침은 DAX: DIVIDE 함수와 나누기 연산자(/) 문서를 참조하세요.
예시
다음 측정값 식은 오류가 발생하는지 여부를 테스트합니다. 이 인스턴스에서는 BLANK를 반환합니다(IF 함수에 value-if-false 식을 제공하지 않는 경우).
Profit Margin
= IF(ISERROR([Profit] / [Sales]))
이 측정값 식의 다음 버전은 IF 및 ISERROR 함수 대신 IFERROR 함수를 사용하여 개선되었습니다.
Profit Margin
= IFERROR([Profit] / [Sales], BLANK())
그러나 이 측정값 식의 최종 버전은 동일한 결과를 달성하지만 더 효율적이고 우아하게 수행됩니다.
Profit Margin
= DIVIDE([Profit], [Sales])
관련 콘텐츠
- 학습 경로: Power BI Desktop에서 DAX 사용
- 궁금한 점이 더 있나요? Power BI 커뮤니티에 질문합니다.
- 제안 사항은? Power BI 개선을 위한 아이디어 제공