IT 이야기

엑셀에서 키워드 포함 여부에 따라서 항목을 분류하는 방법

JinSunMe 2022. 11. 19. 19:02

 


1단계 : 단어 포함 여부 확인

1. 특정 단어의 포함여부 확인  

=ISNUMBER(FIND($단어범위,대상셀))

** 하나의 함수가 여러 행의 텍스트에 대해 중복적용되는 개념을 이해할 필요가 있음. (데이터가 배열 형태로 출력)

** ISNUMBER 함수는 TRUE/FALSE 로 출력

 

 


2단계 : 단어를 포함한 셀의 순번 확인

 

1. 배열을 순번으로 변환하기 (ROW는 그 데이터가 있는 행 값을 추출)

=ROW($단어범위)-ROW($단어범위시작셀)+1

** 사실 여기서는   "  ROW($단어범위)-1  "   바로 해도 됨.

 

2.  특정 단어가 포함되어 있으면, 그 단어가 있는 행 값을 추출

=IF(ISNUMBER(FIND($단어범위,대상셀)),ROW($단어범위)-ROW($단어범위시작셀)+1,FALSE)

 

3.  find 함수가 배열로 결과가 나오기 때문에, if 함수의 결과로 배열로 나타남. 

min 함수를 이용해서 가장 작은 값으로 추출

 

"{FALSE,FLASE,3,FALSE,FALSE,...}" 와 같이 반환되므로 MIN 함수를 사용해 범위에서 가장 작은 숫자 하나를 순번으로 반환합니다.

=MIN(IF(ISNUMBER(FIND($단어범위,대상셀)),ROW($단어범위)-ROW($단어범위시작셀)+1,FALSE))

 

 


3단계 : 해당 키워드의 분류 반환

  1. index 함수를 써서, 해당범위에서 해당 숫자 순서에 해당하는 데이터를 출력
    =INDEX($분류범위,MIN(IF(ISNUMBER(FIND($단어범위,대상셀)),ROW($단어범위)-ROW($단어범위시작셀)+1,FALSE)))

 

2. 키워드를 포함하고 있지 않을 경우, false 가 아니라, 연관이 없는 다른 숫자가 나오도록 설정

0 대신 범위보다 큰 값을 강제로 입력하여 #REF! 오류가 출력되도록 수식을 변경합니다.

=INDEX($분류범위,MIN(IF(ISNUMBER(FIND($단어범위,대상셀)),ROW($단어범위)-ROW($단어범위시작셀)+1,ROWS($단어범위)+1)))

 

 
 

 


4단계 :  마무리

마지막으로 #REF! 오류가 반환될 경우, iferror 함수를 이용해서 공백으로 두기

혹은,  마지막 행에 분류 없음 이라는 항목 추가해도 됨.

 

=IFERROR(INDEX($분류범위,MIN(IF(ISNUMBER(FIND($단어범위,대상셀)),ROW($단어범위)-ROW($단어범위시작셀)+1,ROWS($단어범위)+1))),"")