엑셀 함수의 새로운 패러다임, LAMBDA 함수 완벽 정리
엑셀 LABMDA 함수 목차 바로가기
영상 강의
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [실무기초] 엑셀 LAMBDA 함수 기초-활용 완벽 정리예제파일[실무기초] 엑셀 LAMBDA 함수 기초-활용 완벽 정리완성파일
LAMBDA 함수 기초 사용법
회사에서 엑셀을 사용하다보면 자주 사용하는 복잡한 공식을 매번 입력하기 번거로울 때가 있습니다. 그럴 때, LAMBDA 함수를 사용하면 복잡한 수식을 단순화하고 업무 프로세스를 효율적으로 개선할 수 있습니다. 오늘은 M365에 새로게 추가된 LAMBDA 함수의 사용법을 알아보겠습니다.
LAMBDA 함수
: 통합문서에서 재사용 가능한 커스텀 함수를 생성합니다.=LAMBDA(인수1,[인수2],...,수식)더 자세한 이론과 기초 설명은 아래 LAMBDA 함수 게시글을 참고하세요!👇
실무에 바로 쓰는 LAMBDA 함수 예제
먼저 간단한 예제를 통해 LAMBDA 함수의 기본 사용법을 숙지하고, 실무에 바로 활용하는 방법을 알아보겠습니다.
- 완성된 공식 사용해보기 : 예제파일을 실행한 후 LAMBDA예제_1 시트로 이동합니다. 시트 위쪽에 남겨드린 LAMBDA 함수 완성 공식을 드래그하여 복사합니다.
- [수식] 탭 - [이름 관리자]를 클릭하거나, 단축키 Ctrl + F3을 동시에 눌러 이름 관리자를 실행한 후 [새로 만들기] 버튼을 클릭합니다.
- '새 이름' 대화상자가 실행되면, 참조 대상에 복사한 공식을 붙여넣은 후 함수 이름과 설명을 다음과 같이 작성합니다.
· 이름 : CATLIST
· 설명 : 제품 카테고리를 리스트로 변환합니다.
· 참조대상 : =LAMBDA(범위,IFERROR(TEXTSPLIT(TEXTJOIN(";",,범위),">",";"),""))오빠두Tip : TEXTSPLIT 함수를 활용한 공식 원리는 아래 TEXTSPLIT 강의에서 자세히 정리했습니다.👇
- [확인] 버튼을 클릭하면 함수가 등록됩니다. 항목1 아래쪽에 비어있는 셀을 선택한 후, 다음과 같이 CATLIST 함수를 실행하면 카테고리 목록이 ">" 기호로 나뉘어 범위로 출력됩니다.
=CATLIST(B5:B16)
- 동일한 과정으로 예제파일에 미리 등록해드린 UNPIVOT 함수를 사용하면, 아래 그림과 같이 피벗된 구조의 데이터를 간단하게 피벗 해제 할 수 있습니다.
오빠두Tip : UNPIVOT 함수를 제작하는 방법은 아래 멤버십 프리미엄 특강에서 단계별로 꼼꼼히 정리했습니다. 함수 제작방법이 궁금하신 분은 아래 멤버십 특강을 참고하세요!👇
- LAMBDA 기본 함수 만들기 : 이제 [LAMBDA 기초] 시트로 이동한 후, 기본 함수를 만들어보겠습니다. 먼저 '매출'과 '인원수'를 입력하면, '매출 ÷ 인원수'로 객단가를 계산하는 LAMBDA 함수를 작성합니다. 비어있는 임의의 셀을 선택한 후, 다음과 같이 LAMBDA 함수를 작성합니다.
=LAMBDA(매출,인원수,매출/인원수)
→ "인수1: 매출", "인수2: 인원수", "수식: 매출÷인원수" - 수식을 입력하면 다음과 같이 #CALC! 오류가 출력됩니다. LAMBDA 함수는 일반적인 방법으로 입력하면 #CALC! 오류를 반환하며, 함수 뒤로 괄호 안에 작성된 인수를 추가하여 함수의 동작을 테스트할 수 있습니다.
- 방금 작성한 LABMDA 함수 뒤로, 다음과 같이 괄호 안에 인수를 추가하여 다시 실행하면 각 매출과 인원수를 기준으로 객단가가 계산됩니다.
- LAMBDA 함수가 잘 동작하는 것을 확인하였으면, 함수 뒤에 작성한 테스트 인수는 삭제한 후 LAMBDA 함수만 선택하여 복사합니다.
- [수식] - [이름관리자]를 클릭하여 이름관리자를 실행한 후, [새로 만들기] 버튼을 클릭하고 다음과 같이 새로운 함수를 등록합니다.
· 이름 : UNITPRICE
· 설명 : 매출과 인원수에 대한 객단가를 계산합니다.
· 참조 대상 : =LAMBDA(매출,인원수,매출/인원수) - [확인] 버튼을 클릭하여 함수를 등록한 후, 예제파일에서 G7에 다음과 같이 UNITPRICE 함수를 작성하고 수식을 자동채우기하면 각 매출과 인원수에 대한 객단가가 계산됩니다.
=UNITPRICE(E7,F7)
- 동일한 과정으로 아래 LAMBDA 함수를 사용하면 숫자를 한글로 변환하는 사용자 함수를 만들 수 있습니다. 아래 함수를 등록하는 과정은 영상 강의를 확인해주세요!
=LAMBDA(숫자,TEXT(숫자,"[DBNUM4]")&"원")
→ 숫자를 한글로 변환합니다.
LAMBDA 함수 선택 인수 만들기
때로는 특정 인수가 누락되어도, 오류 없이 함수가 동작하도록 해야 할 때가 있습니다. 그럴 때, ISOMITTED 함수를 사용하면 특정 인수가 누락되었을 때, 기본값으로 처리되는 선택 인수를 만들 수 있습니다.
- LAMBDA 선택인수 만들기 : 예제파일에서 [LAMBDA 응용] 시트로 이동한 후, '금액'과 '할인율'을 입력하면 할인율이 적용된 할인가를 계산하는 LAMBDA 함수를 다음과 같이 작성합니다.
=LAMBDA(금액,할인율,금액*(1-할인율))
- 함수를 작성한 후, 다음과 같이 테스트 인수를 추가하여 작성한 LAMBDA 함수가 잘 동작하는지 확인합니다.
=LAMBDA(금액,할인율,금액*(1-할인율))(1000,10%)
→ 1000원의 10% 할인이 적용된 900원이 계산됩니다. - 하지만 작성한 LAMBDA 함수 인수가 누락될 경우, 다음과 같이 #VALUE! 오류가 반환됩니다. 이러한 경우, ISOMITTED 함수를 사용하면 LAMBDA 함수의 특정 인수가 누락되었을 때, 기본값으로 처리되는 선택인수를 추가할 수 있습니다.
=LAMBDA(금액,할인율,금액*(1-할인율))(1000)
→ "금액, 할인율" 인수 중, 할인율 인수가 누락되어 #VALUE! 오류가 반환됩니다. - ISOMITTED 함수를 사용하여 LAMBDA 함수를 다음과 같이 수정합니다.
=LAMBDA(금액,[할인율],금액*(1-IF(ISOMITTED(할인율),10%,할인율)))
→ 할인율이 누락된 경우, 10% 기본값을 적용합니다.
→ 선택 인수는 대괄호"[]" 안에 작성하는 것을 주의합니다. - 이제 함수의 인수로 금액만 입력해도, 10%의 기본 할인율이 적용된 할인가가 계산됩니다.
=LAMBDA(금액,[할인율],금액*(1-IF(ISOMITTED(할인율),10%,할인율)))(1000)
여러 조건 필터링, MULTIFILTER 함수 만들기
M365에 새롭게 추가된 BYROW 함수와 FILTER 함수를 함께 활용하면, 여러 개의 조건을 한 번에 필터링하는 다중 조건 필터링 함수를 간단하게 작성할 수 있습니다.
예제파일에서 [LAMBDA 고급] 시트로 이동한 후, 아래 공식을 F4셀에 입력하고 G2셀에 필터를 적용할 부서 목록을 쉼표로 나누어 작성하면, 여러 부서가 한 번에 필터링됩니다.
=FILTER(B4:D20,BYROW(N(C4:C20=TEXTSPLIT(G2,",")),SUM))
// 만약 기업용 M365 를 사용중이거나, M365 최신 버전이 아닐 경우 오류가 발생할 수 있습니다.
그럴 경우, 아래 공식을 사용하세요!👇
=FILTER(B4:D20,BYROW(N(C4:C20=TEXTSPLIT(G2,",")),LAMBDA(a,SUM(a))))오빠두Tip : 엑셀 이전 버전에서도 모두 사용 가능한 실시간 필터링 보고서가 필요할 경우, 아래 실시간 필터링 보고서 만들기 전체 강의를 참고하세요!👇
이전과 동일한 방법으로 LAMBDA 함수를 작성한 후, 이름관리자에 다음과 같이 LAMBDA 함수를 등록하면 여러개의 조건을 동시에 필터링하는 MULTIFILTER 함수로 사용할 수 있습니다.
· 이름 : MULTIFILTER
· 설멍 : 범위에서 여러 조건을 만족하는 데이터를 필터링합니다.
· 참조 대상 : =LAMBDA(범위,조건범위,조건,FILTER(범위,BYROW(N(조건범위=TEXTSPLIT(조건,",")),LAMBDA(a,SUM(a)))))