2017-05-03 4 views
1

키워드의 스프레드 시트가 커서 루트 용어로 그룹화해야합니다. 각 키워드에는 지리 또는 기타 용어가 첨부 된 구문의 루트 용어가 포함됩니다 (예 : 루트 제거 용어로 트리 제거 보스턴).역 색인 일치 키워드

저는 B 열에있는 모든 키워드 (~ 30,000)와 Z 열에있는 73 개의 루트 용어 목록을 가지고 있습니다. B 열의 키워드와 Z 열의 루트 용어를 비교하고 루트 용어를 C 열로 바꿉니다.

몇 가지 배열 수식, 색인/일치, vlookup 등을 사용해 보았습니다.

+0

'Instr()'함수를 사용할 수 있습니다. 그러나 73 개의 모든 루트 용어를 반복하거나 73 개의 헬퍼 컬럼을 사용하여 루트 용어가 문자열에 있는지 확인해야합니다. 30K * 73 instr 수식을 호출하면 응용 프로그램에 막대한 부담이됩니다. 이 경우 VBA 솔루션이 가장 좋습니다. 다음은'instr()'에 대한 정보입니다. https://www.techonthenet.com/excel/formulas/instr.php – Luuklag

+0

정확히 "중복"질문은 아니지만이 질문에 대한 대답은 내가 생각하는 기능이 있습니까? http://exackoverflow.com/questions/8313919/excel-search-for-a-list-of-strings-within-a-particular-string-using-array-formu – Wedge

답변

0

"루트 용어"가 모두 "키워드"의 첫 단어 일 경우 아래 내용이 귀하와 일치합니다. 귀하의 키워드 목록이 B1 셀에서 시작되고이 수식이 셀 C1에 입력된다고 가정합니다.

{=INDEX($Z$1:$Z$73,MATCH(1,SEARCH($Z$1:$Z$73,B1,1),0))} 

이 너무 Shift + Ctrl + Enter으로 입력해야 배열 수식이다. 루트 용어의 위치가 첫 단어가 아닌 경우 조금 더 생각해야합니다.

+0

감사합니다. 아픈 시도하십시오 - 근원 기간 모든 경우에있어서 첫 단어입니다. –

+0

완벽하게 일했습니다 - 고맙습니다. –

+0

도와 드리겠습니다. 실제로이 질문에 답하는 경우이 대답을 수락하십시오. – Kyle

0

당신은 C1에서 다음을 사용할 수 있습니다
루트의 위치는 어디든지 그것을 발견 할 것이다

=INDEX($Z$1:$Z$73,MAX(IF(ISERROR(FIND($Z$1:$Z$73,B1)),-1,1)*ROW($Z$1:$Z$73))) 

배열 수식 프레스 Ctrl 키 + 시프트 + 동시에를 입력