엑셀 Power Query 편집기에서는 데이터가 정상적으로 보이지만 닫기 및 로드를 선택하거나 쿼리를 새로 고칠 때 오류가 발생할 수 있습니다.
이 문제는 데이터 형식 하나만 바꾸면 항상 해결되는 오류가 아닙니다. 원본 파일에 접근하지 못하는 경우, 적용된 단계가 존재하지 않는 열을 참조하는 경우, 전체 데이터의 일부 행에서 변환 오류가 발생한 경우와 출력할 워크시트의 한도를 넘은 경우를 구분해야 합니다.
1. 원본 접근: 파일·폴더·권한·원본 이름 문제
2. 쿼리 평가: 열 이름·형식 변환·계산·오류 행 문제
3. 결과 로드: 워크시트·데이터 모델·연결 위치 문제
오류를 해결하려면 먼저 어느 구간에서 실패했는지 확인해야 합니다. 원본 파일을 찾지 못하는 상태에서 형식 변환 단계만 수정하거나, 잘못된 데이터가 있는데 로드 위치만 바꾸면 원인은 그대로 남습니다.
이 글은 Microsoft의 Power Query 데이터 원본 오류, 데이터 프로파일링, 쿼리 로드, 오류 처리와 Power Query M 함수 공식 문서를 기준으로 작성했습니다. 예제의 테이블명과 열 이름은 실제 쿼리 구조에 맞게 변경해야 합니다.
![]() |
| Power Query 편집기에서 미리 보기가 정상이어도 전체 데이터의 오류 행, 형식 변환 단계 또는 워크시트·데이터 모델 출력 조건에서 로드가 실패할 수 있습니다. 위 이미지는 오류 발생 위치를 구분하기 위한 대표 개념 이미지입니다. |
편집기에서는 정상인데 로드할 때 실패하는 이유
Power Query 편집기의 화면은 전체 데이터에 대한 최종 결과를 항상 한눈에 보여주는 검증 화면이 아닙니다.
특히 열 품질, 열 분포와 열 프로필은 기본적으로 처음 1,000개 행을 기준으로 계산합니다. 오류 값이 1,001번째 이후에 있다면 앞부분의 프로필에서는 정상으로 보일 수 있습니다.
편집기 왼쪽 아래에 다음과 비슷한 문구가 표시되는지 확인합니다.
일부 데이터만 기준으로 열 품질과 분포를 계산합니다.
전체 행을 기준으로 확인해야 한다면 해당 문구를 선택하고 전체 데이터 세트를 기반으로 하는 열 프로파일링으로 변경합니다.
데이터 양과 원본 연결 방식에 따라 전체 프로파일링에는 추가 시간이 필요할 수 있습니다.
앞부분 데이터만 보고 형식이 모두 정상이라고 판단하지 않습니다.
전체 데이터 프로파일, 오류 행 유지와 적용된 단계를 함께 확인합니다.
쿼리 및 연결 창에서 실패한 쿼리부터 찾습니다
Excel에서 다음 경로를 엽니다.
쿼리가 여러 개라면 오류 메시지에 표시된 쿼리 이름과 쿼리 및 연결 창의 상태를 비교합니다.
다음 항목을 기록합니다.
- 실패한 쿼리 이름
- 표시된 전체 오류 문구
- 마지막 새로 고침 시각
- 로드 위치가 워크시트인지 데이터 모델인지
- 다른 쿼리에서 참조하는 기본 쿼리인지
한 쿼리의 오류가 이를 참조하는 여러 쿼리로 이어질 수 있습니다. 최종 결과 쿼리만 수정하지 말고 가장 먼저 실패한 원본 또는 중간 쿼리를 확인합니다.
적용된 단계를 위에서 아래로 확인합니다
오류가 표시된 쿼리를 우클릭해 편집을 선택한 다음 오른쪽의 적용된 단계를 확인합니다.
단계 이름을 위에서 아래로 하나씩 선택하면 어느 단계부터 오류가 발생하는지 확인할 수 있습니다.
| 오류가 시작되는 단계 | 주요 확인 대상 |
|---|---|
| 원본 | 파일 위치, 권한, 파일 손상, 테이블·시트 이름 |
| 탐색 | 원본에서 선택한 표·시트·개체가 아직 존재하는지 |
| 승격된 헤더 | 실제 첫 행이 열 머리글인지, 빈 행이 추가됐는지 |
| 변경된 유형 | 날짜·숫자·정수로 변환할 수 없는 값과 로캘 |
| 제거·선택·이름 변경된 열 | 원본에서 열이 삭제되거나 이름이 바뀌었는지 |
| 병합·확장 | 병합 키의 형식, 확장할 열 이름과 중복 열 이름 |
| 사용자 지정 열 | null, 오류 값, 0으로 나누기와 잘못된 함수 인수 |
이전 단계는 정상인데 특정 단계부터 오류가 발생한다면 원본 전체가 잘못된 것이 아니라 그 단계의 변환 조건과 현재 데이터가 맞지 않는 것입니다.
단계 전체 오류와 셀 수준 오류를 구분합니다
단계 전체가 오류인 경우
적용된 단계를 선택했을 때 데이터 표 대신 오류 화면만 표시된다면 해당 단계의 식을 평가하지 못한 상태입니다.
대표적인 원인은 다음과 같습니다.
- 존재하지 않는 열을 선택하거나 삭제함
- 삭제된 테이블 또는 시트를 원본으로 참조함
- 병합·확장 단계에서 존재하지 않는 열을 요청함
- M 수식의 함수명·괄호·인수가 잘못됨
- 개인 정보 수준 때문에 원본 결합이 차단됨
이 경우에는 오류 행 몇 개를 제거하는 방식이 아니라 오류가 시작된 적용 단계의 참조와 수식을 수정해야 합니다.
일부 셀만 Error인 경우
데이터 표는 표시되지만 특정 셀에 Error가 보인다면 셀 수준
오류입니다.
셀 수준 오류는 쿼리 로드를 항상 중단시키는 것은 아니며 결과에 Error 값으로 로드될 수 있습니다.
하지만 그 오류 열을 다음 단계에서 합계·그룹화·병합·형식 변환에 사용하면 이후 단계가 실패할 수 있으므로 오류 값을 그대로 방치해서는 안 됩니다.
오류가 있는 행만 남겨 원본 값을 확인합니다
Power Query 편집기에서 오류가 있는 열을 선택한 다음 다음 명령을 사용할 수 있습니다.
원본 쿼리에서 바로 오류 행을 제거하기 전에 쿼리를 복제하거나 참조해 진단용 쿼리를 만드는 편이 원래 결과를 보존하기 쉽습니다.
M 코드에서는 Table.SelectRowsWithErrors를 사용할 수 있습니다.
let
Source =
Excel.CurrentWorkbook(){[Name="tblOrders"]}[Content],
AddedSequence =
Table.AddIndexColumn(
Source,
"데이터순번",
1,
1,
Int64.Type
),
ChangedType =
Table.TransformColumnTypes(
AddedSequence,
{
{"주문일", type date},
{"수량", Int64.Type},
{"금액", type number}
},
"ko-KR"
),
ErrorRows =
Table.SelectRowsWithErrors(
ChangedType,
{
"주문일",
"수량",
"금액"
}
)
in
ErrorRows
이 코드는 다음 순서로 작동합니다.
- 현재 통합 문서의
tblOrders표를 읽습니다. - 각 데이터 행에 순번을 추가합니다.
- 주문일·수량·금액의 형식을 변환합니다.
- 세 열 중 하나 이상에 오류가 있는 행만 반환합니다.
데이터순번은 Power Query 안에서 행을 구분하기 위한 순번입니다.
실제 워크시트 행 번호와 반드시 같다고 가정하지 않습니다.
원본 표의 행 위치가 중요하다면 원본 단계에서 업무용 고유 ID나 주문번호를 함께 유지하는 편이 적절합니다.
오류가 발생하기 전에 인덱스 열을 추가합니다
오류가 발생한 뒤 인덱스를 추가하면 일부 변환이나 정렬 이후의 순서만 확인하게 됩니다.
원본 행을 추적하려면 오류가 발생할 가능성이 있는 형식 변환·필터·정렬 단계보다 앞에서 인덱스를 추가합니다.
AddedSequence =
Table.AddIndexColumn(
Source,
"데이터순번",
1,
1,
Int64.Type
)
인덱스는 오류 값을 자동으로 수정하지 않습니다. 어느 데이터 행을 원본에서 확인해야 하는지 찾기 위한 진단 열입니다.
try 식으로 오류 이유와 메시지를 분리합니다
셀에 Error만 표시되는 것보다 어떤 값이 왜 변환되지 않았는지 확인하려면 Power
Query M의 try 식을 사용할 수 있습니다.
다음 예제는 “금액” 값을 한국어 로캘 기준 숫자로 변환해 보고, 성공 여부와 오류 메시지를 별도 열로 펼칩니다.
let
Source =
Excel.CurrentWorkbook(){[Name="tblOrders"]}[Content],
AddedSequence =
Table.AddIndexColumn(
Source,
"데이터순번",
1,
1,
Int64.Type
),
CheckedAmount =
Table.AddColumn(
AddedSequence,
"금액검사",
each
try Number.FromText(
Text.From([금액]),
"ko-KR"
)
),
ExpandedCheck =
Table.ExpandRecordColumn(
CheckedAmount,
"금액검사",
{
"HasError",
"Value",
"Error"
},
{
"오류여부",
"변환된금액",
"오류정보"
}
),
ExpandedError =
Table.ExpandRecordColumn(
ExpandedCheck,
"오류정보",
{
"Reason",
"Message",
"Detail"
},
{
"오류이유",
"오류메시지",
"오류상세"
}
),
ErrorRows =
Table.SelectRows(
ExpandedError,
each [오류여부] = true
)
in
ErrorRows
결과에는 오류가 발생한 데이터 순번과 원래 금액 값, 오류 이유와 메시지가 표시됩니다.
예를 들어 금액 열에 다음과 같은 값이 섞여 있으면 숫자 변환에서 문제가 발생할 수 있습니다.
확인 중없음-- 통화 기호와 구분자가 원본 로캘과 맞지 않는 문자열
- Excel 원본에서 전달된 셀 오류
오류 메시지를 확인한 뒤 원본 값을 수정할지, 별도 상태값으로 분리할지, null로 처리할지를 결정합니다.
자동 생성된 변경된 유형 단계를 확인합니다
Excel·CSV 같은 비구조화 원본을 가져올 때 Power Query가 열 형식과 머리글을 자동으로 감지해 변경된 유형 단계를 만들 수 있습니다.
예를 들어 앞부분의 금액 값이 모두 숫자라면 금액 열을 숫자로 판단할 수 있습니다. 이후 행에 “미정” 같은 텍스트가 있으면 해당 행에서 변환 오류가 발생합니다.
Table.TransformColumnTypes(
Source,
{
{"주문일", type date},
{"수량", Int64.Type},
{"금액", type number}
},
"ko-KR"
)
각 열이 실제로 어떤 업무 값을 담는지 확인한 뒤 형식을 지정합니다.
| 데이터 의미 | 검토할 형식 |
|---|---|
| 주문번호·사번·우편번호 | 계산하지 않는 식별자라면 텍스트 |
| 실제 수량 | 정수 |
| 단가·금액·비율 | 소수 또는 고정 소수점 숫자 |
| 날짜만 필요함 | 날짜 |
| 날짜와 시각 모두 필요함 | 날짜/시간 |
우편번호나 상품코드처럼 앞의 0이 필요한 값은 숫자로 바꾸면 정보가 달라질 수 있으므로 식별자와 계산값을 구분해야 합니다.
날짜와 숫자의 지역 형식을 구분합니다
같은 문자열도 지역 형식에 따라 다르게 해석될 수 있습니다.
예를 들어 다음 값은 원본 지역에 따라 의미가 달라질 수 있습니다.
01/07/2026
1,234.56
1.234,56
열 머리글을 우클릭해 형식 변경 → 로캘 사용을 선택하거나 M 코드의 형식 변환에 실제 원본의 문화권을 지정합니다.
한국어 형식의 날짜와 숫자를 변환하는 기본 예입니다.
Table.TransformColumnTypes(
Source,
{
{"주문일", type date},
{"금액", type number}
},
"ko-KR"
)
미국식 원본이라면 원본 값의 실제 형식에 따라
en-US를 검토합니다.
날짜와 숫자 로캘 변환에서 발생하는 구체적인
DataFormat.Error는 관련 글에서 별도로 다룹니다.
원본 열 이름이 바뀌었는지 확인합니다
원본 파일에서 열 이름이 바뀌거나 열이 삭제되면 이후 단계가 이전 이름을 계속 참조해 오류가 발생할 수 있습니다.
예를 들어 다음 단계는 “매출액” 열이 존재한다는 전제에서 실행됩니다.
Table.TransformColumnTypes(
Source,
{
{"매출액", type number}
}
)
원본 열 이름이 “판매금액”으로 바뀌었다면 해당 단계를 평가할 수 없습니다.
다음 단계들을 함께 확인합니다.
- 변경된 유형
- 제거된 열
- 선택한 열
- 이름을 바꾼 열
- 열 순서 변경
- 병합 후 확장된 열
업무상 반드시 필요한 열이라면 누락을 오류로 표시하는 것이 적절합니다. 없어도 되는 선택 열이라면 해당 열의 존재 여부를 확인하는 동적 처리를 검토합니다.
원본 파일의 변경 내용을 저장했는지 확인합니다
Power Query가 다른 Excel 파일·CSV·텍스트 파일을 원본으로 사용할 때 원본 파일이 열려 있고 변경 내용이 저장되지 않았다면 최근 수정값이 새로고침에 반영되지 않을 수 있습니다.
파일이 다른 사용자나 프로그램에 의해 잠겨 있으면 원본에 접근하지 못할 수도 있습니다.
다음 순서로 확인합니다.
- 원본 파일의 변경 내용을 저장합니다.
- 원본을 사용하는 다른 사용자나 프로그램이 있는지 확인합니다.
- 필요한 경우 원본 파일을 닫습니다.
- 보고서 파일에서 다시 새로 고칩니다.
원본 파일이 이동하거나 이름이 바뀌었다면 저장 여부가 아니라 Power Query 원본 단계의 경로를 수정해야 합니다.
오류 값을 무조건 삭제하지 않습니다
Power Query에는 오류가 있는 행을 제거하거나 오류 값을 다른 값으로 바꾸는 기능이 있습니다.
하지만 오류 원인을 확인하기 전에 모든 오류 행을 삭제하면 실제 매출, 주문 또는 거래가 결과에서 조용히 빠질 수 있습니다.
필수 금액이 텍스트로 입력됨
필수 날짜가 잘못됨
주문번호와 거래번호가 누락됨
원본 수집 과정에서 셀 오류가 생김
선택 입력 항목이 비어 있음
업무 규칙상 미입력값을 null로 정의함
별도 오류 상태 열에 원인을 보존함
대체값의 의미가 명확하게 정해짐
오류를 null로 바꿀 수 있다고 판단한 경우에는 다음과 같이 특정 열의 오류만 바꿀 수 있습니다.
Table.ReplaceErrorValues(
ChangedType,
{
{"수량", null},
{"금액", null}
}
)
이 코드는 오류의 원인을 고치는 것이 아니라 지정한 열의 오류 값을 null로 대체합니다.
null이 합계·평균·병합과 보고서에서 어떤 의미로 처리되는지 확인한 뒤 사용해야 합니다.
오류 행 제거는 감사용 쿼리를 남긴 뒤 적용합니다
오류 행이 실제로 결과에서 제외돼야 하는 업무 규칙이라면
Table.RemoveRowsWithErrors를 사용할 수 있습니다.
Table.RemoveRowsWithErrors(
ChangedType,
{
"주문일",
"수량",
"금액"
}
)
오류 행을 삭제해도 외부 원본의 잘못된 값이 수정되는 것은 아닙니다.
어떤 행이 제외됐는지 확인할 수 있도록 오류 행 유지 쿼리를 별도로 남기거나 원본 고유 ID를 기록하는 편이 적절합니다.
결과 행 수가 워크시트 한도를 넘는지 확인합니다
Excel 워크시트 한 장에는 최대 1,048,576행을 사용할 수 있습니다.
쿼리 결과가 이 한도를 넘으면 모든 행을 한 워크시트 표에 로드할 수 없습니다. 열 머리글도 워크시트의 한 행을 사용하므로 실제 데이터 행 수를 함께 고려해야 합니다.
다음 방법을 검토합니다.
- 필요한 기간과 행만 원본 단계에서 필터링
- 불필요한 열을 제거해 결과 크기 축소
- 그룹화로 상세 행을 집계 결과로 변경
- 중간 쿼리를 연결 전용으로 설정
- 분석 목적에 맞으면 데이터 모델로 로드
데이터 모델은 워크시트보다 많은 행을 저장할 수 있지만 사용 가능한 메모리, 데이터의 고유 값 수와 파일 크기에 영향을 받습니다.
결과가 크다는 이유만으로 데이터 모델을 무조건 선택하지 말고 최종 분석에 상세 행 전체가 필요한지 먼저 판단합니다.
로드 위치를 다시 지정합니다
쿼리가 정상적으로 평가되지만 예상한 위치에 결과가 나타나지 않는다면 쿼리의 로드 설정을 확인합니다.
Excel에서 다음 순서로 확인합니다.
- 데이터 → 쿼리 및 연결을 엽니다.
- 확인할 쿼리를 우클릭합니다.
- 다음으로 로드를 선택합니다.
- 표, 피벗 테이블, 연결만 만들기 또는 데이터 모델 추가 여부를 확인합니다.
- 워크시트에 로드한다면 새 워크시트와 기존 워크시트 위치를 구분합니다.
중간 쿼리는 최종 표로 표시할 필요가 없다면 연결만 만들기로 관리할 수 있습니다.
최종 사용자가 확인해야 하는 결과 쿼리까지 연결 전용으로 바꾸면 워크시트에는 아무 결과도 나타나지 않으므로 쿼리의 역할을 구분해야 합니다.
쿼리 단계가 실패한 상태라면 워크시트에서 데이터 모델로 위치만 바꿔도 원래 오류는 남습니다.
먼저 쿼리 평가 오류를 해결한 뒤 결과 크기와 용도에 따라 로드 위치를 선택합니다.
다른 쿼리가 참조하는 중간 쿼리를 확인합니다
최종 결과 쿼리는 정상적인 M 코드처럼 보여도 그 앞에서 참조하는 기본 쿼리가 실패하면 함께 로드되지 않을 수 있습니다.
다음과 같은 구조를 가정합니다.
↓
원본정리 쿼리
↓
월별매출 쿼리
↓
보고서결과 쿼리
“보고서결과”에서 오류가 표시되더라도 실제 최초 오류는 “원본정리”의 변경된 유형 단계일 수 있습니다.
쿼리 및 연결 창과 Power Query 편집기의 쿼리 목록에서 참조 관계를 거꾸로 따라가며 가장 앞쪽의 실패 쿼리를 찾습니다.
여러 원본을 결합할 때 Formula.Firewall을 구분합니다
로컬 통합 문서, 웹, 데이터베이스처럼 서로 다른 원본을 한 쿼리에서 결합할 때 다음 오류가 표시될 수 있습니다.
쿼리가 다른 쿼리 또는 단계를 참조하므로 데이터 원본에 직접 액세스할 수 없다는 형태의 메시지
이 오류는 숫자나 날짜 형식 문제가 아니라 데이터 원본 사이의 개인 정보 수준과 쿼리 결합 구조에 관한 문제입니다.
오류를 없애기 위해 모든 원본의 개인 정보 보호를 무조건 무시하기보다 각 원본의 공개·조직·개인 수준과 쿼리 분리 구조를 확인해야 합니다.
편집기에서 정상인데 결과가 예전 값일 때
오류 메시지는 없지만 결과가 최신 값으로 바뀌지 않는다면 다음 항목을 확인합니다.
- 원본 파일의 변경 내용이 저장됐는지
- 새로 고친 쿼리가 실제 결과 쿼리인지
- 중간 쿼리만 새로 고치고 최종 쿼리를 갱신하지 않았는지
- 쿼리 속성에서 백그라운드 새로 고침이 진행 중인지
- 원본 경로가 이전 복사본을 가리키는지
- 필터 단계가 새로운 데이터를 제외하고 있는지
데이터가 바뀌지 않는 문제를 형식 오류로 처리하지 말고 새로 고침 상태, 원본 경로와 필터 조건을 분리해 확인합니다.
오류 메시지를 숨긴 상태로 로드하지 않습니다
오류를 없애기 위해 모든 변환에 try ... otherwise null을 넣으면
쿼리는 계속 실행될 수 있지만 잘못된 데이터가 어디서 사라졌는지 알기 어려워질
수 있습니다.
다음과 같은 코드는 변환 실패 값을 모두 null로 바꿉니다.
try Number.FromText([금액], "ko-KR")
otherwise null
금액이 필수 데이터라면 잘못된 금액을 null로 바꾸는 것은 오류 해결이 아니라 데이터 누락을 만드는 처리일 수 있습니다.
진단 단계에서는 HasError, 오류 이유와 메시지를 보존하고, 실제
업무 규칙이 정해진 뒤에만 null·대체값·행 제외 중 하나를 선택합니다.
증상별로 확인할 첫 번째 위치
| 증상 | 첫 확인 위치 | 다음 조치 |
|---|---|---|
| 원본 파일을 찾을 수 없음 | 원본 단계와 파일 경로 | 이동된 원본 위치·파일명 수정 |
| 열을 찾을 수 없음 | 최초 오류가 발생한 적용 단계 | 원본 열 이름과 단계 참조 수정 |
| 숫자·날짜로 변환할 수 없음 | 변경된 유형과 오류 행 | 원본 값·열 형식·로캘 확인 |
| 편집기 앞부분은 정상이나 로드 실패 | 전체 데이터 프로파일과 오류 유지 | 이후 행의 오류 값 식별 |
| 결과 행이 너무 많음 | 최종 행 수와 로드 위치 | 필터·집계·연결 전용·데이터 모델 검토 |
| Formula.Firewall | 데이터 원본 설정과 쿼리 결합 구조 | 개인 정보 수준과 쿼리 분리 확인 |
| 오류 없이 예전 값이 표시됨 | 원본 저장·새로 고침 상태·원본 경로 | 실제 최종 쿼리를 다시 새로 고침 |
닫기 및 로드 오류 최종 점검 순서
“로드 실패”만 기록하지 말고 상태 코드, 열 이름과 오류 설명을 확인합니다.
원본부터 마지막 단계까지 하나씩 선택해 처음 실패하는 단계를 찾습니다.
처음 1,000행 이후에 있는 잘못된 값을 확인합니다.
인덱스나 업무용 ID와 함께 오류 행을 남겨 원본 값을 찾습니다.
식별자·수량·금액·날짜의 업무 의미에 맞는 형식을 지정합니다.
삭제되거나 이름이 바뀐 열, 이동된 파일과 저장되지 않은 원본을 확인합니다.
원본 수정, null 대체, 오류 행 제외 중 업무상 적절한 방식을 선택합니다.
워크시트 한도와 최종 분석 목적에 맞게 표·연결·데이터 모델을 구분합니다.
내용 확인에 사용한 Microsoft 공식 자료
- Microsoft 지원: Power Query 데이터 원본 오류 처리
- Microsoft 지원: Power Query 데이터 프로파일링
- Microsoft 지원: Excel에서 쿼리 만들기·로드·편집
- Microsoft 지원: Power Query 쿼리 관리
- Microsoft 지원: 오류가 있는 행 제거 또는 유지
- Microsoft 지원: Excel 사양 및 워크시트 한도
- Microsoft Learn: Power Query 오류 처리와 try 식
- Microsoft Learn: Power Query M 오류
- Microsoft Learn: Table.SelectRowsWithErrors
- Microsoft Learn: Table.AddIndexColumn
- Microsoft Learn: Table.TransformColumnTypes
- Microsoft Learn: Number.FromText
- Microsoft Learn: Table.ReplaceErrorValues
- Microsoft Learn: Table.RemoveRowsWithErrors
공식 문서 확인일: 2026년 7월 29일

댓글 쓰기