엑셀 문자열 함수 LEFT 함수, LEFTB 함수 - 왼쪽에서 문자 가져오기

 왼쪽에서 부터(텍스트의 시작 지점부터) 지정한 수만큼 문자을 가져오는 LEFT 함수와 바이트 단위로 문자를 가져오는 LEFTB 함수에 대하여 알아 보겠습니다. 문자열 함수 중 RIGHT 함수, RIGHTB 함수, MID 함수, MIDB 함수와 함께 가장 많이 사용되는 문자열 함수 입니다. 나머지 함수는 다음 포스팅에 설명하고, 이번 포스팅에서 LEFT 함수, LEFTB 함수에 대해 먼저 알아 보겠습니다.


 앞에서 말했듯이 LEFT 함수와 LEFTB 함수는 왼쪽 방향(텍스트의 시작 지점부터)에서 지정한 수만큼 또는 바이트 만큼 문자를 가져오는 함수입니다. LEFT 함부 부터 알아 보겠습니다.

 

*DBCS 언어 : DBCS를 지원하는 언어로는 한국어, 일본어, 중국어(간체) 및 중국어(번체)가 있습니다.

 

LEFT 함수 - 왼쪽 방향(텍스트의 시작 시점부터)에서 지정한 문자 수만큼 문자 가져오기

 

구문

LEFT(문자열 또는 셀참조, 가져올 문자 수)

 

 예를 보면서 설명해 보겠습니다. 아래 캡처화면에서와 같이 "B2" 셀에 "I have a dream." 이라는 문장이 있습니다. 여기서 "I have a" 까지 8개의 문자을 가져오고 싶은 경우에는 아래와 같이 수식을 입력합니다. 그리고 공백도 1개의 문자 수에 포함이 됩니다. 참조 바랍니다. 🔻

 

=LEFT(B2,8)

 

 

 여기서 참조 텍스트는 1바이트 언어인 영어 문자를 참조 하여도 알파벳 문자 1개는 1개의 문자로 취급되며, 2바이트 DBCS 언어를 참조 하여도 문자 1개는 1개의 문자로 취급됩니다. 예제를 통해 확인 해보겠습니다. 아래 캡처화면에서와 같이 "B3" 셀에 "나는 꿈이 있어요." 라는 문장이 있습니다. 여기서 "나는 꿈이 있어"까지 8개의 문자을 가져오고 싶은 경우 아래와 같이 수식을 입력합니다. 잘 볼 것은 영문, 한글 모두가 동일하게 가져올 수량 1개는 1개의 문자를 가르키고 있는 것입니다. 🔻

 

*DBCS 언어 : DBCS를 지원하는 언어로는 한국어, 일본어, 중국어(간체) 및 중국어(번체)가 있습니다.

 

=LEFT(C2,8)

 

 

 위결과 처럼 "LEFT 함수"의 두번째 인수 "문자 수"는 한글이든 영문이든 동일하게 1개의 문자는 1개의 문자를 나타낸다는 것과, 공백도 1개의 문자로 인식되어 그 수에 포함을 시켜야 한다는 것입니다.

LEFTB 함수 - 왼쪽 방향(텍스트의 시작 시점부터)에서 지정한 바이트 만큼 문자 가져오기

 

구문

LEFTB(문자열 또는 셀참조, 가져올 문자 수만큼의 바이트)

 

 LEFT 함수와 달리 LEFTB 함수는 기본적으로 문자를 가져오는 기능은 동일하나, 가져오는 방법에서 많은 차이를 가지고 있습니다. 위 예제에서와 같이 LEFT 함수는 가져올 문자를 갯수로 지정하였지만, LEFTB 함수의 경우 바이트 단위로 문자를 가져오기 때문에 LEFT 함수와 큰차이점이 있습니다. DBCS 언어의 경우는 문자 1개에 2바이트영문의 알파벳의 경우는 문자 하나에 1바이트 입니다. 공백 및 ASCII TEXT/ANSI TEXT의 경우는 1바이트 입니다.

 

ASCII 코드표 - http://terms.naver.com/entry.nhn?docId=841951&cid=42344&categoryId=42344

 

