엑셀 Power Query DataFormat.Error 해결: 날짜·숫자 로캘 변환 방법

Excel Power Query에서 날짜나 금액 열의 데이터 형식을 변경했을 때 다음과 같은 오류가 나타날 수 있습니다.

DataFormat.Error:
제공된 입력을 Date 값으로 구문 분석할 수 없습니다.

예를 들어 원본 데이터에는 12/31/2026처럼 정상적인 날짜가 들어 있는데 Power Query에서는 오류로 표시될 수 있습니다. 미국식 월/일/연도 데이터를 다른 지역 형식으로 해석하면 31을 월로 판단할 수 없기 때문입니다.

하지만 모든 DataFormat.Error가 로캘 문제인 것은 아닙니다. 원본 셀의 #N/A 오류, 숫자 열에 섞인 문자, 서로 다른 날짜 형식이 한 열에 섞인 경우에도 같은 오류 종류가 표시될 수 있습니다. 따라서 먼저 오류의 세부 내용을 확인해야 합니다.

서로 다른 지역 형식의 날짜와 숫자를 Power Query로 변환하는 개념 이미지
같은 숫자와 날짜 문자열도 원본 국가의 형식에 따라 의미가 달라질 수 있으므로 데이터가 작성된 지역에 맞는 로캘로 변환해야 합니다.

이 글은 Microsoft의 Power Query 로캘 설정, 데이터 형식과 오류 처리 공식 문서를 기준으로 작성했습니다. 예제의 표 이름과 열 이름은 실제 파일에 맞게 변경해야 합니다.

오류 셀을 눌러 Reason·Message·Detail 확인

Power Query 화면에서 Error라고 표시된 셀을 선택하면 아래쪽에 오류의 이유와 문제가 된 값이 표시됩니다.

세부 정보에서 다음 내용을 확인하세요.

날짜를 구문 분석할 수 없다는 메시지
원본 날짜 형식과 현재 적용된 로캘이 다른지 확인합니다.
숫자로 변환할 수 없다는 메시지
쉼표와 마침표의 역할이 다른 국가 형식인지, 문자나 통화 기호가 섞였는지 확인합니다.
Invalid cell value '#N/A' 또는 '#REF!'
Power Query의 로캘보다 원본 Excel 셀에 들어 있는 오류값을 먼저 처리해야 합니다.
특정 행만 오류로 표시됨
해당 열 안에 날짜, 문자, 빈 문자열과 다른 국가 형식이 섞여 있는지 확인합니다.

오류 열을 선택한 뒤 오류 유지 기능을 사용하면 정상 행을 잠시 제외하고 문제가 있는 행만 확인할 수 있습니다. 원본을 수정하기 전에는 오류 행의 값과 행 번호를 별도로 기록해 두는 것이 좋습니다.

날짜 모양이 아니라 원본의 작성 규칙을 확인하세요

날짜가 01/02/2026처럼 표시돼 있다면 화면만 보고 날짜를 확정할 수 없습니다.

원본 형식 01/02/2026의 의미 사용할 수 있는 로캘 예
월/일/연도 2026년 1월 2일 English (United States)
일/월/연도 2026년 2월 1일 English (United Kingdom)
연도-월-일 해당 문자열과 형식이 맞지 않음 원본 형식을 다시 확인

파일을 만든 국가, 원본 시스템의 내보내기 설정 또는 날짜가 확실한 다른 행을 확인하세요. 예를 들어 12/31/2026이 있다면 월/일/연도 형식이라는 사실을 확인할 수 있습니다.

가장 쉬운 해결법: 로캘을 사용하여 형식 변경

한 열의 날짜 형식이 모두 같은 국가 규칙으로 작성됐다면 Power Query 메뉴에서 해당 열에 로캘을 직접 지정할 수 있습니다.

  1. Power Query 편집기에서 문제가 발생한 날짜 열을 선택합니다.
  2. 열 제목을 마우스 오른쪽 버튼으로 선택합니다.
  3. 형식 변경 → 로캘 사용을 선택합니다.
  4. 데이터 형식에서 날짜를 선택합니다.
  5. 로캘에서 원본 데이터가 작성된 국가를 선택합니다.
  6. 확인을 누릅니다.

미국식 MM/DD/YYYY 데이터라면 English (United States)를 선택할 수 있습니다. 영국식 DD/MM/YYYY 데이터라면 English (United Kingdom)을 선택할 수 있습니다.

출력 화면의 날짜 모양과 해석 규칙은 다릅니다
로캘은 텍스트를 어떤 날짜로 읽을지 정하는 기준입니다. 변환된 날짜가 워크시트에 표시되는 모양은 Excel 셀 서식이나 사용자의 지역 설정에 따라 달라질 수 있습니다.

자동으로 생성된 ‘변경된 유형’ 단계 확인

Excel·CSV·텍스트 파일처럼 열 형식이 고정되지 않은 원본을 가져오면 Power Query가 데이터 일부를 확인해 변경된 유형 단계를 자동으로 추가할 수 있습니다.

