본문 바로가기
카테고리 없음

좋은 데이터 표의 조건 7가지: 결측치·중복·코드값만 잡아도 분석이 쉬워집니다

by 데일리63 2026. 3. 4.

    [ 목차 ]

지난 1편에서 “RAW–CLEAN–DASH” 구조와 KPI 질문부터 잡는 흐름을 설명했죠.

그런데 실무에서 피벗테이블이 깨지거나, 숫자가 안 맞거나, 차트가 이상하게 튀는 이유는 대부분 표(원본 데이터)의 구조 문제입니다. 데이터 분석은 복잡한 함수보다 먼저 좋은 데이터 표를 만드는 일에서 성패가 갈립니다.

 

이번 2편에서는 제가 실무에서 반복적으로 점검하는 좋은 데이터 표의 조건 7가지를 정리합니다.

특히 애매하게 넘기기 쉬운 결측치(0 vs 공백), 중복, 코드값 표준화를 중심으로 “왜 문제인지”와 “어떻게 고치는지”를 같이 담았어요.

좋은 데이터 표의 조건 7가지: 결측치·중복·코드값만 잡아도 분석이 쉬워집니다
좋은 데이터 표의 조건 7가지: 결측치·중복·코드값만 잡아도 분석이 쉬워집니다

1) 헤더는 1행, 열 이름은 ‘고정된 단어’로 쓰기

분석에서 헤더는 단순한 제목이 아니라 데이터의 계약서예요. 헤더가 흔들리면 피벗 범위가 깨지고, 함수 참조가 어긋나고, 자동화가 멈춥니다.

 

실무에서 자주 터지는 사례

  • 이번 달엔 “매출”, 다음 달엔 “매출액”, 그 다음 달엔 “판매금액”
  • 헤더가 2줄이고 중간에 병합 셀이 들어가 있음
  • 열 이름에 날짜가 들어가 매달 헤더 자체가 변함(“2026-03 매출”)

해결 원칙

  • 헤더는 반드시 1행에 한 줄로
  • 열 이름은 고정(월이 바뀌어도 동일)
  • 단위는 가능하면 열 이름에 붙이기(예: 매출_원, 수량_개)

2) 병합 셀은 금지: 보기 좋음보다 “계산 가능함”이 우선

병합 셀은 사람 눈에는 보기 좋지만, 컴퓨터 입장에서는 “비정상 구조”에 가깝습니다.

필터/정렬/피벗에서 의도치 않은 결과가 나오고, 범위를 잡을 때 데이터가 누락되기도 해요.

 

대체 방법

  • 구역 제목이 필요하면 병합 대신 별도 열을 만들거나, 첫 행에 구역명 반복
  • 시각적 구분은 테두리/배경색으로 처리

3) “한 셀 = 한 의미” 규칙(혼합 데이터 분리)

분석이 쉬운 표는 원칙이 단순합니다.

하나의 셀에는 하나의 의미만 들어갑니다.

혼합 데이터는 나중에 분해하려면 비용이 큽니다.

 

자주 보는 혼합 예시

  • 날짜+시간이 한 열에 같이 있음(예: 2026-03-04 14:30)
  • 지역+지점이 같이 있음(예: 서울/강남)
  • 상품명에 옵션이 섞여 있음(예: 티셔츠-블랙-L)

해결 원칙

  • 날짜/시간은 필요에 따라 분리(집계 단위가 “일/월”이면 날짜만 남기는 게 유리)
  • 분류가 필요한 값은 열을 나눠 표준화(지역, 지점, 카테고리 등)

4) 결측치 처리: “0”과 “공백”은 완전히 다릅니다

실무에서 숫자가 안 맞는 가장 흔한 원인은 결측치 처리 방식이에요. 특히 0과 공백을 섞으면 집계가 왜곡됩니다.

 

0과 공백의 차이(실무 해석)

  • 0: 값이 존재하지만 결과가 0(예: 환불 금액 0원)
  • 공백: 값 자체가 없음/미입력/수집 실패(예: 결제금액 누락)

추천 처리 원칙

  • 결측이 “없음”인지 “미수집”인지 먼저 정의
  • 미수집은 공백 유지 + 결측 플래그 열 추가(예: is_missing = Y/N)
  • 집계에서 0이 필요한 경우에만 0으로 치환

제가 자주 쓰는 방식은 CLEAN 시트에 결측 여부를 표시하는 열을 하나 더 만드는 겁니다.

그러면 “값이 0인 건지, 누락된 건지”를 나중에 분리해서 볼 수 있어요. 보고서 신뢰도가 여기서 크게 올라갑니다.

