오류 처리

Excel 및 DAX 언어 IFERROR 의 함수와 마찬가지로 파워 쿼리에는 오류를 테스트하고 catch하는 고유한 구문이 있습니다.

파워 쿼리의 오류 처리에 대한 문서에 멘션 따라 단계 또는 셀 수준에서 오류가 나타날 수 있습니다. 이 문서에서는 고유한 특정 논리에 따라 오류를 catch하고 관리하는 방법에 중점을 줍니다.

참고 항목

이 개념을 설명하기 위해 이 문서에서는 Excel 통합 문서를 데이터 원본으로 사용합니다. 여기에 소개된 개념은 Excel 통합 문서에서 가져온 값뿐만 아니라 파워 쿼리의 모든 값에 적용됩니다.

이 데모의 샘플 데이터 원본은 다음 표가 있는 Excel 통합 문서입니다.

Excel의 샘플 데이터입니다.

Excel 통합 문서의 이 표에는 표준 속도 열에 #NULL!, #REF!, #DIV/0! 등의 Excel 오류가 있습니다. 이 테이블을 파워 쿼리 편집기로 가져올 때 다음 이미지는 어떻게 표시되는지 보여줍니다.

파워 쿼리의 샘플 테이블입니다.

Excel 통합 문서의 오류가 각 셀의 값과 함께 [Error] 표시되는 방식을 확인합니다.

이 문서에서는 오류를 다른 값으로 바꾸는 방법을 알아봅니다. 또한 오류를 catch하고 고유한 특정 논리에 사용하는 방법도 알아봅니다.

이 경우 표준 속도 열의 값을 사용하는 새 최종 속도 열을 만드는 것이 목표입니다. 오류가 있는 경우 특파원 특수 비율 열의 값을 사용합니다.

오류를 찾을 때 대체 값 제공

이 경우 표준 속도 열의 값을 사용할 새 최종 속도 열을 샘플 데이터 원본에 만드는 것이 목표입니다. 오류가 있는 경우 해당 특수 속도 열의 값을 사용합니다.

새 사용자 지정 열을 만들려면 열 추가 메뉴로 이동하여 사용자 지정 열을 선택합니다. 사용자 지정 열 창에서 수식을 try [Standard Rate] otherwise [Special Rate]입력합니다. 이 새 열 의 최종 속도 이름을 지정합니다.

사용자 지정 열 대화 상자가 열리고 사용자 지정 열에 수식이 입력된 스크린샷

위의 수식은 표준 속도 열을 평가하려고 시도하며 오류가 없는 경우 해당 값을 출력합니다. 표준 속도 열에서 오류가 발견되면 출력은 문 다음에 otherwise 정의된 값이며, 이 경우 특수 속도 열입니다.

테이블의 모든 열에 올바른 데이터 형식을 추가한 후 다음 이미지는 최종 테이블의 모양을 보여 줍니다.

그렇지 않으면 마지막 테이블을 시도합니다.

참고 항목

다른 방법으로 이전 수식과 동일하지만 매개 변수가 필요하지 않은 함수와 함께 catch 키워드(keyword) 사용하여 수식을 try [Standard Rate] catch ()=> [Special Rate]입력할 수도 있습니다.

catch 키워드(keyword) 2022년 5월에 파워 쿼리에 도입되었습니다.

사용자 고유의 조건부 오류 논리 제공

이전 섹션과 동일한 샘플 데이터 원본을 사용하여 최종 속도에 대한 새 열을 만드는 것이 새로운 목표입니다. 표준 속도의 값이 있는 경우 해당 값이 사용됩니다. 그렇지 않으면 오류가 있는 행을 제외하고 특수 속도 열의 값이 #REF! 사용됩니다.

참고 항목

오류를 제외하는 #REF! 유일한 목적은 데모용입니다. 이 문서에 소개된 개념을 사용하여 오류 레코드에서 선택한 모든 필드를 대상으로 지정할 수 있습니다.

오류 값 옆에 있는 공백을 선택하면 화면 아래쪽에 세부 정보 창이 표시됩니다. 세부 정보 창에는 오류 이유 DataFormat.Error와 오류 메시지가 Invalid cell value '#REF!'모두 포함됩니다.