오류가 발생한 쿼리의 오른쪽 적용된 단계에서 변경된 유형 또는 Changed Type을 선택하세요.

해당 단계부터 오류가 시작된다면 다음 중 하나를 선택합니다.

  • 단계 옆의 톱니바퀴에서 올바른 로캘로 다시 지정
  • 기존 변경된 유형 단계를 삭제하고 로캘을 사용해 다시 변환
  • 정리 작업이 끝난 뒤 마지막 단계에서 데이터 형식 지정

무조건 자동 형식 검색을 끄는 것보다, 어떤 열이 어떤 형식이어야 하는지 확인한 뒤 필요한 열에 명시적으로 형식을 지정하는 것이 중요합니다.

M 코드에서 로캘을 명시하는 방법

메뉴에서 로캘을 지정하면 Power Query는 내부적으로 Table.TransformColumnTypes 단계에 문화권 정보를 추가할 수 있습니다.

아래 예제는 현재 통합 문서의 SalesData 표에서 수출일자 열을 미국식 날짜로 해석합니다.

let
    Source =
        Excel.CurrentWorkbook()
        {[Name="SalesData"]}[Content],

    ChangedType =
        Table.TransformColumnTypes(
            Source,
            {
                {"수출일자", type date}
            },
            "en-US"
        )
in
    ChangedType

코드에서 직접 확인할 부분은 세 가지입니다.

  • SalesData: Excel에 실제로 만들어진 표 이름
  • 수출일자: 실제 날짜 열 이름
  • en-US: 원본 날짜가 작성된 문화권

미국식이 아니라 영국식 날짜라면 en-USen-GB로 변경할 수 있습니다.

날짜 형식이 정확히 정해져 있다면 Date.FromText 사용

원본 날짜가 항상 MM/dd/yyyy처럼 일정한 텍스트라면 변환 형식과 문화권을 함께 지정할 수 있습니다.

let
    Source =
        Excel.CurrentWorkbook()
        {[Name="SalesData"]}[Content],

    AddedDate =
        Table.AddColumn(
            Source,
            "변환일자",
            each
                try
                    Date.FromText(
                        Text.Trim(
                            Text.From([수출일자])
                        ),
                        [
                            Format = "MM/dd/yyyy",
                            Culture = "en-US"
                        ]
                    )
                otherwise
                    null,
            type date
        )
in
    AddedDate

이 코드는 원본의 수출일자 열을 그대로 두고 변환일자라는 새 열을 만듭니다. 변환할 수 없는 값은 null로 기록합니다.

오류를 null로 바꾸기 전에 확인하세요
try ... otherwise null은 새로 고침을 계속 진행하게 만들지만 잘못된 원본 값을 자동으로 고쳐주지는 않습니다. 변환되지 않은 행의 개수와 원본 값을 별도로 확인해야 합니다.

숫자의 쉼표와 마침표가 반대인 경우

날짜뿐 아니라 숫자도 지역에 따라 구분 기호의 의미가 다릅니다.

  • 1,234.56: 일부 지역에서는 1천234.56
  • 1.234,56: 일부 유럽 지역에서는 1천234.56

숫자 모양을 맞추기 위해 쉼표와 마침표를 무조건 찾아 바꾸면 값이 달라질 수 있습니다. 원본 데이터의 국가 형식에 맞는 로캘을 사용하세요.

아래 예제는 독일식 숫자 텍스트가 들어 있는 금액 열을 숫자로 변환합니다.

let
    Source =
        Excel.CurrentWorkbook()
        {[Name="SalesData"]}[Content],

    AddedAmount =
        Table.AddColumn(
            Source,
            "변환금액",
            each
                try
                    Number.FromText(
                        Text.Trim(
                            Text.From([금액])
                        ),
                        "de-DE"
                    )
                otherwise
                    null,
            type number
        )
in
    AddedAmount

금액에 통화 기호, 글자 또는 보이지 않는 공백이 포함돼 있으면 로캘을 지정해도 변환되지 않을 수 있습니다. 이 경우 원본 값과 오류 세부 정보를 확인한 뒤 필요한 문자만 제거해야 합니다.

한 열에 미국식과 영국식 날짜가 섞여 있는 경우

하나의 열에 서로 다른 국가 날짜가 섞여 있다면 열 전체에 하나의 로캘만 지정해서는 정확하게 변환할 수 없습니다.

특히 01/02/2026처럼 두 방식 모두 유효한 값은 오류가 발생하지 않으면서 잘못된 날짜로 저장될 수 있습니다.

가장 안전한 방법은 원본 국가나 시스템을 구분하는 열을 사용해 각 행에 다른 형식을 적용하는 것입니다.

다음 예제는 원본국가 열에 US 또는 UK가 있다고 가정합니다.

