엑셀 함수의 새로운 패러다임, LAMBDA 함수 | 15분 완벽 정리

M365에 새롭게 추가된 엑셀 필수 함수! LMABDA 함수로 나만의 커스텀 함수를 만들고, 업무 생산성을 크게 높여보세요! 🚀

# 함수및공식

작성자 :
오빠두엑셀
최종 수정일 : 2024. 09. 06. 02:43
URL 복사
메모 남기기 : (1)

엑셀 함수의 새로운 패러다임, LAMBDA 함수 완벽 정리

엑셀 LABMDA 함수 목차 바로가기
영상 강의

큰 화면으로 보기

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [실무기초] 엑셀 LAMBDA 함수 기초-활용 완벽 정리
    예제파일
  • [실무기초] 엑셀 LAMBDA 함수 기초-활용 완벽 정리
    완성파일

LAMBDA 함수 기초 사용법

회사에서 엑셀을 사용하다보면 자주 사용하는 복잡한 공식을 매번 입력하기 번거로울 때가 있습니다. 그럴 때, LAMBDA 함수를 사용하면 복잡한 수식을 단순화하고 업무 프로세스를 효율적으로 개선할 수 있습니다. 오늘은 M365에 새로게 추가된 LAMBDA 함수의 사용법을 알아보겠습니다.

LAMBDA 함수
: 통합문서에서 재사용 가능한 커스텀 함수를 생성합니다.

=LAMBDA(인수1,[인수2],...,수식)

더 자세한 이론과 기초 설명은 아래 LAMBDA 함수 게시글을 참고하세요!👇

실무에 바로 쓰는 LAMBDA 함수 예제

먼저 간단한 예제를 통해 LAMBDA 함수의 기본 사용법을 숙지하고, 실무에 바로 활용하는 방법을 알아보겠습니다.

  1. 완성된 공식 사용해보기 : 예제파일을 실행한 후 LAMBDA예제_1 시트로 이동합니다. 시트 위쪽에 남겨드린 LAMBDA 함수 완성 공식을 드래그하여 복사합니다.

    엑셀-LAMBDA-함수-텍스트-나누기-공식
    예제파일에 미리 완성된 LAMBDA 함수를 복사합니다.
  2. [수식] 탭 - [이름 관리자]를 클릭하거나, 단축키 Ctrl + F3을 동시에 눌러 이름 관리자를 실행한 후 [새로 만들기] 버튼을 클릭합니다.

    엑셀-LAMBDA-함수-등록-1
    이름 관리자 - 새로만들기를 클릭합니다.
  3. '새 이름' 대화상자가 실행되면, 참조 대상에 복사한 공식을 붙여넣은 후 함수 이름과 설명을 다음과 같이 작성합니다.
    · 이름 : CATLIST
    · 설명 : 제품 카테고리를 리스트로 변환합니다.
    · 참조대상 : =LAMBDA(범위,IFERROR(TEXTSPLIT(TEXTJOIN(";",,범위),">",";"),""))
    엑셀-사용자-함수-만들기-1
    CATLIST 라는 새로운 함수를 등록합니다.
    오빠두Tip : TEXTSPLIT 함수를 활용한 공식 원리는 아래 TEXTSPLIT 강의에서 자세히 정리했습니다.👇
  4. [확인] 버튼을 클릭하면 함수가 등록됩니다. 항목1 아래쪽에 비어있는 셀을 선택한 후, 다음과 같이 CATLIST 함수를 실행하면 카테고리 목록이 ">" 기호로 나뉘어 범위로 출력됩니다.
    =CATLIST(B5:B16)

    엑셀-LAMBDA-사용자-함수-등록-완료-1
    비어있는 셀에 CATLIST 함수를 입력 후 실행합니다.
  5. 동일한 과정으로 예제파일에 미리 등록해드린 UNPIVOT 함수를 사용하면, 아래 그림과 같이 피벗된 구조의 데이터를 간단하게 피벗 해제 할 수 있습니다.
    엑셀-UNPIVOT-함수
    UNPIVOT 함수로 피벗해제를 간단히 실행할 수 있습니다.
    오빠두Tip : UNPIVOT 함수를 제작하는 방법은 아래 멤버십 프리미엄 특강에서 단계별로 꼼꼼히 정리했습니다. 함수 제작방법이 궁금하신 분은 아래 멤버십 특강을 참고하세요!👇
  6. LAMBDA 기본 함수 만들기 : 이제 [LAMBDA 기초] 시트로 이동한 후, 기본 함수를 만들어보겠습니다. 먼저 '매출'과 '인원수'를 입력하면, '매출 ÷ 인원수'로 객단가를 계산하는 LAMBDA 함수를 작성합니다. 비어있는 임의의 셀을 선택한 후, 다음과 같이 LAMBDA 함수를 작성합니다.
    =LAMBDA(매출,인원수,매출/인원수)
    → "인수1: 매출", "인수2: 인원수", "수식: 매출÷인원수"

    엑셀-객단가-계산-함수
    객단가를 구하는 LAMBDA 함수를 작성합니다.
  7. 수식을 입력하면 다음과 같이 #CALC! 오류가 출력됩니다. LAMBDA 함수는 일반적인 방법으로 입력하면 #CALC! 오류를 반환하며, 함수 뒤로 괄호 안에 작성된 인수를 추가하여 함수의 동작을 테스트할 수 있습니다.

    엑셀-LAMBDA-함수-CALC-오류
    일반적인 방법으로 입력 시, LAMBDA 함수는 CALC 오류를 반환합니다.
  8. 방금 작성한 LABMDA 함수 뒤로, 다음과 같이 괄호 안에 인수를 추가하여 다시 실행하면 각 매출과 인원수를 기준으로 객단가가 계산됩니다.

    엑셀-LAMBDA-함수-테스트
    괄호 안에 인수를 입력 후 다시 실행합니다.
  9. LAMBDA 함수가 잘 동작하는 것을 확인하였으면, 함수 뒤에 작성한 테스트 인수는 삭제한 후 LAMBDA 함수만 선택하여 복사합니다.

    엑셀-LAMBDA-함수-복사-1
    완성된 LAMBDA 함수를 복사합니다.
  10. [수식] - [이름관리자]를 클릭하여 이름관리자를 실행한 후, [새로 만들기] 버튼을 클릭하고 다음과 같이 새로운 함수를 등록합니다.
    · 이름 : UNITPRICE
    · 설명 : 매출과 인원수에 대한 객단가를 계산합니다.
    · 참조 대상 :  =LAMBDA(매출,인원수,매출/인원수)

    LAMBDA-함수-이름-등록
    이름 관리자에서 새로운 함수를 등록합니다.
  11. [확인] 버튼을 클릭하여 함수를 등록한 후, 예제파일에서 G7에 다음과 같이 UNITPRICE 함수를 작성하고 수식을 자동채우기하면 각 매출과 인원수에 대한 객단가가 계산됩니다.
    =UNITPRICE(E7,F7)

    엑셀-LAMBDA-함수-사용해보기
    등록한 함수(UNITPRICE)를 사용할 수 있습니다.
  12. 동일한 과정으로 아래 LAMBDA 함수를 사용하면 숫자를 한글로 변환하는 사용자 함수를 만들 수 있습니다. 아래 함수를 등록하는 과정은 영상 강의를 확인해주세요!
    =LAMBDA(숫자,TEXT(숫자,"[DBNUM4]")&"원")
    → 숫자를 한글로 변환합니다.

    엑셀-숫자-한글-변환-함수
    LAMBDA 함수로 숫자를 한글로 변환하는 함수를 만들 수 있습니다.

