Excel

문장에서 일치하는 단어 찾기 (1)

별동산 2024. 6. 28. 08:25
반응형

1. 문제

 
E열에 있는 문장에서 D2셀에서 D4셀에 있는 단어를 찾아 D6셀에서 D9셀에 표시하는 것입니다.

 
D6셀에는 수식이 들어있지 않고, 눈으로 판단한 값인 수박이 써져 있습니다. D7셀부터 그렇습니다.
 

2. 해법

답을 찾는 방법이 여러 가지입니다.
하나씩 알아보겠습니다.
 

가. 첫 번째 방법

(1). Find 함수와 Match 함수 비교
(가) Find 함수
구문은 FIND(find_text, within_text, [start_num])로서
찾을 문자열을 먼저 입력하고, 찾을 대상 문자열을 두 번째로 입력하고, 세 번째 인수는 시작 위치에 해당하는 숫자입니다.
 
Find 함수를 이용해서 D6셀에 수식을 입력하는데
find_text가 사과, 배, 수박이므로 이것을 범위로 입력하고, 찾을 대상 문자열을 E6셀로 지정해서 입력하면
=FIND(D2:D4,E6)이 됩니다.

Microsoft 365의 경우 #분산!라고 에러가 표시됩니다.
이전 버전은 위 수식을 입력한 후 Ctrl + Shift + Enter키를 입력하는데 D6셀에 값이 잘 표시될 겁니다.

 
Microsoft 365를 기준으로 설명하면
D7셀과 D8셀에 값이 있어서 그런 것이므로 D7셀과 D8셀의 값을 지우면 됩니다.
 
그러면 아래와 같이 #####이 두 번 표시되고, 14가 표시됩니다.

 
#####은 열 너비가 좁아서 그런 것이므로 D열과 E열 사이의 경계선을 더블 클릭하면

 
#####이 #VALUE! 에러로 바뀌었습니다.
 
여기서 D6셀의 #VALUE!는 E6셀에 '사과'란 단어가 없다는 것이고, D7셀의 #VALUE!는 E7셀에 '배'란 단어가 없다는 것입니다.
 
그리고, D8셀의 14는 수박의 시작 위치를 가리킵니다.
아무렇게나, 말해도, 나는이라는 글자가 5+3+2=10이고, 공백이 3칸이므로 수박에서 수의 위치는 14가 되는 것입니다.
 
(나) Match 함수
구문은 MATCH(lookup_value, lookup_array, [match_type])로서
첫 번째 인수는 찾을 값, 두 번째 인수는 찾을 범위(또는 배열), 세 번째 인수는 일치 유형인데 정확히 일치하는 것을 찾을 때는 VLookup함수처럼 0을 입력합니다.
 
match_type의 기본값이 1(작은 값 중 최댓값)이므로 반드시 0을 입력해야 합니다.
위 수식에서 Find를 Macth로 바꾸니 아래와 같이 모두 #N/A에러가 발생합니다.
이것은 E6셀이 정확히 수박이면 값이 나오는데, 수박 이외의 단어가 있어서 그렇습니다.

 
 
따라서, Match함수를 이용해 일치하는 값을 찾을 때는 
첫 번째 인수를 True 또는 1로 입력하고,
두 번째 인수를 조건으로 넣어야 합니다.
 
다시 말행 조건이 일치할 때 위치를 반환하도록 해야 합니다.
 
수식은 =MATCH(TRUE,FIND(D2:D4,E6),0)이 되는데,
첫 번째와 두 번째는 #VALUE! 에러가 발생하기 때문에 수식 전체의 값도 #N/A가 반환된 것입니다.

 
따라서, Find수식의 결괏값이 에러가 발생하지 않도록
숫자인지 여부를 검사하는 IsNumber 함수를 Find앞에 붙여야 합니다.
그러면 수식은 =MATCH(TRUE,ISNUMBER(FIND(D2:D4,E6)),0)이 되고,
3이 반환됐는데, 3은 사과, 배, 수박 중 세 번째인 수박이 일치한다는 것입니다.

 
(2) Index 함수
이제 Index함수와 연결해서 사과, 배, 수박 중에서 세 번째의 값인 수박으로 반환하도록 하면 됩니다.
 
Index함수의 구문은 배열형과 참조형이 있는데
배열형의 경우 INDEX(array, row_num, [column_num])로서
array는 범위 또는 배열이고, row_num은 행 수, column_num은 대괄호 사이에 있으므로 생략가능한데, 열 수입니다.
 
위 경우에도 3이란 행 수만 필요하므로 수식은
=INDEX($D$2:$D$4,MATCH(TRUE,ISNUMBER(FIND($D$2:$D$4,E6)),0))이 됩니다.

 
D2셀에서 D4셀까지의 범위는 고정이어야 하므로
D2:D4를 마우스로 끌어서 선택한 다음 F4키를 누르면 절대 참조 형식으로 셀 주소가 바뀝니다.
 
이제 D6셀의 수식을 D9까지 복사해서 붙여 넣으면 수박, 사과, 사과, 배라고 맞는 값이 구해졌습니다.

 
다른 방법은 다음 편에서 다루도록 하겠습니다.

특정 문자 찾기(해법)1.xlsx
0.01MB

반응형