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단계 : 해당 키워드의 분류 반환
- 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))),"")
'IT 이야기' 카테고리의 다른 글
.(프리미어 프로) 특정 부분 강조하는 효과 넣기(사각형 도구 사용법, 시간에 따라 설명하는 부분, 강조하는 부분 바꾸기) (0) | 2022.11.28 |
---|---|
.엑셀 시계열 그래프 그리기, 미래 데이터 예측하기( Forecast.ETS 함수 사용 방법, 2차원 꺾은선 그래프 그리기) (0) | 2022.11.21 |
.(윈도우 10, 11) 추가 프로그램 설치 없이, 배터리 성능 확인하는 방법 (0) | 2022.11.17 |
.10초 만에 폴더 속 파일 리스트 뽑아내기 (0) | 2022.11.11 |
.엑셀에서 중복된 데이터를 제거하는 두 가지 방법 (0) | 2022.11.07 |