Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기이 글의 목적은 엑셀에서 외부 데이터 연결이 실패하거나 새로 고침이 되지 않을 때, 현장에서 즉시 적용 가능한 진단 절차와 설정값, 점검 체크리스트, 복구 노하우를 체계적으로 제공하는 것이다.
데이터 연결 문제는 원인 범위가 넓기 때문에 첫 단계에서 증상을 유형별로 구분하여 해결 시간을 단축해야 한다.
| 증상 | 주요 트리거 | 대표 로그/메시지 |
|---|---|---|
| Power Query 새로 고침 실패 | 자격 증명 변경, 프라이버시 수준 충돌, 게이트웨이/프록시, 스키마 변경 | “자격 증명 필요”, “개인정보 수준 충돌”, “열을 찾을 수 없음” |
| ODBC/OLE DB 연결 실패 | 드라이버 비호환(32/64비트), TLS/포트 차단, DSN 손상 | “데이터 원본에 연결할 수 없습니다” “서버에 연결할 수 없습니다” |
| 웹/SharePoint/OneDrive 소스 오류 | URL 리디렉션, 인증 방식 변경, 만료 토큰 | “웹 콘텐츠에 액세스할 수 없습니다” “권한 없음(401/403)” |
| 외부 통합문서 링크 값 불러오기 실패 | 파일 경로 변경, 상대경로/UNC 혼용, 보호된 보기 | “외부 링크를 업데이트할 수 없습니다” |
서로 다른 프라이버시 수준의 소스 결합 시 결합이 차단되거나 성능 저하가 발생한다. 동일 보안 영역끼리 묶고, 불가피할 때는 목적에 맞게 프라이버시 수준을 통일한다.
| 구분 | 설정 예 | 권장 사례 |
|---|---|---|
| 개인 | 로컬 파일, 데스크톱 경로 | 사내 결합 불가. 업무 데이터와 분리하다. |
| 조직 | 사내 DB, SharePoint, OneDrive for Business | 사내 소스 결합 기본값으로 사용하다. |
| 공용 | 공개 웹 데이터 | 사내 데이터와 결합 시 주의하다. |
소스 열명·형식이 바뀌면 “열을 찾을 수 없음” 오류가 난다. 방어적 쿼리 패턴으로 변경에 견고하게 만든다.
// 예: 열 이름이 바뀌어도 존재 시만 변환 적용 let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], Cols = Table.ColumnNames(Source), Step1 = if List.Contains(Cols, "Amount") then Table.TransformColumnTypes(Source, {{"Amount", type number}}) else Source, Step2 = if List.Contains(Cols, "Date") then Table.TransformColumnTypes(Step1, {{"Date", type date}}) else Step1 in Step2 팀 공유에서는 UNC 경로(예: \\Server\Share\...)를 사용하여 드라이브 문자 의존을 제거한다. 버전 관리에는 SharePoint/OneDrive Business 동기화를 우선한다.
# 상대경로 예시: .pbix와 .xlsx 구조 동일 시 .\Data\Sales_2025.csv Z: 등)은 사용자·서버 재로그인 시 달라질 수 있다. UNC로 표준화하는 것이 안전하다.DB 포트와 TLS 정책 차이로 실패하는 경우가 많다. 다음을 점검한다.
| 데이터베이스 | 기본 포트 | 점검 포인트 |
|---|---|---|
| SQL Server | 1433 | 명명된 인스턴스·동적 포트, 암호화 강제 |
| MySQL/MariaDB | 3306 | TLS 버전, 서버 인증서 체인 |
| Oracle | 1521 | 서비스명/SID, EZCONNECT 허용 |
| PostgreSQL | 5432 | pg_hba 정책, SSL 모드 |
REM 네트워크 기본 점검 ping db.company.local nslookup db.company.local powershell Test-NetConnection db.company.local -Port 1433 Provider=SQLOLEDB;Data Source=SERVER,1433;Initial Catalog=DB; Integrated Security=SSPI;Encrypt=True;TrustServerCertificate=False; Encrypt·TrustServerCertificate 조합은 서버 인증서 상태에 맞춰 조정한다. 불필요한 Trusted_Connection 중복은 제거한다.
링크가 리디렉션되면 새로 고침에 실패한다. Power Query의 웹 컨텐츠 단계에서 최종 URL을 확인하고 고정한다.
보호된 보기에서 외부 링크는 차단된다. 편집 사용 후 계산 옵션이 자동인지 확인한다.
서버·DB·경로는 별도 매개변수 쿼리 및 환경 테이블로 관리하여 이관 시 수정 범위를 최소화한다.
// 매개변수 예시 let Server = Excel.CurrentWorkbook(){[Name="Env"]}[Content]{0}[Server], DB = Excel.CurrentWorkbook(){[Name="Env"]}[Content]{0}[DB], Source = Sql.Database(Server, DB) in Source 새로 고침 직후 오류 메시지를 캡처하는 로깅 시트를 두면 재현과 보고가 쉬워진다.
' 간단 VBA: 모든 쿼리 새로 고침 + 완료 대기 Sub RefreshAllQueries() Application.CalculateFull ThisWorkbook.RefreshAll DoEvents Dim qt As QueryTable For Each qt In ActiveSheet.QueryTables Debug.Print qt.ResultRange.Address Next qt End Sub | 항목 | 예시 값 | 비고 |
|---|---|---|
| Server | sqlprod01.company.local | 프로덕션 |
| DB | SalesDW | DW |
| ShareRoot | \\filesrv\team | UNC |
| Mode | Prod | Dev/Prod 구분 |
프로젝트/파일: 증상: 소스 유형/경로: 마지막 정상 일시: 변경 내역(DB 스키마/파일/권한): 재현 절차: 스크린샷/로그: 요청 조치: | 환경 | 특이점 | 대응 |
|---|---|---|
| 프록시 필수 | 웹 커넥터 인증 루프 | 프록시 예외에 소스 도메인 추가 |
| VDI/원격 | 드라이브 문자 상이 | UNC 고정, 사용자 프로필 경로 지양 |
| 망분리 | 외부 웹 차단 | 내부 미러·파일 스테이징 |
param( [string]$HostName = "db.company.local", [int]$Port = 1433 ) Test-NetConnection $HostName -Port $Port | Format-List Sub RefreshWithLog() Dim c As WorkbookConnection For Each c In ThisWorkbook.Connections On Error Resume Next c.Refresh Debug.Print Now & " - " & c.Name & " - " & c.OLEDBConnection.Connection On Error GoTo 0 Next c End Sub 업무 데이터와 공개 데이터를 결합할 필요가 없으면 소스별 수준을 “조직”으로 통일하여 해결하는 것을 권장한다. 전역 비활성화는 데이터 유출 위험을 키우므로 피한다.
링크를 Power Query로 흡수하여 단일 새로 고침 파이프라인으로 통합하고, 값만 복제하는 스냅샷 시트를 두어 계산 부담을 줄이는 것이 효과적이다.
비트 수 불일치, 레거시 DSN 존재, TLS/인증서 스토어 차이를 확인한다. 가능한 DSN 없는 연결로 통일한다.
문서 라이브러리의 서버 상대 경로 또는 파일 ID 기반 URL을 사용하고, 최종 리디렉션 URL을 쿼리에 고정한다.
초기 단계에서 열 서브셋을 확정하지 말고, 존재 확인 후 형변환·이름변경을 조건부로 적용하는 패턴을 사용한다.