본문 바로가기
엑셀

[엑셀] 특정 문자가 들어 있는(포함된) 행 모아서 추출하기

by LightBlogger 2018. 10. 16.

2018/03/07 - [엑셀] - [엑셀] 특정 문자와 일치하는 행 모아서 추출하기에 이어서



다음과 같이 조건을 판단하는 열에 A, B, C 에 해당하는 문자가 무작위로 쓰여 있고


그 중 A가 들어 있는 행만을 추출하려면 어떻게 해야 할까?




앞서와 같이


=IF(B:B="A"


하는 식으로 시작할 수는 없다. 그런 식으로는 3행과 7행만 추출될 뿐, 4, 6, 10행은 추출되지 않는다.


우리는 엑셀의 SEARCH 함수를 이용해 이 문제를 해결할 수 있다.


SEARCH 함수는 주어진 셀 내에서 특정 문자의 위치를 숫자로 반환해 준다.


아래와 같이 입력해 보자.


=SEARCH("A",B3)




셀 내에 A라는 글자가 들어 있는 경우는 해당 글자의 위치를 숫자로 출력하고, 없는 경우에는 에러를 출력한다.


이제 이것을 TRUE / FALSE 조건으로 바꾸어 줄 수 있다. 숫자는 TRUE로, 에러는 FALSE로. 


ISNUMBER() 함수를 이용하면 되겠다.





이제 앞서 =IF(B:B=A 로 시도하려던 부분을 이것으로 대체하면 된다. 아래와 같다.


=IF(ISNUMBER(SEARCH("A",B:B)),



다음은 당연히 수열, ROW(A:A) 가 등장할 차례다. 배열수식이므로 CTRL + SHIFT + ENTER 를 잊지 않는다.


=IF(ISNUMBER(SEARCH("A",B:B)), ROW(A:A))





나머지 과정은 앞서와 동일하다.


SMALL() 함수를 사용해 3행에는 첫 번째, 4행에는 두 번째... 에 해당하는 값을 출력한다.


=SMALL(IF(ISNUMBER(SEARCH("A",B:B)), ROW(A:A)), ROW()-2)





이제 INDEX()를 활용해 어느 열의 세 번째 값을 가져와야 하는지 알려준다.


=INDEX(B:B, SMALL(IF(ISNUMBER(SEARCH("A",B:B)), ROW(A:A)), ROW()-2))





F4로 기준을 고정한 후


=INDEX(B:B, SMALL(IF(ISNUMBER(SEARCH("A",$B:$B)), ROW(A:A)), ROW()-2))



옆으로 채워 주고





아래로도 채워준다.





에러나 테두리의 처리는 앞서와 동일한 방법을 사용하면 되겠다.


이와 같은 방법으로 셀에 특정 문자가 포함되어 있는 행도 모아서 추출할 수 있다.





혹시 구글 스프레드 시트를 사용할 수 있는 환경이라면


다음과 같이 Filter() 함수를 사용하는 편이 낫겠다.






반응형

댓글