복잡한 엑셀 공식, 함수 하나로 해결! | LET 함수 15분 정리
엑셀 LET 함수 목차 바로가기
영상 강의
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [실무기초] 엑셀 LET 함수 기초-활용 15분 총정리예제파일[실무기초] 엑셀 LET 함수 기초-활용 15분 총정리E-Book
LET 함수 기초 사용법
엑셀 LET 함수는 2021 버전부터 새롭게 추가된 '코드형' 함수입니다. LET 함수는 코딩을 하듯이 사용할 이름(=변수)을 할당하고 수식에 사용할 수 있습니다. 따라서 LET 함수를 사용하면 복잡한 공식을 간소화하고, 실무에서 여러 단계에 걸쳐 계산하던 작업을 함수 하나로 해결할 수 있습니다.
= LET (이름1,값1,이름2,값2, ... , 계산식)
- 이름과 값은 반드시 쌍으로 올바르게 작성해야 합니다.
- 마지막 인수는 반드시 결과를 반환하는 계산식을 작성해야 합니다.
- 이름은 엑셀 이름관리자에서 유효하게 사용할 수 있는 이름이어야 합니다. 예를 들어, "A1"은 셀 주소로 할당된 이름이므로 LET 함수의 이름으로 사용할 수 없습니다.
- 성과급 공식 예제 : 예제파일을 실행한 후, LET 기초 시트로 이동합니다. 시트 오른쪽에 작성된 성과급 표에서 매출 합계가 $100,000 이상일 경우, 초과분의 10%를 계산하는 수식을 작성하겠습니다. N5셀을 선택한 후, 아래 수식을 입력합니다.
=IF(SUM(L5:L9)>100000,(SUM(L5:L9)-100000)*10%,0)
매출 합계가 10만불 이상일 경우 성과급 계산 공식을 작성합니다. - 수식을 입력하면 성과급으로 541.5가 계산됩니다.
성과급으로 541.5가 계산됩니다. - 위와 같이 수식을 작성하면, SUM함수로 범위를 지정할 때 매번 범위를 선택해야 하는 번거로움이 있습니다. 또한 매출 합계 범위가 바뀔 경우, 공식의 범위를 여러번 선택해서 수정합니다. 그럴 때, LET 함수를 사용하면 편리합니다.
공식을 작성할 때, 매번 범위를 선택해야 하는 번거로움이 있습니다. - LET 함수 기초 예제 : N5셀에 작성한 기존 공식을 지운 후, LET 함수를 작성합니다. 먼저 아래와 같이 LET 함수에서 사용할 이름으로 '합계' 범위를 할당합니다.
=LET(합계,SUM(L5:L9),
LET 함수로 이름을 할당합니다. - 이제 할당한 이름을 참조해서 편리하게 수식을 작성할 수 있습니다. 아래와 같이 공식을 완성합니다.
=LET(합계,SUM(L5:L9),IF(합계>=100000,(합계-100000)*10%,0))
할당한 이름으로 공식을 편리하게 작성할 수 있습니다. - 함수를 입력하면 이전과 동일한 결과 값인 541.5가 계산됩니다.
성과급으로 541.5가 동일하게 계산됩니다.
여러 단계 공식을 간소화, LET 함수 실전 예제
LET 함수는 실무에서 복잡한 공식을 간소화하는 것 뿐만 아니라, 여러 단계에 걸쳐 계산된 결과를 일괄 계산할 수 있습니다.
- 내림차순 집계 보고서 만들기 : 예제파일에서 LET 실전예제 시트로 이동합니다. 이번에는 각 지역별로 매출액이 높은 순서대로 집계된 피벗테이블 보고서를 함수만으로 만들어보겠습니다. 만약 M365 최신 버전의 엑셀을 사용 중이라면, 아래 그림과 같이 GROUPBY 함수를 사용하면 편리하게 집계 보고서를 만들 수 있습니다.
=SORT(GROUPBY(A2:A37,E2:E37,SUM,0,0),2,-1)
GROUPBY 함수를 사용하여 집계 보고서를 만들 수 있습니다. - 먼저 G2셀에는 UNIQUE 함수를 사용해서 지역 범위의 고유목록을 출력합니다.
=UNIQUE(A2:A37)
지역의 고유 목록을 출력합니다. - H2셀에는 SUMIF 함수를 사용해서 각 지역의 매출 합계를 계산합니다. 엑셀 2021 이후 버전에서는 동적배열을 반환하는 시작셀 뒤에 해시(#) 기호를 추가해서 동적 범위를 편리하게 선택할 수 있습니다.
=SUMIF(A:A,G2#,E:E)
지역별 매출 합계를 계산합니다. 오빠두Tip : 해시(#) 기호의 다양한 사용 예제는 아래 기초 영상 강의에서 꼼꼼히 정리했습니다!👇
- 이제 지역 목록을 매출 합계 기준으로 정렬합니다. J2셀에 아래 수식을 입력하면, 매출 합계 기준 내림차순으로 정렬된 지역 목록이 출력됩니다.
=SORTBY(G2#,H2#,-1)
매출 합계 기준 내림차순으로 정렬된 지역 목록을 생성합니다. - K2셀에는 아래 수식을 입력해서 내림차순으로 정렬된 합계 범위를 출력합니다.
=SORTBY(H2#,H2#,-1)
- 마지막으로 정렬된 지역과 합계 범위를 하나의 배열로 합쳐줍니다. J11셀을 선택한 후, 아래와 같이 HSTACK 함수를 사용하여 두 범위를 하나의 배열로 합쳐주면 매출액이 높은 순서대로 집계된 피벗보고서가 완성됩니다.
=HSTACK(J2#,K2#)
지역 범위와 합계 범위를 병합한 집계 보고서를 완성합니다. - LET 함수 공식 간소화 실습 : 이제 LET 함수를 활용해서, 지역별 매출 피벗 보고서를 만드는 과정을 작성해보겠습니다. 먼저 아래와 같이 LET 함수의 이름으로 "지역, 매출, 고유지역, 매출합계"를 만든 후, HSTACK 함수로 병합된 배열을 출력합니다.
=LET(지역,A2:A37,
매출,E2:E37,
고유지역,UNIQUE(지역),
매출합계,SUMIF(지역,고유지역,매출),
HSTACK(고유지역,매출합계))LET 함수로 이름 범위를 등록합니다. 오빠두Tip : Alt + Enter로 줄바꿈으로 추가해서 수식의 가독성을 높일 수 있습니다. - 마지막으로 "정렬지역, 정렬매출" 합계 범위를 추가한 후, HSTACK 함수로 병합된 배열을 출력하면 매출액 기준 내림차순으로 정렬된 피벗테이블 보고서가 간단하게 완성됩니다.
=LET(지역,A2:A37,
매출,E2:E37,
고유지역,UNIQUE(지역),
매출합계,SUMIF(지역,고유지역,매출),
정렬지역,SORTBY(고유지역,매출합계,-1),
정렬합계,SORTBY(매출합계,매출합계,-1),
HSTACK(정렬지역,정렬합계))집계보고서를 만드는 모든 과정을 LET함수로 한 번에 정리할 수 있습니다.
LET + LAMBDA 함수로 커스텀 함수 만들기
LET 함수와 함께 LAMBDA 함수를 활용하면 업무 효율을 크게 높일 수 있습니다. LAMBDA 함수는 복잡하게 작성된 공식을 커스텀 함수로 등록하는 함수입니다. M365 버전에 새롭게 추가된 LAMBDA 함수를 사용하면, VBA 매크로나 JavaScript의 도움 없이, 함수 공식만으로 누구나 커스텀 함수를 쉽게 등록하고 사용할 수 있습니다.
= LAMBDA (변수1,변수2, ..., 계산식)
- LAMBDA 함수는 PC에 설치된 M365 버전에서만 제공됩니다. 엑셀 이전 버전과 웹 버전 엑셀에서는 사용할 수 없는 점을 주의합니다.
- LAMBDA 함수의 변수의 이름은 엑셀의 이름 범위와 동일한 규칙이 적용됩니다. 예를 들어 "A1"은 엑셀에서 이미 셀주소로 할당된 이름으로 사용할 수 없습니다.
- Lambda 함수 사용해보기 : 예제파일에서 [LET 활용] 시트로 이동한 후, Q2셀에 작성된 LAMBDA 함수 공식에서 앞에 작은따옴표(')를 제외한 공식을 복사합니다.
예제파일에 미리 작성된 LAMBDA 함수 공식을 복사합니다. - [수식] 탭 - [이름관리자] 를 클릭하거나, 단축키 Ctrl + F3을 동시에 눌러 이름관리자를 실행한 후 [새로 만들기] 버튼을 클릭합니다.
이름관리자를 실행한 후, [새로만들기] 버튼을 클릭합니다. - 새 이름 대화상자가 실행되면, 참조 대상에 복사한 공식을 붙여넣은 후 아래와 같이 이름과 설명을 작성합니다. 모두 작성한 후, [확인] 버튼을 클릭하면 함수 등록이 완료됩니다.
이름 : EASYFILTER
설명 : 여러 조건을 만족하는 데이터를 필터링합니다.
참조대상 : =LAMBDA(범위,단어,LET(범위,범위,단어,단어,FILTER(범위,ISNUMBER(SEARCH(단어,BYROW(범위,LAMBDA(A,CONCAT(A))))))))새 이름 범위를 추가합니다. - 이제 시트에서 비어있는 셀을 선택한 후, 아래와 같이 EASYFILTER 함수를 사용해서 데이터를 편리하게 필터링할 수 있습니다.
이제 등록한 EASYFILTER 함수로 공식을 편리하게 사용할 수 있습니다. 오빠두Tip : FILTER+BYROW 함수로 필터링 자동화 공식을 만드는 전체 과정은 아래 멤버십 강의 전체 영상을 확인하세요!
https://youtu.be/p60R_PsJaI8