안녕하세요. 오늘은 엑셀의 숫자 서식을 한글의 조 단위 억 단위 만단 위로 끊어 표기하는 방법에 대해서 알아보겠습니다.
숫자 표기 및 읽기 단위
우선 한글의 숫자 읽기 단위는 4자리씩입니다.
예를 들어 만 억 조 경 해 …
1,234,000의 경우 백이십삼만사천원
1,234,000,000의 경우 십이억삼천사백만원
그리고 영어의 숫자 읽기 단위는 3자리씩입니다.
1,234,000의 경우 1M 234K
1,234,000,000의 경우 1Bn 234M
영어 표기와 회계상 숫자 구분 쉼표 단위와 일치합니다.
따라서 한국 읽기 단위 표기와 숫자 구분 쉼표 단위를 엑셀로 변환을 하기 위해서는 별도의 작업이 필요합니다.
달러 환율 변환을 표기할 때라던지, 숫자가 너무 커서 읽기 좋게 보고서 작성을 하기 위해서라던지
본래 숫자 값을 유지하면서 표시값만 바꿀 때, 함수 때문에 숫자 값은 유지를 해야 하는 경우에 필요할 것입니다.
3가지 방법이 있지만, VBA를 사용하는 전문가용 경우는 제외하겠습니다.
1. 표시형식 셀서식으로 표시하는 경우(비추천)
우선 간단하게, 엑셀 표기형식 -> 셀서식을 통해 입력하는 경우입니다.
#"조 "#,##0,,,"억원";
하지만 해당 경우에는, 문제점이 많이 나타납니다.
- 2개의 표기 단위(조, 억 사용 시 만, 경 사용 불가능) 밖에 사용을 못하는 점
- 숫자 구분 쉼표가 맞지 않는다는 점(텍스트로 억지로 4자리를 3자리로 변환했기 때문)
- 금액차이가 많이 났을 때, 빈 공간 텍스트 공간이 발생( 00조, 0050억원)
2. 표시형식 함수로 표시하는 경우(추천)
조금 복잡하지만, IF함수를 사용하는 방법입니다.
=IF(AND(10000000000000000>D3,D3>=1000000000000),TEXT(INT(D3/1000000000000),"#,##0")&"조 "&TEXT((D3-ROUNDDOWN(D3,-12))/100000000,"#,##0")&"억원",IF(AND(1000000000000>D3,D3>=100000000),TEXT(INT(D3/100000000),"#,##0")&"억 "&TEXT((D3-ROUNDDOWN(D3,-8))/100000,"#,##0")&"만원",TEXT(D3,"#,##0,,백만원")))
IF함수문을 살펴보면, 3가지 IF함수가 들어갑니다.
- 숫자가 1경미만, 1조이상 일 경우 조단위로 나눈 정수(INT)값 "조"를 붙이고, 원래값 - 조단위 이하를 반내림(ROUNDDOWN)값으로 만들어진 수를 TEXT함수를 통해, 억원 단위로 표시
- 숫자가 1조미만, 1억이상 일 경우 억단위로 나눈 정수(INT)값 "억"을 붙이고, 원래값 - 억단위 이하를 반내림(ROUNDDOWN)값으로 만들어진 수를 TEXT함수를 통해, 만원 단위로 표시
- 그리고 그 외 수는 백만단위로 표기 (이 부분은 원단위 표기 또는 "" 공백 처리하셔도 됩니다.)
엑셀 함수에 숫자 "0" 이 많아서, 복잡해 보이지만, 원리는 간단합니다. (눈알 빠질 뻔..)
엑셀 함수로 하기에 단점은 인수가 많아질 경우 엑셀 자체에서 해당 함수를 읽지를 못합니다.
즉, 위와 같이 인수가 많이 들어가는 함수는 IF문이 3~4개 이상일 경우 함수 작성이 불가능합니다.
또한, "0" 숫자가 너무 많아서.. 실수가 발생할 수도 있습니다.
장점은 간단한 2개 및 3개의 단위 범주에서는 쉽게 응용해서 사용이 가능하며, 숫자 표기를 원하는 대로 할 수가 있습니다. 공백도 제거 가능 (예, 0050억원 -> 50억원)
그럼.. 이만.. 도움이 되길 바랍니다. 감사합니다.