갈루아의 반서재

예제에 사용할 데이터는 Roguefitness 카테고리별 새롭게 등록된 상품수 데이터로, 여기에서 숫자만 추출하는 방법을 알아보자. 다음과 같이 카테고리명 다음 ( ) 안에 상품수가 들어가 있다.

먼저 FIND 함수로 ( 가 시작되는 위치부터 파악해보자. 아래를 통해 FIND 함수에 대해 더 알아보자.

기본 구문은 다음과 같다. FIND 함수는 대/소문자 구분하며, 와일드카드 문자는 사용할 수 없다.

FIND(find_text, within_text, [start_num])

  • find_text    찾으려는 텍스트로 여기서는 ( 입니다.
  • within_text    찾으려는 텍스트를 포함하는 검색 대상 텍스트로 여기서는 A 열이다. 
  • start_num    검색을 시작할 문자를 지정하는 것으로, within_text, 즉 A 열의 첫 문자부터 검색할 것인가로 첫 문자의 문자 번호는 1 이다. start_num을 생략하면 1로 간주된다.

위의 예에서 FIND 함수는 ( 의 위치 9를 반환했다. 그리고 마찬가지 방법으로 닫는 괄호 ) 의 위치도 계산하자.

이제 MID 함수를 이용해서 상품수만 추출해내자. MID 함수는 텍스트 문자열에서 지정된 위치로부터 지정된 수만큼 문자를 반환하는 함수이다.

MID 함수 구문은 다음과 같다.

MID(text, start_num, num_chars)

  • text   추출할 문자가 들어 있는 텍스트 문자열로 여기서는 A열이 여기에 해당한다.
  • start_num    스트에서 추출할 첫 문자의 위치로, 텍스트에서 첫 문자는 start_num이 1이고 이후 문자는 순서대로 번호가 붙는다. 위의 예에서는 앞에서 찾은 ( 가 시작되는 위치에 1을 더한 값으로, FIND("(",A10)+1 이 된다. 그리고 start_num이 텍스트 길이 보다 크면 MID 는 "" (빈 텍스트)를 반환하게 된다.
  • num_chars    텍스트에서 반환할 문자의 개수를 지정하는데, 위의 예에서는 갯수가 2자리일지 3자리일지 고정된 값이 아니라 가변적이므로, ")" 가 끝나는 위치값에서 "(" 가 시작되는 위치값에서 1을 더한 값을 빼서 그 길이를 계산한다. 

전체 함수는 다음과 같이 된다. 

=MID(A10, FIND("(",A10)+1, (FIND(")",A10))-(FIND("(",A10)+1))