다음을 통해 공유


파워 쿼리에서 오류 처리

파워 쿼리에서 다음 두 가지 유형의 오류가 발생할 수 있습니다.

  • 단계 수준 오류
  • 셀 수준 오류

이 문서에서는 각 수준에서 찾을 수 있는 가장 일반적인 오류를 수정하는 방법에 대한 제안 사항을 제공하고 각 수준에 대한 오류 이유, 오류 메시지 및 오류 세부 정보를 설명합니다.

단계 수준 오류

단계 수준 오류는 쿼리가 로드되지 않도록 하고 오류 구성 요소를 노란색 창에 표시합니다.

단계 수준 오류입니다.

  • 오류 이유: 콜론 앞의 첫 번째 섹션입니다. 위의 예제에서 오류 이유는 Expression.Error입니다.
  • 오류 메시지: 이유 바로 뒤의 섹션입니다. 위의 예제에서 오류 메시지는 테이블의 열 'Column'을 찾을 수 없다는 것입니다.
  • 오류 세부 정보: 세부 정보: 문자열 바로 뒤의 섹션입니다. 위의 예제에서 오류 세부 정보는 열입니다.

일반적인 단계 수준 오류

모든 경우에 오류 원인, 오류 메시지 및 오류 세부 정보를 자세히 살펴보고 오류의 원인을 파악하는 것이 좋습니다. 사용 가능한 경우 오류로 이동 단추를 선택하여 오류가 발생한 첫 번째 단계를 볼 수 있습니다.

오류 단추로 이동합니다.

원본을 찾을 수 없습니다. - DataSource.Error

이 오류는 일반적으로 사용자가 데이터 원본에 액세스할 수 없거나 사용자에게 데이터 원본에 액세스할 수 있는 올바른 자격 증명이 없거나 원본이 다른 위치로 이동된 경우에 발생합니다.

: D 드라이브에 있고 사용자 A가 만든 텍스트 타일의 쿼리가 있습니다. 사용자 A는 D 드라이브에 대한 액세스 권한이 없는 사용자 B와 쿼리를 공유합니다. 이 사용자가 쿼리 를 실행하려고 하면 환경에 D 드라이브가 없기 때문에 DataSource.Error 가 발생합니다.

현재 환경에 D 드라이브가 없으므로 데이터 원본 오류로 인해 파일을 찾을 수 없습니다.

가능한 해결 방법: 텍스트 파일의 파일 경로를 두 사용자가 액세스할 수 있는 경로로 변경할 수 있습니다. 사용자 B는 파일 경로를 동일한 텍스트 파일의 로컬 복사본으로 변경할 수 있습니다. 오류 창에서 설정 편집 단추를 사용할 수 있는 경우 해당 단추를 선택하고 파일 경로를 변경할 수 있습니다.

테이블의 열을 찾을 수 없습니다.

이 오류는 일반적으로 단계가 쿼리에 존재하지 않는 열 이름을 직접 참조할 때 트리거됩니다.

: 열 이름 중 하나가 Column인 텍스트 파일의 쿼리가 있습니다. 쿼리에서 해당 열의 이름을 Date로 바꾸는 단계가 있습니다. 그러나 원래 텍스트 파일에 변경 내용이 있었고 열 이름이 날짜로 수동으로 변경되었기 때문에 열 이름이 더 이상 없습니다. 파워 쿼리에서 열이라는 열 머리글을 찾을 수 없으므로 열 이름을 바꿀 수 없습니다. 다음 이미지에 표시된 오류를 표시합니다.

식 오류입니다. 열 이름이 수동으로 변경되었기 때문에 테이블의 열을 찾을 수 없습니다.

가능한 해결 방법: 이 경우 여러 솔루션이 있지만 모두 원하는 작업에 따라 달라집니다. 이 예제에서는 올바른 날짜 열 머리글이 이미 텍스트 파일에서 제공되므로 열 이름을 바꾸는 단계를 제거할 수 있습니다. 이렇게 하면 이 오류 없이 쿼리를 실행할 수 있습니다.

