본문 바로가기

엑셀강좌/☞ 함수

SEARCHB 함수

[1] SEARCHB

 ▶ 정의

  검색할 텍스트(문자열)내에서 찾으려는 텍스트(특정 문자)의 시작 위치를 표시합니다. (텍스트를 바이트 단위로 구분합니다.)

 ▶ 인수

  SEARCHB( find_text, within_text, start_num)

 인수

설명 

입력값 

 find_text

 검색할 텍스트에서 찾으려는 텍스트(특정 문자)를 입력합니다.

텍스트

 within_text

 검색할 전체 텍스트(문자)를 입력합니다. (찾으려는 텍스트가 포함되어 있습니다.)

텍스트

 start_num

 검색을 시작할 텍스트의 위치를 입력합니다. 입력 값을 생략할 경우 1로 지정합니다.

숫자

[2] SEARCHB 설명

 ▶ 설명

 * 텍스트(문자열)내에서 찾으려는 텍스트(특정 문자)의 시작 위치의 값을 구하는 함수입니다. (텍스트를 바이트 단위로 구분합니다.)
 * SEARCHB함수는 단독으로 사용하는 경우보다 다른 함수와 같이 사용하는 경우가 많습니다.
 * 텍스트(문자열)를 분리할 경우 주로 사용합니다.
 * 찾으려는 문자가 영문인 경우 대/소문자를 구분하지 않고 찾습니다.
   - 예를 들어 Abc 와 abc는 같은 텍스트 간주합니다.
   - 영문 대/소문자를 구분해서 찾으려면 FINDB 함수를 사용하면 됩니다.
 * SEARCHB가 SEARCH와 다른점은 글자 수를 바이트 단위로 구분합니다. (참고: SEARCH와 차이점 입니다.)

   (예: ab -> 바이트  수 2,  한글 --> 바이트 수 4개)
 * 아시아권(한글, 일본어, 중국어)는 1글자가 2바이트라고 생각하시면 됩니다.            
 * 영문, 숫자, 공백등은 1개의 문자가 1byte라고 생각하시면 됩니다.
 * 찾으려는 텍스트의 값에 와일드 카드(*,?)를 사용하여 찾을 수 있습니다.
   - 와일드 카드를 사용함으로 FINDB 함수보다 텍스트를 찾는데 편리합니다.            
   - FINDB 함수는 SEARCHB 함수와 다르게 와일드 카드를 사용하여 찾을 수 없습니다.
   - 와일드 카드란 : 검색할 때 사용하는 방법으로 ?, * 등의 특수문자를 의미합니다.
      ☞ ? : 임의 문자 1개를 의미합니다.  (예) a?의 경우 a로 시작하는 2글자를 의미합니다.
      ☞ * : 글자 수와 상관없는 모든을 의미합니다. (예) a* 의 경우 a로 시작하는 모든 글자를 의미합니다.(글자 수는 상관 없음)

 <관련 함수 차이점>
 * 아래의 함수는 모두 텍스트내에서 찾으려는 텍스트 시작위치의 값을 구하는 함수입니다.
    - FIND   :   대/소분자 구분, 와일드 카드 사용 불가, 텍스트 길이를 문자 수로 계산
    - FINDB :   대/소분자 구분, 와일드 카드 사용 불가, 텍스트 길이를 바이트 수로 계산
    - SEARCH   : 대/소분자 구분하지 않음, 와일드 카드 사용, 텍스트 길이를 문자 수로 계산
    - SEARCHB : 대/소분자 구분하지 않음, 와일드 카드 사용, 텍스트 길이를 바이트 수로 계산

[3] SEARCHB 예제 및 사용 방법

 ▶ 예제 [  품목 명에서 특정 문자(#)을 찾아서 시작 위치를 표시하고 싶은 경우 ]

SEARCHB

 ▶ 사용방법

SEARCHB 예제

1. 시작 위치 아래 셀(D3)에 SEARCHB 함수 수식을 입력합니다.
   ①  =SEARCHB(                    =SEARCHB(를 입력합니다.
   ②  =SEARCHB("#",C3,1)        찾으려는 텍스트("#")를 입력합니다. (텍스트이므로 앞뒤에 "를 반드시 같이 작성합니다.)
   ③  =SEARCHB("#",C3,1)        검색한 전체 텍스트의  셀 주소(C3)를 입력합니다.
   ④  =SEARCHB("#",C3,1)        검색을 시작할 위치(1)를 입력합니다. 생갹하면 1로 간주합니다.

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

<SEARCHB와 SEARCH 차이점>

NO

품목 명

SEARCH 결과

SEARCHB 결과

노트북#30-101

4

7

TV#10-201

3

3

드럼세탁기#10-201

6

11

데스크탑#11-311

5

9

* 위의 SEARCH와 SEARCHB 결과를 비교해서 차이점을 설명하려고 합니다.
   ▶ 2개의 함수 모두 텍스트내에서 찾으려는 텍스트의 시작 위치 값을 구하는 함수입니다.
   ▶ SEARCH는 텍스트를 문자 수로 구분하고 , SEARCHB는 바이트 수로 구분합니다.
     ① SEARCH로 시작 위치 값을 구하면 문자 수로 구분함으로 시작 위치의 값4 입니다.
         SEARCHB로 시작 위치 값을 구하면 바이트 수로 구분함으로 시작 위치의 값7 입니다.
          (참고: 한글, 일본어, 중국어 등은 1글자가 2바이트(byte)입니다.)

    ② SEARCH로 시작 위치 값을 구하면 문자 수로 구분함으로 시작 위치의 값3 입니다.
        SEARCHB로 시작 위치 값을 구하면 바이트 수로 구분함으로 시작 위치의 값3 입니다.

        (찾으려는 #의 앞에 품목 명이 모두 영문이어서 같은 값이 반환되었습니다.)

    ③ SEARCH로 시작 위치 값을 구하면 문자 수로 구분함으로 시작 위치의 값6 입니다.
        SEARCHB로 시작 위치 값을 구하면 바이트 수로 구분함으로 시작 위치의 값11 입니다.
          (참고: 한글, 일본어, 중국어 등은 1글자가 2바이트(byte)입니다.)

    ④ SEARCH로 시작 위치 값을 구하면 문자 수로 구분함으로 시작 위치의 값5 입니다.
        SEARCHB로 시작 위치 값을 구하면 바이트 수로 구분함으로 시작 위치의 값9 입니다.
          (참고: 한글, 일본어, 중국어 등은 1글자가 2바이트(byte)입니다.)

[4] 참고 사항

 ▶ 오류 발생 사항

* 찾으려는 텍스트(find_text)가 검색할 텍스트(within_text)에 없으면 #VALUE! 오류 값이 반환됩니다.
* 검색을 하려는 문자 위치(start_num)가 0보다 크지 않으면 #VALUE! 오류 값이 반환됩니다.
* 검색을 하려는 문자 위치(start_num)의 길이가 찾으려는 텍스트 길이(within_text) 길면 #VALUE! 오류 값이 반환됩니다.

 ▶ 관련 함수

* 관련함수로는 FIND, FINDB, SEARCH가 있습니다.

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

REPLACEB 함수  (0) 2019.11.28
REPLACE 함수  (0) 2019.11.27
SEARCH 함수  (0) 2019.11.25
FINDB 함수  (0) 2019.11.22
FIND 함수  (0) 2019.11.21