엑셀 함수의 새로운 패러다임, LAMBDA 함수 | 15분 완벽 정리
M365에 새롭게 추가된 엑셀 필수 함수! LMABDA 함수로 나만의 커스텀 함수를 만들고, 업무 생산성을 크게 높여보세요! 🚀
이 강의에서는 M365에 새롭게 추가된 엑셀 LAMBDA 함수를 활용해, 반복적으로 사용하는 복잡한 수식을 재사용 가능한 사용자 정의 함수로 등록하는 방법을 다룹니다. 기초 사용법과 ISOMITTED 함수를 활용한 선택 인수 처리부터, BYROW와 FILTER를 조합한 다중 조건 필터링 MULTIFILTER 함수까지 단계별로 직접 만들어 봅니다.
실습자료를 준비했어요
수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇
LAMBDA 함수 기초 사용법
실무에서 엑셀을 사용하다 보면 동일한 복잡 수식을 반복해서 입력해야 하는 상황이 자주 발생합니다. 이럴 때 LAMBDA 함수를 활용하면 복잡한 수식을 하나의 사용자 정의 함수로 단순화하여 업무 프로세스를 효율적으로 개선할 수 있습니다. 이번 강의에서는 M365에 새롭게 추가된 LAMBDA 함수의 기초 사용법부터 실무 활용 예제까지 단계별로 정리합니다.
LAMBDA 함수
: 통합문서 안에서 재사용 가능한 사용자 정의 함수(커스텀 함수)를 생성합니다.
LAMBDA 함수의 자세한 이론과 기초 설명은 아래 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! 오류를 반환하므로, 함수 뒤에 괄호로 인수를 추가하여 동작을 직접 테스트할 수 있습니다.

- 앞서 작성한 LAMBDA 함수 뒤에 다음과 같이 괄호로 인수를 추가하여 다시 실행하면, 입력한 매출과 인원수를 기준으로 객단가가 정상적으로 계산됩니다.

- LAMBDA 함수가 정상적으로 동작하는 것을 확인했다면, 뒤쪽에 작성한 테스트 인수는 삭제한 후 LAMBDA 함수 본체만 선택하여 복사합니다.

- [수식] 탭에서 [이름 관리자]를 클릭하여 이름 관리자를 실행한 후, [새로 만들기] 버튼을 눌러 새로운 사용자 정의 함수를 다음과 같이 등록합니다.
· 이름 : UNITPRICE
· 설명 : 매출과 인원수에 대한 객단가를 계산합니다.
· 참조 대상 : =LAMBDA(매출,인원수,매출/인원수)
- [확인] 버튼을 클릭하여 함수 등록을 마친 후, 예제파일 G7 셀에 다음과 같이 UNITPRICE 함수를 입력하고 자동 채우기를 적용하면 각 매출과 인원수에 대한 객단가가 한 번에 계산됩니다.
=UNITPRICE(E7,F7)

- 동일한 방식으로 아래 LAMBDA 함수를 등록하면 숫자를 한글 표기로 변환하는 사용자 정의 함수를 만들 수 있습니다. 등록 과정은 영상 강의에서 함께 확인합니다!
=LAMBDA(숫자,TEXT(숫자,"[DBNUM4]")&"원")
→ 숫자를 한글로 변환합니다.
LAMBDA 함수 선택 인수 만들기
실무에서는 일부 인수가 입력되지 않더라도 오류 없이 함수가 동작해야 할 때가 있습니다. 이러한 경우 ISOMITTED 함수를 함께 사용하면, 특정 인수가 누락되었을 때 기본값으로 자동 처리되는 선택 인수를 LAMBDA 함수에 추가할 수 있습니다.
- 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))))
앞서 살펴본 방식과 동일하게 LAMBDA 함수를 작성한 뒤, 이름 관리자에 다음과 같이 등록하면 여러 조건을 동시에 필터링하는 MULTIFILTER 함수로 활용할 수 있습니다.
· 설명 : 범위에서 여러 조건을 만족하는 데이터를 필터링합니다.
· 참조 대상 : =LAMBDA(범위,조건범위,조건,FILTER(범위,BYROW(N(조건범위=TEXTSPLIT(조건,",")),LAMBDA(a,SUM(a)))))
