본문 바로가기

엑셀강좌/☞ 함수

MIDB 함수

[1] MIDB

 ▶ 정의

 텍스트 문자열의 지정한 위치에서 지정한 바이트 수만큼의 문자를 반환 합니다. 더블바이트 문자 집합(DBCS)에 사용합니다.

 ▶ 인수

  MIDB(text, start_chars, num_bytes)

 인수

설명 

입력값 

 text

 추출하려는 문자가 들어 있는 텍스트 문자열 입니다. 또는 텍스트가 들어 있는 셀 주소입니다.

텍스트

 start_chars  문자열에서 추출하고 싶은 문자의 첫번째 문자 위치 입니다.

      숫자

 num_bytes

 지정한 위치에서 추출할 바이트 수를 입력합니다.

숫자

[2] MIDB 설명

 ▶ 설명

 * 텍스트 문자열의 지정한 위치에서 몇 개의 글자만을 바이트 수 만큼 추출하고 싶을때 사용하는 함수입니다.            
 * MIDB가 MID와 다른점은 바이트 단위로 문자를 추출하는 것입니다. (참고: MID와 차이점 입니다.)            
   (예: ab -> 바이트  수 2,  한글 --> 바이트 수 4)            
 * 아시아권(한글, 일본어, 중국어)는 1글자가 2바이트라고 생각하시면 됩니다.            
 * 영문, 숫자, 공백등은 1개의 문자가 1byte라고 생각하시면 됩니다.            
 * MID함수로 MIDB함수를 커버할 수 있어서 MIDB함수를 잘 사용하지는 않습니다.
 * 아래는 관련함수 입니다. MID함수만 알고 있으면 6개의 함수를 모두 커버할 수 있습니다.
   (하지만 각 함수에 편리성이 있으므로 6개의 함수를 알고 있으면 편리하게 사용할 수 있습니다.)

 <관련 함수>
    - LEFT : 왼쪽(텍스트 시작 지점)부터 글자 수 만큼 문자를 추출할 수 있습니다.
    - LEFTB : 왼쪽(텍스트 시작 지점)부터 바이트 수 만큼 문자를 추출할 수 있습니다.
    - MID : 사용자가 지정한 위치에서 지정한 글자 수 만큼 문자를 추출할 수 있습니다.
    - MIDB : 사용자가 지정한 위치에서 지정한 바이트 수 만큼 문자를 추출할 수 있습니다.
    - RIGHT : 오른쪽(텍스트 끝 지점)부터 글자 수 만큼 문자를 추출할 수 있습니다.
    - RIGHTB : 오른쪽(텍스트 끝 지점)부터 바이트 수 만큼 문자를 추출할 수 있습니다.

[3] MIDB 예제 및 사용 방법

 ▶ 예제 [ 아래 데이터 지역번호에서 한글을 추출하고 싶은 경우 ]

 ▶ 사용방법

1. 한글 아래 셀(C3)에 MIDB 함수 수식을 입력합니다.
   ①  =MIDB(             =MIDB를 입력합니다.
   ②  =MIDB(G3,5,4)       문자열을 추출할 데이터 셀 범위(G3)를 입력합니다.
   ②  =MIDB(G3,5,4)       지역번호에서 한글만 추출하려면 5번째부터 한글이므로 5 입력합니다.
   ④  =MIDB(G3,5,4)       한글은 모두 2글자로 4바이트입니다. 그래서 4 입력합니다.


2. 셀 C3C4, C5, C6, C7에 복사합니다.
   ①  C3을 아래로 드래그하여 복사 할 수 있습니다.
   ②  셀 범위는 상대참조(주소)로 입력하는 것이 좋습니다.
       ▶ 절대 참조:  셀주소에 $가 있는 것이 절대 참조입니다. 셀 복사 및 드래그 시 셀주소가 변경되지 않습니다.
          예) $G$3           
       ▶ 상대 참조:  셀주소에 $가 없는 것이 상대 참조입니다. 셀 복사 및 드래그 시 셀주소가 변경됩니다.
          예) G3

