LOOKUP 함수 사용법(2019 이하 필독)
2019이하 버전을 사용하시는 분들은 반드시 보시길 바랍니다.
[윤아] 라는 글자를 넣으면 [소녀시대_SM]
출력되게 하려면 어떻게 하면 좋을까요.
대부분 방법이 바로 떠오르실 거에요.
(VLOOKUP 따위론 불가능하지만)
글 제목이 LOOKUP인 만큼 당연히 LOOKUP로도 가능합니다.
일단 index-match 로
=INDEX( B:B&"_"&D:D ,MATCH(F2,C1:C10,0))
빨간색 글씨를 보고 저게 된다고?
느끼실 분들도 많지 않을까? 싶네요.
흔히 사용하는 방법은 아니지만 가능합니다.
고수님들이 간혹 사용하는 정도?
어려운건 아니지만 잘 쓰진 않는거 같아요.
오빠두에서도 거의 못본거 같긴 합니다.
아무튼 저걸 [유연성] 이라 하겠습니다.
VLOOKUP은 유연성이 아예 없지만
반면 LOOKUP 은 유연성이 엄청납니다.
=LOOKUP("찾는값","검색영역","출력값")
기본 공식은 저렇지만
아래 처럼 사용하는 것도 가능합니다.
=LOOKUP(MATCH(F2,C1:C10,0), ROW(A:A) , B:B&"_"&D:D )
위에 index-match랑 똑 같은 겁니다.
index-match를 생각하면서 작동 방식을 생각해 보면 됩니다.
[LOOKUP]이 적합한 상황는 아니지만
[LOOKUP]의 특성을 잘 보여줍니다.
sumifs vlookup countifs... 처럼
흔히 쓰던 함수들과 달리 유연성이 엄청납니다.
그래서 이런 것도 가능합니다. (요건 어려운거니 일단 눈팅만)
=LOOKUP(2,1/TRIM($A$1:A6)<>""),(row($A$1:A6)-5)&"."&$A$1:A6)
좀 생소할 수도 있지만 셀 병합 풀때 저렇게 씁니다.
TRIM 이나 ROW 같은게 들어가도 작동하네 정도만 보시면 되요.
유연성이 높다는건 잠재력이 크다는 뜻 입니다.
사용방식이 그리 어렵지도 않구요. XLOOKUP 없는
2019 이하에서는 축복 아닌가 싶습니다.
2019이하 버전 쓰시는 분이시라면 반드시 익히시길 바랍니다.
이번에 LOOKUP 함수와 VLOOKUP 함수를 비교해 보면서
LOOKUP을 왜 안쓰게 되는지 이해할 수 있었네요.
일단 결론 부터
=LOOKUP("찾는값","검색영역","출력값")
기본패턴은 잊어 버리십시요. 오류 때문에 못씁니다.
=LOOKUP(1, 1/(A1:A10=B1) ,C1:C10)
1/(A1:A10=B1) 이게 뭔 개소린가 싶더라도
이렇게 쓰시면 됩니다.
공식을 이해하는 것 보단 쓰는게 더 쉽습니다.
직관적으로 (A1:A10=B1) 필요할땐
LOOKUP 에선 1/(A1:A10=B1) 이 따위로 들어가는 구나
이렇게 생각하시고 쓰시면 됩니다.
이 부분만 바꾸면 XLOOKUP 과 거의 100% 호환 됩니다.
= LOOKUP (1, 1/(A1:A10=B1) ,C1:C10)
=XLOOKUP(1, 1*(A1:A10=B1) ,C1:C10)
XLOOKUP 에서 1*를 한 이유는
true*1=1 이라는 걸 이용하기 위해서입니다.
이것만으론 별거 아니지만
조건이 2개 이상으로 늘어나면 이야기가 달라집니다
[우기][큐브] 라는 걸 검색해서
[3.여자아이들] 이라는 결과가 나오면 됩니다.
파란색이 [LOOKUP] 보라색이[XLOOKUP]
=LOOKUP(1,1/(C1:C10=F3)/(D1:D10=G3),A1:A10&"."&B1:B10)
=XLOOKUP(1,(C1:C10=F3)*(D1:D10=G3),A1:A10&"."&B1:B10)
(C1:C10=F3) 만 1/(C1:C10=F3) 로 바꾸는 느낌으로 쓰면 되요.
TRUE*TREU=1 이기 때문에 여기선 1* 해줄 필요도 없습니다.
XLOOKUP 사용법중 & 아이디어라는게 있습니다.
이것도 보는게 더 빠르니까. (조건2개 검색)
=XLOOKUP(1,1*(C1:C10&D1:D10=F3&G3),A1:A10&"."&B1:B10)
댕부러웠던 건데 LOOKUP도 가능합니다.
=LOOKUP(1,1/(C1:C10&D1:D10=F3&G3),A1:A10&"."&B1:B10)
2019 이하에서 index-match 써보신 분이시면 아시겠지만
조건이 2개 이상이면 배열수식이 필요합니다.
lookup 은 조건이 2개든 3개든 그냥 쓰면 되요.
하지만 XLOOKUP 과 100% 일치하는건 아니다.
B열(팀이름) 검색해서 C열(맴버이름)
=LOOKUP(1,1/(B1:B10=G3),C1:C10)
,
르세라핌 = 일치
아이브는 불일치
1/(AA=A) 형태로 사용할 경우
별다른 오류는 없지만
특성은 좀 다릅니다.
중복값이 있을 경우
XLOOKUP,VLOOKUP,Match 함수는 첫번째 출력
LOOKUP 함수는 ??????
일단 첫번째 값을 찾는 방법은 못 찾았지만
마지막 값을 찾는 방법은 있습니다.
=LOOKUP(1,1/(B1:B10=G3),C1:C10)
=LOOKUP(2,1/(B1:B10=G3),C1:C10)
1 대신에 2를 넣어 주시면 마지막 값으로 안정화 됩니다.
무조건 마지막 값을 찾아줌
기본 수준에선 저것 때문에 신뢰성이 낮아 보일 수 있지만
LOOKUP 고급 공식들은
오히려 저 특성을 살려서 사용하는 경우가 많습니다.
개인적으론 장점이라고 생각하지만
이 특성을 모르고 사용하면 실수할 수 있습니다.
그래서 기본 공식 자체를
=LOOKUP(2,1/(B1:B10=G3),C1:C10)
이런 식으로 1이 아니라 2를 넣는 것도 괜찮다고 봅니다.
하지만 첫번째 값을 찾는다면?
왠만하면 index-match로 하시면 되지만
lookup 으로도 가능합니다.
하지만 이렇게 쓰면 장점이 있나 싶긴 하지만
=LOOKUP(MATCH(1,1*(B1:B10=G3),0), ROW(A1:A10) , C1:C10 )
당연히 index-match 로 바꿀 수 있고
=index(C1:C10,MATCH(1,1*(B1:B10=G3),0))
(2019 이하에선 배열수식)
이런 부분이 좀 있지만
개인적으로는 2019 이하에서 lookup함수는 축복이라 생각합니다.
개인적으로 lookup 함수를 테스트 하면서 왜 안썼는지 의문이었는데
기본공식 =LOOKUP("찾는값","검색영역","출력값")
이게 워낙 개복치 같아서 그런 듯 합니다.
기본 공식 잊어 버리시고
=LOOKUP(1, 1/(A1:A10=B1) ,C1:C10)
=LOOKUP(1, 1/(검색범위=찾는값) ,출력값)
이렇게 사용하시면 잘 쓸 수 있을거 같습니다.
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
![]() ![]() |
![]() ![]() |
2022.02.03 | 572 | 599588 | |
78094 |
[M365] 수식으로 고급필터 구현하기
![]() ![]() |
![]() |
2025.04.11 | 1 | 73 |
78009 |
LOOKUP을 XLOOKUP 처럼 사용 (2019 이하 필독)
![]() ![]() |
![]() |
2025.04.06 | - | 95 |
78002 |
[VBA] 괄호가 대응되게 문자열 잘라주는 함수
![]() |
![]() |
2025.04.05 | - | 46 |
77792 |
엑셀 그림 삽입이 안될 때.. (그림 삽입 비활성화 해결)
(1)
![]() ![]() |
![]() ![]() |
2025.03.24 | 2 | 342 |
77667 |
언피벗 툴 업그레이드 버전입니다.
![]() ![]() |
![]() |
2025.03.17 | - | 99 |
77635 |
머리글로 데이터 합치기 툴
![]() ![]() |
![]() |
2025.03.15 | 1 | 110 |
77598 |
MERGE(자석처럼 자료 붙이기) 툴입니다.
![]() ![]() |
![]() |
2025.03.13 | - | 148 |
77577 |
[VBA] 시트명들 가져오는 함수
![]() ![]() |
![]() |
2025.03.12 | 1 | 107 |
77544 |
LOOKUP 함수 사용법(2019 이하 필독)
![]() ![]() |
![]() |
2025.03.11 | - | 184 |
77543 |
[함수TIP] Date함수로 Eomonth함수 대체하기
(3)
![]() |
![]() |
2025.03.11 | 3 | 68 |
77481 |
쉽게 쓸 수 있는 언피벗 툴
![]() ![]() |
![]() |
2025.03.08 | 2 | 112 |
77468 |
월간단위 월주차 함수
![]() ![]() ![]() |
![]() ![]() |
2025.03.07 | - | 130 |
77385 |
TEXTJOIN 을 SUMPRODUCT 공식으로 2차원 데이터 다루기
![]() ![]() |
![]() |
2025.03.04 | - | 93 |
77355 |
TEXTJOIN 으로 2차원 데이터 다루기
![]() ![]() |
![]() |
2025.03.02 | 1 | 96 |
77353 |
& 기호로 SUMPRODUCT 2차원 데이터 다루기
![]() ![]() |
![]() |
2025.03.02 | - | 72 |
77351 |
단어 포함 여부 검색, 원하는 단어로 출력
![]() ![]() |
![]() |
2025.03.02 | 1 | 103 |
77238 |
휴일이면 1 아니면 0이 나오는 함수
![]() ![]() |
![]() |
2025.02.24 | - | 142 |
77072 |
SUMPRODUCT로 VLOOKUP 대체 (2차원 룩업 가능)
![]() ![]() |
![]() |
2025.02.16 | - | 249 |
76915 |
SUMPRODUCT로 2차원 데이터 다루기[응용]
![]() ![]() |
![]() |
2025.02.09 | 1 | 221 |
76913 |
SUMPRODUCT로 2차원 데이터 sumifs 처럼 다루기
![]() ![]() |
![]() |
2025.02.09 | - | 177 |
@박정호 님 수식에 참조를 넣을 때 전체 열을 넣으면 성능이 아주 나빠집니다.
작성하신 수식은 전체 열을 넣은것과 특정 범위를 넣을 때 속도의 차이입니다.
님이 작성한 대로 전체 열을 넣으면 1048576개의 배열을 생성하고 이 값을 다 연산합니다. 쓸모 없는 배열 데이터를 연산하는 겁니다.
속도는 아래와 같습니다. 동일 수식을 10번 반복 했을 때 평균 0.38초가 걸립니다. 필요한 참조만 잡으면 1/100초로 측정이 안될 정도로 빠릅니다.
하나의 값을 검색하므로 이건 나노 세컨드로도 측정이 안될 정도로 빠릅니다.
@수미수 님 요즘건 저런기능이 있군요 ㅎㅎ
뭐 최적화는 사용자님들이 알아서 하시겠죠.
@박정호 님 역시 알아야 제대로 쓸 수 있는 거군요..ㅜ
sumproduct-match 함수 사용하는 부분 삭제 합니다.
사용해 보니 오류가 나와서요
@박정호 님 감사합니다....!!
@박정호 님 함수의 위력은 무궁무진하네요 ㅠㅠ