Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기
이미지 출처: 에디터

엑셀의 LAMBDA 함수는 VBA 매크로 없이도 재사용 가능한 사용자 정의 함수를 만들 수 있게 해주는 강력한 기능입니다. 엑셀에는 다양한 내장 함수가 있지만, 실무에서는 데이터의 성격과 업종에 따라 자신만의 맞춤형 계산식이 필요할 때가 많습니다. LAMBDA 함수를 활용하면 이런 요구에 딱 맞는 커스텀 함수를 직접 만들어 반복적인 계산을 간소화하고 통합 문서의 활용도를 한층 높일 수 있습니다. 이 글에서는 LAMBDA 함수로 엑셀 사용자 정의 함수를 만드는 방법을 단계별로 살펴보겠습니다.

LAMBDA 함수란 무엇인가?

LAMBDA 함수는 이름을 지정해 재사용할 수 있는 사용자 정의 함수를 생성하는 기능으로, Excel 2021 버전부터 도입되었습니다. 매개변수(인수)를 입력받아 일반 수식처럼 계산을 수행하고 결과를 반환하는 방식은 기존의 내장 함수와 완전히 동일합니다. 복잡하게 얽힌 여러 개의 수식을 하나의 함수로 대체할 수 있다는 점이 가장 큰 장점입니다.

구문:

=LAMBDA(parameter_or_calculation,...)
  • parameter: 사용자 정의 함수의 입력 인수입니다. 문자열이나 숫자 모두 사용할 수 있으며, 최대 253개까지 입력할 수 있습니다.
  • calculation: 결과를 계산하기 위한 일반 엑셀 수식 또는 논리입니다. 반드시 마지막 인수로 작성해야 하며, 생략할 수 없습니다.

함수를 만든 후에는 이름을 지정하여 엑셀에서 자유롭게 호출하고 재사용할 수 있습니다.

LAMBDA로 사용자 정의 함수 만들기

예를 들어 소규모 온라인 쇼핑몰을 운영하면서 세금이 포함된 판매 금액을 자주 계산해야 한다고 가정해 보겠습니다. 매번 같은 공식을 입력하는 대신, LAMBDA로 재사용 가능한 커스텀 함수를 한 번만 만들어 두면 훨씬 효율적입니다.

1단계: LAMBDA 함수 작성하기

상품 가격에 10%의 세금을 적용한다고 가정해 보겠습니다. 세금 포함 최종 가격을 계산하는 LAMBDA 함수를 만들어 봅니다.

  • price: 판매 금액을 입력받는 매개변수입니다.
  • price*1.1: 가격에 10% 세금을 더한 총액을 계산하는 식입니다.

2단계: LAMBDA 함수 바로 사용하기

먼저 정의된 이름 없이 LAMBDA 함수를 직접 호출해 보겠습니다.

  • F2 셀을 선택하고 아래 수식을 입력합니다.
=LAMBDA(price,price*1.1)(100)

이 수식은 100에 10% 세금이 포함된 110을 반환합니다.

최신 버전의 엑셀에서는 범위 전체에 한 번에 적용할 수도 있습니다.

=LAMBDA(price,price*1.1)(E2:E13)

이 수식은 선택한 범위 전체 상품의 세금 포함 총 가격을 한꺼번에 반환합니다.

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기

3단계: 사용자 정의 함수에 이름 지정하기

  • 리본 메뉴에서 수식 탭 >> 이름 정의를 클릭합니다.
  • 이름란에 Price_with_Tax를 입력합니다.
  • 참조 대상 입력란에 위에서 만든 LAMBDA 수식을 붙여넣고 확인을 클릭합니다.

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기

4단계: 사용자 정의 함수 사용하기

이제 만든 함수는 엑셀의 기본 내장 함수처럼 자유롭게 사용할 수 있습니다.

  • G2 셀을 선택하고 아래와 같이 입력합니다.
=Price_with_Tax(E2)

이 함수는 100에 10% 세금이 추가된 110을 반환합니다.

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기

LAMBDA 함수 실전 활용 예제

예제 1: 면적 계산 함수 만들기

건축·부동산 분야에서는 방이나 부동산의 면적(제곱피트)을 자주 계산해야 합니다. 사각형 넓이 공식, 즉 가로 × 세로를 곱하는 LAMBDA 함수를 만들면 편리합니다.

=LAMBDA(length, width, length * width)

이 함수는 가로(length)와 세로(width)를 입력받아 두 값의 곱을 반환합니다.

재사용을 위해 함수 이름을 Area_Square_Feet로 지정해 보겠습니다.

  • 임의의 셀에 아래 수식을 입력합니다.
=Area_Square_Feet(20, 15)

20 × 15가 계산되어 300이라는 결과를 얻을 수 있습니다.

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기

예제 2: 할인 + 세금 적용 후 최종 가격 계산하기

LET 함수와 LAMBDA 함수를 조합하면 할인과 세금을 연속적으로 적용해 최종 가격을 계산하는 고급 커스텀 함수도 만들 수 있습니다.

=LAMBDA(price, discountRate, taxRate,
LET(
discountedPrice, price * (1 - discountRate),
finalPrice, discountedPrice * (1 + taxRate),
finalPrice
)
)
  • LAMBDA: 가격(price), 할인율(discountRate), 세율(taxRate)을 입력 변수로 받습니다.
  • LET: 중간 계산 변수를 정의합니다.
    • discountedPrice: 할인율을 적용한 가격을 계산합니다.
    • finalPrice: 할인된 가격에 세금을 적용합니다.
  • 반환값: 최종 계산된 finalPrice를 결과로 출력합니다.

이름 관리자(Name Manager)를 통해 함수 이름을 CalculateFinalPrice로 지정합니다.

  • H2 셀을 선택하고 아래 수식을 입력합니다.
=CalculateFinalPrice(100, 0.05, 0.1)

이 수식은 5% 할인과 10% 세금이 모두 적용된 최종 가격을 반환합니다. 즉, 100원에 5% 할인(95원) 후 10% 세금이 붙어 104.5가 됩니다.

VBA 없이 엑셀 LAMBDA 함수로 재사용 가능한 사용자 정의 함수 만들기

자주 발생하는 오류와 해결 방법

  • #CALC! 오류: 함수를 올바른 인수와 함께 제대로 호출하지 않았을 때 나타납니다. LAMBDA 정의 끝에 실제 입력값(인수)을 괄호로 묶어 테스트했는지 확인하세요.
  • #NAME? 오류: 함수 이름을 잘못 입력했거나 이름 정의가 되어 있지 않을 때 발생합니다. 이름 관리자에서 함수명이 정확히 등록되어 있는지 확인하세요.

연습용 워크북 다운로드

위 예제를 직접 따라 하며 연습할 수 있는 샘플 워크북을 활용하면 학습 효과가 더욱 높아집니다.

마무리

LAMBDA 함수를 활용하면 VBA 코딩 지식 없이도 누구나 엑셀에서 재사용 가능한 사용자 정의 함수를 만들 수 있습니다. 반복 계산을 하나의 함수로 정리해두면 통합 문서가 깔끔해지고 유지보수도 쉬워집니다. 수식을 LAMBDA 계산식에 넣기 전에 반드시 먼저 테스트해 보는 습관을 들이세요. 기본적인 함수부터 LET과 결합한 고급 함수까지, LAMBDA의 무한한 가능성을 직접 경험해 보시기 바랍니다.

무료 고급 엑셀 연습문제와 해설을 받아보세요!