엑셀 앞자리 0이 사라졌다면, 표시와 실제 값을 먼저 나누자

·

셀을 선택해 수식 입력줄을 먼저 보자. 화면에 보이는 숫자와 수식 입력줄의 값이 다르면 표시 형식의 문제이고, 둘 다 1처럼 보인다면 앞자리 0은 숫자값으로 저장되지 않은 상태다. 전화번호·우편번호·상품코드처럼 계산하지 않을 식별자는 복구보다 먼저 값이 남아 있는지 판단해야 한다.

예를 들어 셀에는 001이 보이는데 수식 입력줄에는 1이 보이면, 0은 사용자 지정 형식이 덧붙여 보여 주는 표시다. 반대로 원래 001이어야 하는 셀이 화면과 수식 입력줄 모두 1이라면 실제 값에는 0이 없다. Microsoft의 안내도 텍스트 처리, 사용자 지정 형식, TEXT 함수를 서로 다른 용도로 구분한다.

엑셀 셀의 표시값, 수식 입력줄의 실제 값, 텍스트로 보존한 코드의 차이를 보여 주는 그림
표시 형식은 숫자값을 고정 자릿수처럼 보이게 할 수 있지만, 텍스트 보존과는 다르다.

먼저 이 세 경우를 가른다

확인 결과 다음 행동
셀은 비어 보이고 수식 입력줄에는 0이 보임 앞자리 0 손실이 아니라 값 0을 숨기는 표시 설정 또는 형식일 수 있다. 0 표시 설정과 사용자 지정 형식을 확인한다.
셀에는 001, 수식 입력줄에는 1 고정 자릿수 표시 형식이 숫자 1을 001로 보이게 한다. 자릿수가 항상 같고 계산이 필요한 열일 때만 이 방식을 유지한다.
셀과 수식 입력줄이 모두 1, 원래는 001 앞자리 0이 실제 값에서 빠졌다. 원래 자릿수를 알면 TEXT로 새 열에 복원하고, 모르면 원본을 찾는다.

0이 안 보이는 현상과 식별자의 앞자리 0이 사라진 현상은 같은 문제가 아니다. 이 둘을 수식 입력줄로 나누지 않으면 숫자 0을 억지로 코드처럼 고치거나, 이미 손실된 코드를 서식만으로 되살리려 하기 쉽다. 앞자리 0과 0값 숨김을 구분한 실무 안내도 이 차이를 짚는다.

새로 넣을 값은 텍스트로 보존한다

전화번호, 우편번호, 상품코드, 계정번호처럼 계산 대상이 아닌 열은 입력하거나 붙여 넣기 전에 열 형식을 텍스트로 바꾼다. 몇 개만 직접 입력할 때는 값 앞에 작은따옴표를 붙이는 방법도 있다. 이때 작은따옴표는 셀에 표시되지 않고, 뒤의 문자를 텍스트로 처리하게 한다.

CSV나 다른 파일에서 가져올 때도 같은 원칙이 적용된다. 가져오기 과정에서 해당 열을 Text로 지정해야 하며, 이미 숫자로 읽어 들인 뒤 형식만 텍스트로 바꾸어도 사라진 0이 돌아오지는 않는다. 한글과 코드 열을 함께 보존하며 CSV를 다시 가져와야 한다면 엑셀 CSV 한글 깨질 때, 더블클릭 대신 가져오기의 가져오기 순서를 이어서 확인할 수 있다.

이미 빠진 0은 원래 길이를 알 때만 복원한다

원래 코드가 반드시 세 자리라는 사실을 알고 있고 A2에 1이 들어 있다면, 빈 열에 =TEXT(A2,"000")을 넣어 001이라는 텍스트 결과를 만들 수 있다. 네 자리라면 "0000"처럼 자릿수를 바꾼다. 원래 자릿수를 알고 있을 때만 TEXT 함수로 새 열에 복원할 수 있다.

다만 이것은 잃어버린 정보를 찾아내는 작업이 아니다. 세 자리라는 규칙을 이용해 1 앞에 0 두 개를 붙이는 것이다. 코드 길이가 3자리인지 4자리인지, 혹은 가변 길이인지 모르면 TEXT가 어떤 결과를 만들어도 원본과 같다고 말할 수 없다. 그때는 원본 파일이나 원본 시스템에서 다시 받아야 한다.

고정 자릿수를 화면에서만 맞춰야 하고 값은 계속 숫자로 계산해야 한다면 사용자 지정 형식이 맞다. 숫자 1에 000 형식을 적용하면 001로 보인다. 그러나 이 형식은 통합 문서 안의 표시만 바꾸며, 숫자값 자체에 앞자리 0을 추가하지는 않는다. 텍스트 저장과 사용자 지정 표시 형식의 차이는 텍스트 입력과 고정 자릿수 표시를 비교한 안내에서도 확인할 수 있다.

16자리 이상이 바뀌었다면 복구를 멈춘다

16자리 이상 식별자가 숫자로 변환된 뒤 뒷자리가 바뀌었다면, 표시 형식이나 TEXT로 원본을 되살릴 수 없다. Excel 숫자는 유효 숫자 15자리까지만 정확히 보존하므로, 이후 자리가 0으로 바뀌는 등 변형이 생긴 경우에는 원본에서 다시 가져와야 한다.

따라서 긴 식별번호는 숫자로 열지 않는 편이 안전하다. 현재 셀이 15자리를 넘고 원래 값과 조금이라도 다르게 보인다면 서식 실험을 계속하기보다 원본을 확보한 뒤, 대상 열을 텍스트로 지정해 다시 입력하거나 가져온다. 이 중단 조건이 있어야 표시 문제와 실제 데이터 손실을 섞지 않게 된다.

참고 자료

  1. Microsoft Support, 「Keeping leading zeros and large numbers」
  2. 모아모앙, 「엑셀 0 사라짐 해결 — 앞자리 0 유지·0값 표시」
  3. 익스트림 매뉴얼, 「엑셀 맨 앞 0 숫자가 사라질 때 0 표시하는 3가지 방법」