기타 일반적인 단계 수준 오류

여러 데이터 원본 간에 데이터를 결합하거나 병합할 때 다음 이미지에 표시된 것과 같은 Formula.Firewall 오류가 발생할 수 있습니다.

수식 방화벽 오류, 쿼리는 다른 쿼리 또는 단계를 참조하므로 데이터 원본에 직접 액세스하지 못할 수 있습니다.

이 오류는 데이터 원본 간의 데이터 개인 정보 수준 또는 이러한 데이터 원본이 결합되거나 병합되는 방식과 같은 여러 가지 이유로 인해 발생할 수 있습니다. 이 문제를 진단하는 방법에 대한 자세한 내용은 데이터 개인 정보 보호 방화벽으로 이동하세요.

셀 수준 오류

셀 수준 오류는 쿼리가 로드되는 것을 방지하지 않지만 오류 값을 셀에 오류표시합니다. 셀에서 공백을 선택하면 데이터 미리 보기 아래에 오류 창이 표시됩니다.

오류가 포함된 표 셀에서 공백을 선택하여 오류 메시지를 표시합니다.

참고 항목

데이터 프로파일링 도구를 사용하면 열 품질 기능으로 셀 수준 오류를 보다 쉽게 식별할 수 있습니다. 추가 정보: 데이터 프로파일링 도구

셀 수준에서 오류 처리

셀 수준 오류가 발생하는 경우 파워 쿼리는 오류를 제거, 바꾸기 또는 유지하여 이를 처리하는 함수 집합을 제공합니다.

다음 섹션의 경우 제공된 예제는 시작 지점과 동일한 샘플 쿼리를 사용합니다. 이 쿼리에는 변환 오류로 인해 오류가 발생한 셀이 하나 있는 Sales 열이 있습니다. 해당 셀 내의 값은 NA이지만 해당 열을 정수 파워 쿼리로 변환할 때 NA를 숫자로 변환할 수 없으므로 다음 오류가 표시됩니다.

데이터 형식 오류가 표시되며 오류 창에서 데이터 형식 오류로 변환할 수 없습니다.

오류 제거

파워 쿼리에서 오류가 있는 행을 제거하려면 먼저 오류가 포함된 열을 선택합니다. 홈 탭의 행 줄임표 그룹에서 행 제거를 선택합니다. 드롭다운 메뉴에서 오류 제거를 선택합니다.

홈 탭에서 오류 제거 단추

이 작업의 결과로 찾고 있는 테이블이 표시됩니다.

이전에 5개의 행을 포함했던 테이블에 이제 오류가 포함된 행이 제거되어 테이블에 4개의 행이 남습니다.

오류 바꾸기

오류가 있는 행을 제거하는 대신 오류를 고정 값으로 바꾸려면 이 작업을 수행할 수도 있습니다. 오류가 있는 행을 바꾸려면 먼저 오류가 포함된 열을 선택합니다. 변환 탭의 [모든 열] 그룹에서 [값 바꾸기]를 선택합니다. 드롭다운 메뉴에서 오류 바꾸기를 선택합니다.

변환 탭의 오류 바꾸기 단추

모든 오류를 값 10으로 바꾸려면 오류 바꾸기 대화 상자에서 값 10을 입력합니다.

오류 바꾸기 대화 상자

이 작업의 결과로 찾고 있는 테이블이 표시됩니다.

세 번째 행에 Sales 열에 오류가 포함된 테이블에 이제 오류가 값 10으로 바뀌었습니다.

오류 유지

파워 쿼리는 오류를 수정하지 않더라도 오류가 있는 행을 식별하는 좋은 감사 도구 역할을 할 수 있습니다. 여기서 오류 유지가 도움이 될 수 있습니다. 오류가 있는 행을 유지하려면 먼저 오류가 포함된 열을 선택합니다. 홈 탭의 행 줄임 그룹에서 행 유지를 선택합니다. 드롭다운 메뉴에서 오류 유지를 선택합니다.

