엑셀 함수 > 논리 함수 > LAMBDA(람다) 함수로 사용자 정의 함수 만들기

LAMBDA(람다) 함수로 사용자 정의 함수 만들기

Microsoft 365에 추가된 LAMBDA(람다) 함수를 사용하면 VBA를 사용하지 않고도 사용자 정의 함수를 만들 수 있습니다.

LAMBDA(람다)라는 말이 어렵습니다. 원래 LAMBDA라는 용어는 컴퓨터 프로그래밍에서 익명 함수를 말합니다. 따라서 엑셀에서는 함수를 만들 수 있는 기능으로 이해하면 좋을 것 같습니다.

※ LAMBDA 함수는 2024년 3월 현재 Microsoft 365 이상 버전에서만 쓸 수 있습니다.

구문(Syntax)

구문(Syntax)
=LAMBDA([parameter1, parameter2, …,] calculation)

=LAMBDA([매개변수1, 매개변수2, …,] 계산식)

입력받은 매개변수를 계산식에서 계산하여 결과를 반환한다.

인수

  • parameter1, parameter2, … : 매개변수, 계산식에 전달되는 값, 매개변수는 최대 253개까지 가능
  • calculation: 계산식, 매개변수를 받아서 계산하여 결과를 반환함
실습용 엑셀파일 다운로드 : LAMBDA-함수사용법.xlsx

 

사용 예

섭씨를 화씨로 바꾸는 사용자 정의 함수 만들기

LAMBDA 함수는 사용법이 이해하기 쉽지 않습니다. 간단한 사용자 정의 함수를 만들어보면서 이해를 하는 것이 좋을 것 같습니다.

셀에 다음과 같은 LAMBDA 함수 수식을 입력하면 결과가 56이 나옵니다.

=LAMBDA(온도,(온도+1))(55) → 56

원리는 다음과 같습니다. 55라는 숫자를 수식의 마지막에 입력하면 '온도'라는 매개변수로 전달되고,
계산식에서는 매개변수 '온도'에 전달된 55와 1을 더해서(온도+1) 56을 반환해 줍니다.

LAMBDA 함수 구문

이렇게 간단한 예는 실무에서는 거의 사용할 일이 없을 것 같습니다.

 

다음과 같이 화씨온도를 입력하면 섭씨온도로 바꿔주는사용자정의함수를 만들어보겠습니다.

1. LAMBDA 함수 수식 작성

화씨를 섭씨로 바꾸는 공식은 다음과 같습니다.
=(화씨-32) * 5/9

이 수식을 이용하여 다음과 같이 LAMBDA 함수 수식을 작성합니다.
=LAMBDA(온도,(온도-32)*(5/9))(55) → 12.8

마지막의 55는 입력매개변수입니다. 화씨 55도를 입력하면 섭씨 12.8도를 구해줍니다.
LAMBDA 함수 구문

 

=LAMBDA(온도,(온도-32)*(5/9))(82) → 27.8
매개변수에 화씨 82도를 입력하면 섭씨 27.8도를 구해줍니다. 입력하는 화씨온도에 해당하는 섭씨온도를 정확히 구해줍니다.

 

2. 이름관리자에 LAMBDA 함수 수식을 사용자정의함수로 등록

이제 위에서 작성한 LAMBDA 함수 수식을 이름 관리자에 등록해보겠습니다.

[수식] 탭 → [정의된 이름] 그룹 → [이름 정의]를 눌러 [새 이름] 대화상자를 실행합니다.

이름 정의에 LAMBDA 함수 수식 등록

 

① [새 이름] 대화상자가 나타나면 [이름]에 사용자정의함수 이름 '섭씨변환'을 입력합니다. 이름은 원하는 다른 이름으로도 입력할 수 있습니다.

② [참조대상]에 LAMBDA 수식에서 마지막의 매개변수 부분 '(55)'를 제외한 부분 =LAMBDA(온도,(온도-32)*(5/9))을 입력하고 ③ [확인]을 누릅니다.

이름 정의에 LAMBDA 함수 수식을 사용자정의함수로 등록

 

[이름 관리자] 대화상자가 나타나고 '섭씨변환'이 이름으로 등록된 것을 확인할 수 있습니다. ④ [닫기]를 누릅니다.

이름 정의에 LAMBDA 함수 수식을 사용자정의함수로 등록

 

LAMBDA 함수 수식을 이름으로 등록하면 다음과 같이 일반 함수처럼 '사용자정의함수'를 사용할 수 있습니다.

=섭씨변환(B11) → 12.8

LAMBDA 함수 수식을 사용자정의함수로 사용하기

 

 