5) 중복 데이터: “행 중복”이 아니라 “키 중복”을 봐야 합니다

중복은 단순히 같은 행이 반복되는 것만 의미하지 않습니다.

실무에서 더 위험한 건 식별자(키)가 중복되는 상황이에요.

예를 들어 주문번호가 중복되면 매출이 2배로 잡힐 수 있습니다.

 

실무 키 예시

  • 이커머스: 주문번호(order_id), 고객ID(customer_id)
  • CS: 티켓번호(ticket_id), 상담ID(call_id)
  • 마케팅: 리드ID(lead_id), 캠페인ID(campaign_id)

중복 점검 방법(개념)

  • 키 열을 기준으로 “같은 ID가 여러 번 등장하는지” 확인
  • 여러 행이 정상인 경우(예: 주문 1건에 품목 여러 줄)라면 주문-상품 구조를 인정하고 집계 단위를 분리

여기서 핵심은 “중복이 오류인지, 구조상 정상인지”를 구분하는 겁니다.

주문 1건에 상품이 여러 개면 주문번호는 중복될 수 있어요.

이 경우 매출 집계를 주문 단위로 할지, 품목 단위로 할지 기준을 정해야 합니다.

6) 코드값 표준화: 같은 의미는 반드시 같은 값으로

표준화가 안 된 데이터는 피벗에서 값이 갈라져 보입니다.

“서울”, “서울시”, “SEOUL”이 각각 다른 항목으로 집계되면, 분석이 맞더라도 결과 해석이 틀어져요.

 

표준화가 필요한 대표 영역

  • 지역: 서울/서울시/Seoul
  • 채널: 네이버/Naver/naver
  • 상태: 완료/Completed/완료처리
  • 상품군: 카테고리명이 매번 바뀌는 경우

실무에서 효과 좋은 방법

  • 매핑 테이블을 하나 만들기(원본값 → 표준값)
  • CLEAN에서 표준값 열을 따로 만들고, 원본값은 보존

저는 원본값을 지우지 않고 “표준값” 열을 새로 만드는 편입니다.

그래야 나중에 “이 값이 왜 이렇게 바뀌었지?” 같은 검증이 가능해지고, 담당자가 바뀌어도 유지보수가 쉬워요.

7) 숫자/날짜 형식 통일: 보이는 것과 ‘저장된 값’은 다를 수 있습니다

엑셀/시트에서 가장 얄미운 문제는 “보기에는 숫자인데 실제로는 텍스트”인 경우입니다.

이러면 SUM이 안 먹고, 피벗에서도 숫자 집계가 꼬이죠.

 

자주 발생하는 형식 문제

  • “10,000원”처럼 통화 기호/문자가 섞인 값
  • 숫자인데 왼쪽 정렬(텍스트로 저장된 가능성)
  • 날짜인데 시스템이 텍스트로 인식(정렬하면 1, 10, 11…처럼 이상하게 됨)

해결 원칙

  • 숫자 열에는 문자를 넣지 않기(단위 표기는 별도 열/표시 형식으로)
  • 날짜는 YYYY-MM-DD로 통일
  • 형식이 불안하면 CLEAN에서 변환 열을 만들어 안전하게 사용

실무에서 바로 쓰는 ‘좋은 표’ 최종 체크리스트

  • 헤더 1행, 열 이름 고정, 단위 명시
  • 병합 셀 없음(필터/정렬 가능)
  • 한 셀=한 의미(혼합 데이터 분리)
  • 결측치 정의(0 vs 공백) + 결측 플래그
  • 키 중복 점검(오류인지 정상 구조인지 구분)
  • 코드값 표준화(매핑 테이블 운영)
  • 숫자/날짜 형식 통일(텍스트 숫자 제거)

다음 글 예고

3편에서는 드디어 피벗테이블로 들어갑니다.

“요약이 제대로 되는 피벗”을 만들기 위해 범위 설정 → 행/열/값 배치 → 필터/슬라이서 → 계산 필드까지 실무에서 가장 많이 쓰는 5단계를 순서대로 정리할게요. 피벗이 자꾸 깨지는 원인과 예방 루틴도 함께 다룹니다.

좋은 데이터 표의 조건 7가지: 결측치·중복·코드값만 잡아도 분석이 쉬워집니다
좋은 데이터 표의 조건 7가지: 결측치·중복·코드값만 잡아도 분석이 쉬워집니다

 

내부 연결 추천
- (1편) 실무 데이터 분석 시작: KPI 정의부터 데이터 정리까지 한 번에
- (3편) 피벗테이블 핵심: “요약”을 제대로 만드는 5단계