홈 탭에서 오류 단추를 유지합니다.

이 작업의 결과로 찾고 있는 테이블이 표시됩니다.

오류가 포함된 행만 유지하는 최종 테이블입니다.

일반적인 셀 수준 오류

단계 수준 오류와 마찬가지로 오류 원인, 오류 메시지 및 셀 수준에서 제공된 오류 세부 정보를 자세히 살펴보고 오류의 원인을 파악하는 것이 좋습니다. 다음 섹션에서는 파워 쿼리에서 가장 빈번한 셀 수준 오류 중 일부에 대해 설명합니다.

데이터 형식 변환 오류

테이블에서 열의 데이터 형식을 변경할 때 일반적으로 트리거됩니다. 열에 있는 일부 값을 원하는 데이터 형식으로 변환할 수 없습니다.

: Sales라는 열을 포함하는 쿼리가 있습니다. 해당 열의 한 셀에는 NA셀 값으로, 나머지 셀에는 정수가 값으로 있습니다. 열의 데이터 형식을 텍스트에서 정수로 변환하기로 결정했지만 NA 값이 있는 셀에 오류가 발생합니다.

데이터 형식 오류 세부 정보로 변환할 수 없습니다.

가능한 해결 방법: 오류로 행을 식별한 후 데이터 원본을 수정하여 NA가 아닌 올바른 값을 반영하거나 오류 바꾸기 작업을 적용하여 오류를 발생시키는 NA 값에 대한 값을 제공할 수 있습니다.

작업 오류

텍스트 값을 숫자 값으로 곱하는 등 지원되지 않는 작업을 적용하려고 하면 오류가 발생합니다.

: Sales 열의 값과 연결된 "Total Sales: " 구가 포함된 텍스트 문자열을 만들어 쿼리에 대한 사용자 지정 열을 만들려고 합니다. 연결 작업은 숫자 열이 아닌 텍스트 열만 지원하므로 오류가 발생합니다.

Sales 열의 텍스트와 숫자에 And 연산자를 적용하려고 하면 발생하는 오류 창의 식 오류입니다.

가능한 해결 방법: 이 사용자 지정 열을 만들기 전에 Sales 열의 데이터 형식을 텍스트로 변경합니다.

판매 열이 숫자 데이터 형식에서 텍스트 데이터 형식으로 변환되고 두 식이 모두 포함된 새 열이 있는 테이블입니다.

오류로 표시된 중첩 값

중첩된 구조화된 값(예: 테이블, 목록 또는 레코드)이 포함된 데이터를 사용하는 경우 다음과 같은 오류가 발생할 수 있습니다.

수식 방화벽에 의해 트리거된 중첩 값에 대한 오류가 발생했습니다.

Expression.Error: We cannot return a value of type {value} in this context

Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.

이러한 오류는 일반적으로 다음 두 가지 이유로 발생합니다.

  • 데이터 개인 정보 방화벽이 데이터 원본을 버퍼링하면 중첩된 비 스칼라 값이 자동으로 오류로 변환됩니다.
  • 데이터 형식으로 Any 정의된 열에 스칼라가 아닌 값이 포함된 경우 이러한 값은 로드 중에 오류로 보고됩니다(예: Excel의 통합 문서 또는 Power BI Desktop의 데이터 모델).

가능한 솔루션:

  • 오류가 포함된 열을 제거하거나 이러한 열에 대해 데이터 형식이 아닌Any 형식을 설정합니다.
  • 관련된 데이터 원본의 개인 정보 수준을 버퍼링하지 않고 결합할 수 있는 데이터 원본으로 변경합니다.
  • 병합을 수행하기 전에 테이블을 평면화하여 중첩된 구조화된 값(예: 테이블, 레코드 또는 목록)이 포함된 열을 제거합니다.