월 주차를 구해주는 사용자 정의 함수 만들기

LAMBDA 함수를 사용하여 실무에서 자주 사용하는 월 단위 주차를 구해주는 사용자정의함수를 만들어 보겠습니다.

월 단위 주차 구하기 수식:
=WEEKNUM(날짜,11)-WEEKNUM(DATE(YEAR(날짜),MONTH(날짜),1),11)+1
※ 월 단위 주차를 계산하는 자세한 방법은 여기를 눌러서 확인하세요.

1. 위 수식을 사용하여 LAMBDA 함수 수식을 다음과 같이 작성

=LAMBDA(myDate,(MONTH(myDate) & "월 " & WEEKNUM(myDate,1)-WEEKNUM(DATE(YEAR(myDate),MONTH(myDate),1),1)+1 & "주차"))

  • myDate: 입력매개변수(주차를 구할 날짜)
  • 수식의 나머지 부분: 주차를 구하는 '계산식'

2. 위에서 작성한 수식을 이름으로 등록

  • 이름: GetWeekNum
  • 참조 대상: 주차를 구하는 '계산식'

월 주차 구하기 수식을 사용자정의함수로 등록하기

 

3. 다음과 같이 일반 함수처럼 '사용자정의함수'를 사용

=GetWeekNum(B17) → '3월 1주차'

LAMBDA 함수 수식을 사용자정의함수로 사용하기

 

 

웹 공백(NBSP) 문자를 제거하는 사용자 정의 함수 만들기

실무에서 다른 자료를 복사하거나 인터넷에서 있는 내용을 복사해 넣으면 TRIM 함수나 CLEAN 함수로는 공백을 제거할 수 없는 경우가 있습니다. 키보드의 스페이스바로 입력된 공백이 아니라 웹페이지에서 공백을 넣는 문자라서 TRIM, CLEAN 함수로는 제거할 수 없고 다음과 같은 수식으로 해결해야 합니다.

 SUBSTITUTE(B21,UNICHAR(160),"")
※ 웹 공백을 제거하는 자세한 방법은 여기를 눌러서 확인하세요.

위 수식을 사용하여 웹 공백을 제거하는 사용자정의함수를 만들어 보겠습니다.

1. LAMBDA 함수 수식을 다음과 같이 작성

=LAMBDA(OldString,SUBSTITUTE(OldString,UNICHAR(160),""))

  • OldString: 입력매개변수(웹 공백이 포함된 텍스트)
  • 수식의 나머지 부분: 웹 공백을 제거하는 '계산식'

2. 위에서 작성한 수식을 이름으로 등록

  • 이름: RemoveNBSP
  • 참조 대상: 웹 공백을 제거하는 '계산식'

웹공백 제거 수식을 사용자정의함수로 등록하기

 

3. 다음과 같이 일반 함수처럼 '사용자정의함수'를 사용

=RemoveNBSP(B27)

LAMBDA 함수 수식을 사용자정의함수로 사용하기

 

 


관련 글

LET 함수로 수식을 간단하고 빠르게 만들기 - 엑셀 2021 버전부터 사용할 수 있는 LET 함수를 사용하면 지금까지 만들어온 복잡하고 긴 수식을 간단하고 빠르게 만들 수 있습니다. 프로그래밍 언어에서…

LET 함수로 수식을 간단하고 빠르게 만들기 더 보기 »

엑셀에서 월별 주차 구하기 엑셀에서 월 단위 주차 계산하기 - 엑셀에서 WEEKNUM 함수를 사용하면 년 단위의 주차를 구할수 있습니다. 년 단위 주차 대신에 월 단위 주차가 필요할 때도 있는데 WEEKNUM…

엑셀에서 월 단위 주차 계산하기 더 보기 »

UNICHAR 함수 - 코드값에 해당하는 유니코드문자 반환 - 엑셀 UNICHAR 함수는 입력된 숫자 코드값에 해당하는 유니코드(Unicode)문자를 구해줍니다. 함수이름 UNICHAR는 유니코드의 영어표현 Unicode와 문자를 의미하는 Character의 앞 글자를 따온…

UNICHAR 함수 - 코드값에 해당하는 유니코드문자 반환 더 보기 »

엑셀웍스 책 출간 안내

그동안 엑셀웍스에 올린 '엑셀 강좌', '함수 사용법', 여러 '실무 예제'에서 핵심만 뽑아 '된다! 엑셀 수식 & 함수' 책으로 출간하였습니다.

엑셀웍스 책 출간안내  자세히 보기

온라인 구매처: 예스24   교보문고   알라딘 

댓글 남기기

Scroll to Top