Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
글 전체 보기이 글의 목적은 엑셀 차트에서 항목 축 또는 계열 데이터에 빈 셀이 포함될 때 발생하는 잘못된 표시, 누락, 0값 처리, 불연속 연결 등의 문제를 체계적으로 진단하고, 실제 현장에서 바로 적용 가능한 설정 변경, 수식, 동적 범위, 보조열, VBA 등 다층적 해결책을 제시하는 것이다.
차트 범위 안에 빈 셀이 존재하면 엑셀이 이를 여러 방식으로 해석하여 시각화 오류가 발생한다. 대표 증상은 다음과 같다.
| 점검 항목 | 의미 | 권장 조치 |
|---|---|---|
| 빈 셀 유형 | 빈 셀, 빈 문자열(""), 공백 포함 텍스트, 숫자 0, 오류 | ISTEXT, ISNUMBER, LEN, TYPE로 분류한다. |
| 축 유형 | 텍스트 축 vs 날짜 축 | 날짜 축이면 비어 있는 날짜가 생성될 수 있다. |
| 계열 옵션 | 숨겨진/빈 셀 표시 방식 | 갭·0·데이터 연결 중 목적에 맞게 선택한다. |
| 원본 범위 | 필터, 숨김, 부분합, 동적 범위 | 필터/숨김 포함 여부와 동적 배열 사용을 검토한다. |
| 데이터 품질 | 앞뒤 공백, 비가시 문자, 혼합 형식 | TRIM, CLEAN, VALUE 등으로 정규화한다. |
가장 먼저 시도할 수 있는 방법은 차트 자체의 빈 셀 표시 정책을 바꾸는 것이다.
계열 값에서 빈 셀을 시각적으로 배제하고 싶다면 #N/A를 사용한다. 엑셀 차트는 #N/A를 점으로 그리지 않는다.
=IF(A2="","",A2) ' 차트에 빈 문자열은 경우에 따라 0처럼 보일 수 있다 =IF(A2="",NA(),A2) ' 빈 셀은 #N/A로 반환하여 차트에서 점을 그리지 않게 한다 =IF(LEN(A2)=0,NA(),A2) ' LEN 기준으로 빈 문자열까지 포착한다 범주 레이블을 유지하면서 값만 배제하려면 값 열에만 NA() 처리를 적용한다.
수식 결과로 ""를 반환하면 셀은 비어 보이지만 실질적으로 텍스트로 취급되어 일부 차트에서 0 또는 값으로 간주될 수 있다. 엄정한 배제를 원하면 NA()를, 시각적 공백만 원하면 갭 처리를 선택한다.
' 잘못된 예: "" 반환은 차트에서 혼란을 만든다 =IF(측정값이없음,"",측정값)
' 권장 예: 차트 배제
=IF(측정값이없음,NA(),측정값)
범주가 날짜인 꺾은선차트는 기본적으로 날짜 축을 사용한다. 이 경우 실제 없는 날짜까지 생성되어 빈 구간이 길어지거나 빈 값이 0처럼 해석되는 착시가 생긴다.
동적 배열을 지원하는 버전에서는 FILTER로 빈 값을 제외한 정제 범위를 만들고, 그 범위를 차트에 연결한다.
' A2:A는 범주, B2:B는 값이라고 가정 ' 1) 행 필터링 키 생성 =LET(rA,A2:A1000,rB,B2:B1000,FILTER(HSTACK(rA,rB),rB<>""))
' 2) 범주와 값 각각 생성
=LET(rA,A2:A1000,rB,B2:B1000,FILTER(rA,rB<>""))
=LET(rA,A2:A1000,rB,B2:B1000,FILTER(rB,rB<>""))
동적 배열이 없는 환경에서는 정의 이름과 INDEX/SMALL/IF 조합으로 빈 값을 제거한 압축 범위를 구성한다.
' 정의 이름 cat_rng =INDEX($A$2:$A$1000,SMALL(IF($B$2:$B$1000<>"",ROW($B$2:$B$1000)-ROW($B$2)+1),ROW(INDIRECT("1:"&COUNTIF($B$2:$B$1000,"<>")))))
' 정의 이름 val_rng
=INDEX($B$2:$B$1000,SMALL(IF($B$2:$B$1000<>"",ROW($B$2:$B$1000)-ROW($B$2)+1),ROW(INDIRECT("1:"&COUNTIF($B$2:$B$1000,"<>")))))
현장에서는 비가시 공백, BOM, 줄바꿈 등 비정규 문자가 빈 셀처럼 보이게 한다. 보조열을 만들어 정규화 후 차트는 보조열을 참조한다.
' 공백/비가시 문자 정리 + 숫자 강제 변환 =LET(x,TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," "))),IFERROR(VALUE(x),x))
' 값 열 빈 처리 일관화
=IF(OR(LEN(B2)=0,TRIM(B2)=""),NA(),B2)
피벗 기반이면 값 필드 설정과 레이블 필터로 빈 항목을 제거한다.
실무에서는 결측을 0으로 가정, 직선 보간, 최근값 유지 등 규칙을 문서화해야 한다. 각 방법을 보조열로 구현하고 차트는 선택된 규칙만 참조한다.
| 전략 | 수식 예시 | 장점 | 주의사항 |
|---|---|---|---|
| 0 대치 | | 간단하다 | 실제로 0이 아님에도 추세 왜곡이다 |
| 직선 보간 | | 연속성 확보하다 | 결측 구간이 길면 신뢰도 저하이다 |
| 최근값 유지 | | 실적 유지형 지표에 유리하다 | 급변을 숨길 수 있다 |
| 완전 배제 | | 허위 신호 차단하다 | 연속성 단절을 감수한다 |
필터로 숨긴 행이 차트에 남는 경우가 있다. 다음을 점검한다.
범주 레이블 자체에 빈 셀이 끼어 어색한 간격이 생기면 레이블만 별도 보조열로 압축한다.
' 레이블 압축(값이 있는 행만 유지) =LET(lbl,$A$2:$A$1000,val,$B$2:$B$1000,FILTER(lbl,val<>"")) 값은 NA()로 단절 처리하고 레이블은 압축된 배열을 사용하면 간격과 단절 모두 제어 가능하다.
시간 간격이 불균등하고 결측이 잦다면 범주 축 기반 꺾은선 대신 산점도를 고려한다. X에 실제 일련번호(또는 날짜 시리얼), Y에 값, 결측은 NA()로 처리한다. 산점도는 X값에 따라 점이 배치되어 공백 구간이 자연스럽게 표현된다.
대용량 데이터에서 다수의 빈 값 유형이 섞여 있으면 Power Query에서 null, 빈 문자열, 공백만 있는 텍스트를 일괄 정리한다.
' 빈 값 유형 판정 =IF(LEN(A2)=0,"BLANK",IF(AND(ISTEXT(A2),LEN(TRIM(A2))=0),"SPACE-ONLY", IF(ISNUMBER(A2),"NUMBER","TEXT")))
' 0과 NULL 구분 집계
=SUMPRODUCT(--(LEN(B2:B1000)=0)) ' NULL 또는 "" 개수
=COUNTIF(B2:B1000,0) ' 숫자 0 개수
' 비정규 문자 제거
=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," ")))
' 차트용 값 확정
=IF(LEN(B2)=0,NA(),VALUE(B2))
분기마다 동일한 정제 작업을 반복한다면 VBA로 보조열을 생성하거나 빈 값을 NA()로 대치할 수 있다.
Sub PrepareSeriesForChart() Dim rng As Range, c As Range Set rng = Range("B2", Cells(Rows.Count, "B").End(xlUp)) For Each c In rng If Len(c.Value) = 0 Or Trim(c.Value) = "" Then c.Value = CVErr(xlErrNA) End If Next c End Sub =IF(LEN(B2)=0,NA(),B2) → 차트 빈 셀=간격이다.값 열에서 =IF(LEN(B2)=0,NA(),B2)를 사용하고, 차트에서 빈 셀은 “간격”으로 두거나 “데이터 요소 연결”을 켠다.
축 서식에서 텍스트 축으로 바꾸면 존재하는 날짜만 표시한다. 시간 간격 보존이 필요하면 날짜 축을 유지하고 값은 NA()로 처리한다.
차트의 “숨겨진 및 빈 셀 설정”에서 “숨겨진 행과 열의 데이터 표시” 체크를 해제한다. 테이블 기반 범위를 사용하면 동기화가 안정적이다.
=IF(LEN(B2)=0,NA(),B2)처럼 LEN 기준으로 판별하면 ""까지 포착 가능하다.
“데이터 요소 연결”은 시각적 연결일 뿐 수치 보간을 계산하진 않는다. 계산이 필요하면 보조열에서 FORECAST.LINEAR 등으로 값을 산출한 뒤 차트는 그 보조열을 참조한다.
가능하다. 정의 이름에 INDEX/SMALL/IF 조합을 사용한다. 배열 수식이므로 Ctrl+Shift+Enter가 필요하다.