다음을 통해 공유


오류 함수를 적절하게 사용

데이터 모델러로서 평가 시간 오류를 발생시키는 DAX 식을 작성할 때 두 가지 유용한 DAX 함수를 사용하는 것이 좋습니다.

그러나 이러한 함수는 유용할 수 있으며 이해하기 쉬운 식을 작성하는 데 기여할 수 있지만 계산 성능을 크게 저하시킬 수도 있습니다. 이러한 함수는 필요한 스토리지 엔진 검색 수를 늘리기 때문에 발생할 수 있습니다.

대부분의 평가 시간 오류는 예기치 않은 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])