rand(life)
1일1함수 (24) FIND함수 : 문자열에서 지정 문자의 위치 찾기 본문
오늘은 FIND함수입니다. 찾으려는 문자가 어디에 있는지 그 위치를 반환합니다.
FIND(find_text,within_text,start_num) find_text 찾을 텍스트입니다. within_text 찾으려는 텍스트를 포함하는 문자열입니다. start_num 검색을 시작하는 문자를 지정합니다. within_text에서 첫 문자의 문자 번호는 1입니다. start_num을 생략하면 1로 간주됩니다. 주의
|
전에 배웠던 MID함수와 조합하면 많은 일을 할 수 있습니다. 전에 포스팅했던, 문항별개인응답표에서 학년,반,번호,이름을 추출하는 수식은 바로 MID와 FIND를 이용한 것입니다.
"학년"에 해당하는 수식만 살펴보겠습니다.
=MID(A1,FIND("학년",A2)-1,1)
MID함수 부분은, A1셀에서 FIND("학년",A1)-1 의 수식이 반환하는 값만큼의 위치에서부터 한 글자를 반환하라는 의미입니다.
FIND함수 부분은, "학년"이라는 글자가 A1셀에서 몇번째 위치에 있는가를 구하는 수식입니다.
그러므로, 전체 함수는 A1셀에서 "학년"이라는 글자가 나오는 위치보다 한 글자 앞의 위치에서부터 1글자를 반환하라는 의미입니다.
그런데, 10반 이후의 학생에는 문제가 없지만, 9반까지의 학생들은 한가지 문제가 있습니다.
보시는 것처럼 반에 해당하는 2앞에 빈칸이 하나 삽입되어있는 것입니다. 수식에서 두 개의 문자를 반환하라고 되어있으므로, 두자리 숫자의 반에서는 제대로 보이지만, 한자리수 반에서는 그 앞에 빈칸까지 출력됩니다.
어떻게 이것을 해결할 수 있을까요?
두 가지 방법이 있습니다.
첫번째는 이전포스트에서 설명한 것처럼, 복사—선택하여붙여넣기—값으로 붙여 넣으시면 다음 그림처럼 셀 앞에 삼각형의 오류표시가 뜹니다.
"텍스트형식으로 저장된 숫자"라는 오류표시입니다. 임의의 셀에 숫자 1을 입력하고, 그 셀을 복사해서 오류난 셀전체를 선택한 후 오른쪽 클릭—선택하여붙여넣기—"연산"에서"곱하기"를 하시면 모두 숫자로 변환되면서 앞의 공백도 사라집니다. (이전 포스트에 그림과 함께 자세하게 설명해 두었습니다)
두번째 방법은 수식을 이용한 것으로, 약간 복잡합니다.
다음 수식을 입력합니다.
=MID(A1,FIND("학년",A1,1)+3,FIND("반",A1,1)-FIND("학년",A1,1)-3)
수식을 해석하면, A1셀에서 "학년"이라는 글자가 나오는 자리 뒤의 세번째 자리에서부터 시작하여 "반"이라는 글자가 나오는 위치에서 "학년"이라는 글자가 나오는 위치를 뺀 만큼보다 3글자 적은 수의 글자를 출력하라는 의미입니다.
함수 |
해석 |
결과 |
=MID(A1, |
A1셀에서 |
|
FIND("학년",A1,1)+3, |
"학년"이라는 글자가 나오는 자리 뒤의 세번째 자리에서부터 시작하여 |
13의 위치에서부터시작하여 |
FIND("반",A1,1)- |
"반"이라는 글자가 나오는 위치에서 |
14 |
FIND("학년",A1,1)-3) |
"학년"이라는 글자가 나오는 위치를 뺀 만큼보다 |
14-10=4 |
3글자 적은 수의 글자를 출력하라 |
4-3=1 (1글자출력) |
연습문제를 드리겠습니다. "번호"란에도 같은 문제가 있습니다. 한자리숫자의 번호를 가진 학생들은 앞에 공백이 삽입된 채로 출력됩니다. 위의 수식을 응용하여, 앞에 공백이 나오지 않도록하여 "번호"란에 학생들의 번호가 출력될 수 있도록 수식을 만들어보세요.
2009/04/23 - [컴퓨터/엑셀] - 1일1함수 (20) MID함수 : 문자열에서 지정한 위치의 문자 추출
2008/05/03 - [컴퓨터/엑셀] - 반, 번호, 이름 따로 떼어내기 [엑셀에서 문자열 추출함수]