LAMBDA 함수 선택 인수 만들기

때로는 특정 인수가 누락되어도, 오류 없이 함수가 동작하도록 해야 할 때가 있습니다. 그럴 때, ISOMITTED 함수를 사용하면 특정 인수가 누락되었을 때, 기본값으로 처리되는 선택 인수를 만들 수 있습니다.

  1. LAMBDA 선택인수 만들기 : 예제파일에서 [LAMBDA 응용] 시트로 이동한 후, '금액'과 '할인율'을 입력하면 할인율이 적용된 할인가를 계산하는 LAMBDA 함수를 다음과 같이 작성합니다.
    =LAMBDA(금액,할인율,금액*(1-할인율))

    엑셀-할인가-구하기-함수
    할인율이 적용된 할인가를 구하는 LAMBDA 함수를 작성합니다.
  2. 함수를 작성한 후, 다음과 같이 테스트 인수를 추가하여 작성한 LAMBDA 함수가 잘 동작하는지 확인합니다.
    =LAMBDA(금액,할인율,금액*(1-할인율))(1000,10%)
    → 1000원의 10% 할인이 적용된 900원이 계산됩니다.

    엑셀-할인가-함수
    완성된 LAMBDA 함수가 잘 동작하는지 테스트합니다.
  3. 하지만 작성한 LAMBDA 함수 인수가 누락될 경우, 다음과 같이 #VALUE! 오류가 반환됩니다. 이러한 경우, ISOMITTED 함수를 사용하면 LAMBDA 함수의 특정 인수가 누락되었을 때, 기본값으로 처리되는 선택인수를 추가할 수 있습니다.
    =LAMBDA(금액,할인율,금액*(1-할인율))(1000)
    → "금액, 할인율" 인수 중, 할인율 인수가 누락되어 #VALUE! 오류가 반환됩니다.

    엑셀-LAMBDA-함수-VALUE-오류
    인수가 누락될 경우, #VALUE! 오류가 반환됩니다.
  4. ISOMITTED 함수를 사용하여 LAMBDA 함수를 다음과 같이 수정합니다.
    =LAMBDA(금액,[할인율],금액*(1-IF(ISOMITTED(할인율),10%,할인율)))
    → 할인율이 누락된 경우, 10% 기본값을 적용합니다.
    → 선택 인수는 대괄호"[]" 안에 작성하는 것을 주의합니다.

    LAMBDA-함수-선택-인수
    ISOMITTED 함수로 선택인수를 추가합니다.
  5. 이제 함수의 인수로 금액만 입력해도, 10%의 기본 할인율이 적용된 할인가가 계산됩니다.
    =LAMBDA(금액,[할인율],금액*(1-IF(ISOMITTED(할인율),10%,할인율)))(1000)

    LAMBDA-함수-선택-인수-등록-완료
    선택 인수가 누락되면 기본값이 적용됩니다.

여러 조건 필터링, 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)))))
엑셀-MULTIFILTER-함수-완성
여러 조건을 동시에 필터링하는 MULTIFILTER 함수로 편리하게 작업할 수 있습니다.
5 1 투표
게시글평점
1 댓글
Inline Feedbacks
모든 댓글 보기
1
0
여러분의 생각을 댓글로 남겨주세요.x