<MIDB와 MID 차이점>

* 위의 MID와 MIDB 결과를 비교해서 차이점을 설명하려고 합니다.
   ▶ 2개의 함수 모두 지정한 위치에서 문자를 추출할 수 있습니다. 여기에서는 첫 번째 위치부터 글자를 추출하여 비교합니다.
   ▶ MID는 문자수 만큼 문자를 추출할 수 있으며, MIDB는 바이트 수 만틈 문자를 추출할 수 있습니다.
      ① MID는 추출 문자수1 이므로 지역번호에서 1개의 글자"0"를 가지고 옵니다.
          MIDB는 추출 바이트수1 이므로 지역번호에서 1byte"0"를 가지고 옵니다.
         (참고: 영문은 1글자가 1바이트(byte)입니다. 그래서 MID와 MIDB의 결과값동일합니다.)
            
      ② MID는 추출 문자수 2 이므로 지역번호에서 2개의 글자 "03"를 가지고 옵니다.            
          MIDB는 추출 바이트수 2 이므로 지역번호에서 2byte"03"를 가지고 옵니다.
         (위의 ①과 동일합니다.)
           
            
      ③ MID는 추출 문자수 3 이므로 지역번호에서 3개의 글자 "031"를 가지고 옵니다.            
          MIDB는 추출 바이트수 3 이므로 지역번호에서 3byte"031"를 가지고 옵니다.
         (위의 ①과 동일합니다
.)
            
      ④ MID는 추출 문자수 4 이므로 지역번호에서 4개의 글자 "031-"를 가지고 옵니다.            
          MIDB는 추출 바이트수 4 이므로 지역번호에서 4byte"031-"를 가지고 옵니다.
         (위의 ①과 동일합니다
.)
            
      ⑤ MID는 추출 문자수 5 이므로 지역번호에서 5개의 글자 "031-경"를 가지고 옵니다.            
          MIDB는 추출 바이트수 5 이므로 지역번호에서 5byte"031-"를 가지고 옵니다.
         (여기서 차이점이 발생합니다. 한글은 2byte 이므로 MID 함수에 표시된 "031-"의 한글 "경"표시할 수 없습니다.
)
            
      ⑥ MID는 추출 문자수 6 이므로 지역번호에서 6개의 글자 "031-경기"를 가지고 옵니다.            
          MIDB는 추출 바이트수 6 이므로 지역번호에서 6byte"031-경"를 가지고 옵니다.
          (한글, 일본어, 중국어 등의 1글자가 2byte 입니다. 그래서 한글에 마지막 글자 "기"표시할 수 없습니다.)

 

          (중요) 만약 문자열이 모두 영문으로만 되어 있으면 MIDMIDB결과동일합니다. 왜냐하면 영문은 1byte이기 때문입니다.
                  그런데 문자열에 한글이 썩여있으면 MIDMIDB결과동일하지 않습니다. 왜나하면 한글은 2byte이기 때문입니다.


[4] 참고 사항

 ▶ 오류 발생 사항

* num_bytes는 0보다 커야 합니다. 음수이면 #VALUE!가 표시 됩니다.            
* 문자열에서 한글을 추출할 경우 num_bytes 2(2,4,6…)의 배수로 작성해야 합니다. 1이면 아무것도 표시되지 않습니다.            
  (이유는 한글은 2byte이므로 표시하려면 2를 입력해야 합니다.)            
* num_bytes가 문자열의 길이(바이트 수)보다 길면 LEFTB는 문자열 지정한 위치에서 문자 끝가지 모두 표시 됩니다.

 ▶ 관련 함수

 * 관련함수로는 LEFT, LEFTB, MID, RIGHT, RIGHTB가 있습니다.

'엑셀강좌 > ☞ 함수' 카테고리의 다른 글

RIGHTB 함수  (3) 2019.03.12
RIGHT 함수  (0) 2019.03.11
MID 함수  (0) 2019.03.06
LEFTB 함수  (0) 2019.03.05
LEFT 함수  (0) 2019.03.01