*DBCS 언어 : DBCS를 지원하는 언어로는 한국어, 일본어, 중국어(간체) 및 중국어(번체)가 있습니다.

 

 그럼 예를 보면서 알아보겠습니다. 아래 예제에서 "B2" 셀에 "I have a dream." 이라는 문장이 있습니다. 여기서 8바이트를 가져와 보겠습니다. 그럼 문장에서 어디까지 가져오게 될까요?

 

=LEFTB(B2,8)

 

 정답은 "I have a" 까지 입니다. 영문 및 공백의 경우 1개의 문자가 1바이트라고 했습니다. 따라서 8바이트는 문자 및 공백을 포함한 8개를 가져오겠지요. 아래 캡처를 참조 바랍니다. 🔻

 

 영문으로된 경우는 쉽습니다. 공백을 포함하여 그냥 가져올 수량만큼 바이트를 입력하면 되기 때문입니다. 하지만, 2바이트를 사용하는 DBCS 언어의 경우는 문제가 달라집니다.

 

 아래 예제를 보겠습니다. "B3" 셀에 "나는^꿈이^있어요." 라는 문장이 있습니다. 공백을 표시하기 위해 공백과 동일한 1바이트인 "^"로 표시하였습니다. 

 

=LEFTB(B3,1)

 

 

 

 결과 값이 처참합니다. 출력되는 값이 없습니다. 값이 나타나지 않는 이유는 위에서 말했듯이 DBCS 언어는 문자 하나를 표현하기 위해서는 2바이트가 필요하지만, 입력된 수식은 1바이트 만 입력되어 값이 출력되지 않는 것입니다. 따라서 DBCS 언어를 사용하는 경우 최소 1개의 문자를 표현하기 위해서는 2바이트를 입력해야 합니다. 아래와 같이 바꿔 보겠습니다. 어떤 값이 출력될까요? 🔻

 

=LEFTB(B3,2)

 

아래와 같이 "나"라는 한글 문자가 1개의 값이 출력됩니다. 🔻

 

 

 

 

  그럼 "나는^" 까지 출력하고 싶은 경우는 몇 바이트가 입력될까요? 맞습니다. 한글 2문자와 특수문자 1문자(2*2+1*1=5바이트)를 해서 총 5바이트가 필요합니다. 그럼 입력하여 결과를 보겠습니다. 🔻

 

=LEFTB(B3,5)

 

 

 

 원하는 문자가 출력이 되었습니다. 영문, 공백, 특수문자(ASCII, ANSI TEXT)는 1바이트, DBCS 언어는 2바이트라는 것만 이해한다면 아주 쉽게 원하는 문자를 가져올 수 있습니다. 

 

 주의 사항으로는 가져올 문자의 수가 문자열 보다 크다면 문자열 전체를 출력하게 되고, 가져올 문자의 개수를 생략하면 가져올 문자의 수를 1로 입력한 것과 같은 결과를 출력하게 됩니다. 또한 문자의 수는 0이거나 0보다 커야 합니다.

 

 LEFT 함수와 LEFTB 함수만 완벽하게 이해한다면 RIGHT 함수, RIGHTB 함수, MID 함수, MIDB 함수는 그져먹기로 배울 수 있습니다. 꼭 이해하고 넘어가시길 권해 드립니다.

 

 저는 LEFTB 함수를 회사에서 사용되는 ERP 시스템에 올라가는 자료의 길이가 바이트 단위로 지정되어 있기 때문에 LEFTB 함수로 자료의 길이를 변경하여 사용할 때가 있습니다. 저와 반대로 문자의 수가 정해진 시스템에서는 LEFT 함수가 더 유리하겠지요. 

 

여기까지 LEFT 함수와 LEFTB 함수에 대하여 알아 보았습니다. 잘 못된 부분이나 추가 문의 사항은 댓글이 메일 부탁드립니다. 감사합니다.


함께 읽으면 좋은 글

2017/03/26 - 엑셀 문자열 함수 RIGHT 함수, RIGHTB 함수 - 오른쪽에서 문자열 가져오기

2017/03/27 - 엑셀 MID 함수, MIDB 함수 - 지정 위치에서 문자열 가져오기

2017/03/23 - 엑셀 LOWER 함수, UPPER 함수, PROPER 함수 - 영문자 대문자 소문자 변환하기.

ASCII 코드표 - http://terms.naver.com/entry.nhn?docId=841951&cid=42344&categoryId=42344

728x90