let
    Source =
        Excel.CurrentWorkbook()
        {[Name="SalesData"]}[Content],

    AddedDate =
        Table.AddColumn(
            Source,
            "변환일자",
            each
                let
                    DateText =
                        Text.Trim(
                            Text.From([수출일자])
                        )
                in
                    if [원본국가] = "US" then
                        try
                            Date.FromText(
                                DateText,
                                [
                                    Format = "MM/dd/yyyy",
                                    Culture = "en-US"
                                ]
                            )
                        otherwise
                            null

                    else if [원본국가] = "UK" then
                        try
                            Date.FromText(
                                DateText,
                                [
                                    Format = "dd/MM/yyyy",
                                    Culture = "en-GB"
                                ]
                            )
                        otherwise
                            null

                    else
                        null,
            type date
        )
in
    AddedDate

원본 국가를 구분할 정보가 없다면 Power Query가 모호한 날짜의 실제 의미를 자동으로 알아낼 수 없습니다. 파일 제공자에게 날짜 형식을 확인하거나 원본을 연도-월-일 같은 일관된 형식으로 다시 받아야 합니다.

Invalid cell value '#N/A'는 로캘 문제가 아닙니다

오류 세부 정보가 다음과 같다면 원본 Excel 셀의 오류값을 가져온 경우입니다.

DataFormat.Error:
Invalid cell value '#N/A'.

이 경우 로캘을 변경해도 #N/A는 날짜나 숫자로 변환되지 않습니다.

다음 순서로 처리하세요.

  1. 오류 세부 정보에서 실제 오류값을 확인합니다.
  2. 가능하면 원본 Excel 파일의 수식 오류를 먼저 수정합니다.
  3. 오류가 의미하는 업무 상태를 확인합니다.
  4. 필요한 경우에만 Power Query에서 오류를 null이나 지정값으로 바꿉니다.

원본에서 정상적으로 계산돼야 하는 값을 무조건 0으로 바꾸면 실제 매출이나 수량이 0인 행과 수식 오류가 발생한 행을 구분할 수 없게 됩니다.

통합 문서 전체의 기본 로캘을 바꿔야 하는 경우

한두 개 열만 다른 국가 형식이라면 해당 열에 로캘을 사용하여 형식 변경을 적용하는 것이 좋습니다.

반대로 통합 문서의 여러 쿼리가 모두 같은 외국 시스템에서 생성된 데이터만 가져온다면 현재 통합 문서의 기본 로캘을 설정할 수 있습니다.

  1. Excel에서 데이터 탭을 선택합니다.
  2. 데이터 가져오기 → 쿼리 옵션을 선택합니다.
  3. 현재 통합 문서 → 국가별 설정을 선택합니다.
  4. 원본 데이터에 맞는 로캘을 선택합니다.
  5. 확인을 누르고 쿼리를 다시 새로 고칩니다.

Power Query에서 로캘이 충돌하면 적용 우선순위는 다음과 같습니다.

로캘 적용 우선순위

1. 개별 형식 변경 단계에서 지정한 로캘
2. 현재 Power Query 통합 문서의 로캘
3. 운영체제의 지역 설정

일부 열만 미국식이고 나머지는 한국식이라면 통합 문서 전체 설정을 변경하기보다 문제가 있는 열에만 로캘을 지정하세요.

오류를 수정한 뒤 확인할 데이터

오류 표시가 사라졌다는 사실만 확인하면 모호한 날짜가 잘못 변환된 것을 놓칠 수 있습니다.

월과 일이 모두 12 이하인 날짜
01/02/2026, 03/04/2026처럼 두 가지로 해석될 수 있는 값을 확인합니다.
월말과 연말 날짜
30일·31일과 12월 날짜가 정확하게 변환됐는지 확인합니다.
소수점이 포함된 금액
원본의 1.234,56이 1234.56으로 변환됐는지 확인합니다.
null로 바뀐 행
오류를 null로 처리했다면 누락된 행 수와 원본 값을 따로 확인합니다.

변환된 날짜의 최소값과 최대값, 월별 행 개수와 금액 합계를 원본 자료와 비교하면 잘못된 로캘 적용을 찾는 데 도움이 됩니다.

현재 오류에 맞는 해결 방법 선택

한 열이 모두 미국식 날짜임
날짜 형식을 English (United States) 로캘로 변경합니다.
한 열이 모두 영국식 날짜임
날짜 형식을 English (United Kingdom) 로캘로 변경합니다.
유럽식 숫자 구분 기호가 사용됨
해당 국가의 로캘을 지정하거나 Number.FromText의 culture를 사용합니다.
여러 국가의 날짜가 한 열에 섞임
원본 국가 열을 기준으로 변환하거나 원본 파일을 형식별로 분리합니다.
Invalid cell value '#N/A'가 표시됨
로캘이 아니라 원본 Excel 셀의 오류값을 수정합니다.

내용 확인에 사용한 Microsoft 공식 자료

공식 문서 확인일: 2026년 7월 28일

Post a Comment

다음 이전