본문 바로가기
엑셀

[엑셀] 두 가지 이상의 다중조건으로 VLOOKUP 사용하기

by LightBlogger 2017. 8. 24.

다음과 같은 자료에서



조건1은 "2"고 조건2는 "c"인 값만 찾으려면 어떻게 해야 할까?


말하자면 VLOOKUP 에 두 가지 조건을 거는 것인데 가끔 생각이 안 날 때가 있다.


방법은 3가지로, 각각 VLOOKUP, INDEX-MATCH, 배열수식을 사용하는 방법이다.



1. 하나의 열을 추가하고 VLOOKUP 을 사용


VLOOKUP을 사용하려면 열을 하나 추가해야 한다.


다음과 같이 A와 B열의 문자열을 &로 묶는 열을 하나 만든다.



새로 만든 A열에서 VLOOKUP으로 "2c"를 찾는다.



같은 방법으로 3개, 4개의 조건도 동일하게 찾을 수 있다.



2. 열 추가 없이 INDEX-MATCH 사용


2018/06/13 - [엑셀] - [엑셀] 최초로 0이 아닌 값이 나오는 곳 찾기 INDEX() MATCH()에 등장한 방법을 이용하면


열 추가 없이도 1번과 같은 효과를 낼 수 있다.


일단 INDEX()를 활용해 A열과 B열을 &로 연결한 배열을 만들자.


=INDEX(A:A&B:B,)



"조건1조건2"라는 문자열이 반환되고 있다. 


1번에서 A열과 B열을 결합해 만든 별도의 열을, INDEX()를 활용해 가상으로 만들고 있다고 생각해도 되겠다.


이제 MATCH()를 이용해 그 배열에서 "2c" 인 곳의 위치를 찾는다.


=MATCH("2c", INDEX(A:A&B:B,), 0)


MATCH()의 마지막 인자로는 완전일치를 의미하는 0을 적어준다.


IF를 이용한 배열수식은 아니므로 Ctrl + Shift + Enter 를 누를 필요는 없다.



배열의 7번째 요소, 말하자면 7행이라고 값을 반환해주는 것을 알 수 있다.


이제 이것을 셀 주소인 C7 으로 바꿔야 하므로 다시 INDEX()를 활용해 "C열의 7번째" 임을 알려주자.


=INDEX(C:C, MATCH("2c", INDEX(A:A&B:B,), 0))



이와 같이 A열과 B열을 결합한 가상의 배열을 만들어 "2c"에 해당하는 값을 찾을 수 있다.


같은 방법으로 세 가지, 네 가지의 다중조건도 찾을 수 있다.



3. 원하는 값이 숫자라면 배열수식도 가능


최종적으로 반환되는 값이 숫자라면 2017/07/13 - [엑셀] - [엑셀] 배열수식에 여러 개의 조건 사용하기에서 본 대로 


배열수식을 이용하여 구할 수도 있다.


A열은 "2"고 B열은 "c"인 행들의 C열 값으로 만든 배열


을 다음과 같이 만들자.


=IF((A:A=2)*(B:B="c"),C:C)


이제 이 배열의 앞뒤로 SUM()이나 AVERAGE()등을 둘러싼 후 Ctrl + Shift + Enter를 누르면 완성이다. 


원하는 결과값이 하나라면 SUM()이나 AVERAGE() 모두 별도로 계산할 것이 없으므로 단순히 해당 값을 반환해 줄 것이다.



혹은 목적에따라 MAX()나 MIN()으로 둘러싸 주어도 되겠다.



(수식을 보는 함수 FORMULATEXT()는 2017/08/10 - [엑셀] - [엑셀] 수식 내용을 그대로 표시하는 세 가지 방법 참고)







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


다음과 같이 Filter() 함수를 사용하는 것도 좋은 방법이다.











반응형

댓글