대화 상자 아래쪽에 오류 메시지가 있는 선택한 오류 스크린샷

한 번에 하나의 셀만 선택할 수 있으므로 한 번에 하나의 오류 값의 오류 구성 요소만 효과적으로 볼 수 있습니다. 여기서는 새 사용자 지정 열을 만들고 식을 사용합니다 try .

사용자 지정 논리와 함께 사용 try

새 사용자 지정 열을 만들려면 열 추가 메뉴로 이동하여 사용자 지정 열을 선택합니다. 사용자 지정 열 창에서 수식을 try [Standard Rate]입력합니다. 이 새 열 의 이름을 모든 오류로 지정합니다.

사용자 지정 열 대화 상자가 열리고 사용자 지정 열에 try 수식이 입력된 스크린샷.

식은 try 값과 오류를 식이 오류를 처리했는지 여부 try 와 적절한 값 또는 오류 레코드를 나타내는 레코드 값으로 변환합니다.

레코드 값을 사용해 보세요.

새로 만든 이 열을 레코드 값으로 확장하고 열 머리글 옆에 있는 아이콘을 선택하여 확장할 사용 가능한 필드를 확인할 수 있습니다.

확장 아이콘이 강조 표시되고 HasError, 값 및 오류 상자가 선택된 모든 오류 열의 스크린샷

이 작업은 세 개의 새 필드를 노출합니다.

  • 모든 Errors.HasError - 표준 속도 열의 값에 오류가 있는지 여부를 표시합니다.
  • 모든 Errors.Value - 표준 속도 열의 값에 오류가 없으면 이 열에 표준 속도 열의 값이 표시됩니다. 오류가 있는 값의 경우 이 필드를 사용할 수 없으며 확장 작업 중에 이 열에는 값이 있습니다 null .
  • 모든 Errors.Error - 표준 속도 열의 값에 오류가 있는 경우 이 열에 표준 속도 열의 값에 대한 오류 레코드가 표시됩니다. 오류가 없는 값의 경우 이 필드를 사용할 수 없으며 확장 작업 중에는 이 열에 값이 있습니다 null .

하나의 All.Errors.Error 값이 선택되어 있고 테이블 아래쪽에 오류 메시지가 표시된 열의 새 필드가 있는 테이블의 스크린샷.

추가 조사를 위해 All Errors.Error 열을 확장하여 오류 레코드의 세 가지 구성 요소를 가져올 수 있습니다.

  • 오류 원인
  • 오류 메시지
  • 오류 세부 정보

확장 작업을 수행한 후 모든 Errors.Error.Message 필드에는 각 셀에 있는 Excel 오류를 정확히 알려주는 특정 오류 메시지가 표시됩니다. 오류 메시지는 오류 레코드의 오류 메시지 필드에서 파생됩니다.

특정 오류 메시지가 표시된 스크린샷.

이제 새 열에 각 오류 메시지가 표시되면 최종 속도라는 이름과 다음 절을 사용하여 새 조건부 열을 만들 수 있습니다.

  • All Errors.Errors.Message 열의 값이 같null으면 출력은 표준 속도 열의 값이 됩니다.
  • 그렇지 않은 경우 모든 Errors.Errors.Message 열의 값이 같지 Invalid cell value '#REF!'.않으면 출력은 특수 비율 열의 값이 됩니다.
  • 그렇지 않으면 null입니다.

새 열에 대해 설정된 모든 오류 조건이 있는 조건부 열 추가 대화 상자의 스크린샷

계정, 표준 속도, 특별 속도최종 속도 열만 유지하고 각 열에 대해 올바른 데이터 형식을 추가한 후 다음 이미지는 최종 테이블의 모양을 보여 줍니다.

데이터 형식이 있는 최종 테이블입니다.

사용자 지정 논리 사용 trycatch 사용

또는 키워드(keyword) 사용하여 trycatch 새 사용자 지정 열을 만들 수도 있습니다.

try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null

try 및 catch 구문 접근 방식을 보여주는 새 수식이 있는 사용자 지정 열 대화 상자입니다.

추가 리소스