Microsoft 365에 추가된 LAMBDA(람다) 함수를 사용하면 VBA를 사용하지 않고도 사용자 정의 함수를 만들 수 있습니다.
LAMBDA(람다)라는 말이 어렵습니다. 원래 LAMBDA라는 용어는 컴퓨터 프로그래밍에서 익명 함수를 말합니다. 따라서 엑셀에서는 함수를 만들 수 있는 기능으로 이해하면 좋을 것 같습니다.
※ LAMBDA 함수는 2024년 3월 현재 Microsoft 365 이상 버전에서만 쓸 수 있습니다.
구문(Syntax)
=LAMBDA([매개변수1, 매개변수2, …,] 계산식)
입력받은 매개변수를 계산식에서 계산하여 결과를 반환한다.
인수
- parameter1, parameter2, … : 매개변수, 계산식에 전달되는 값, 매개변수는 최대 253개까지 가능
- calculation: 계산식, 매개변수를 받아서 계산하여 결과를 반환함
사용 예
섭씨를 화씨로 바꾸는 사용자 정의 함수 만들기
LAMBDA 함수는 사용법이 이해하기 쉽지 않습니다. 간단한 사용자 정의 함수를 만들어보면서 이해를 하는 것이 좋을 것 같습니다.
셀에 다음과 같은 LAMBDA 함수 수식을 입력하면 결과가 56이 나옵니다.
=LAMBDA(온도,(온도+1))(55) → 56
원리는 다음과 같습니다. 55라는 숫자를 수식의 마지막에 입력하면 '온도'라는 매개변수로 전달되고,
계산식에서는 매개변수 '온도'에 전달된 55와 1을 더해서(온도+1) 56을 반환해 줍니다.
이렇게 간단한 예는 실무에서는 거의 사용할 일이 없을 것 같습니다.
다음과 같이 화씨온도를 입력하면 섭씨온도로 바꿔주는사용자정의함수를 만들어보겠습니다.
1. LAMBDA 함수 수식 작성
화씨를 섭씨로 바꾸는 공식은 다음과 같습니다.
=(화씨-32) * 5/9
이 수식을 이용하여 다음과 같이 LAMBDA 함수 수식을 작성합니다.
=LAMBDA(온도,(온도-32)*(5/9))(55) → 12.8
마지막의 55는 입력매개변수입니다. 화씨 55도를 입력하면 섭씨 12.8도를 구해줍니다.
=LAMBDA(온도,(온도-32)*(5/9))(82) → 27.8
매개변수에 화씨 82도를 입력하면 섭씨 27.8도를 구해줍니다. 입력하는 화씨온도에 해당하는 섭씨온도를 정확히 구해줍니다.
2. 이름관리자에 LAMBDA 함수 수식을 사용자정의함수로 등록
이제 위에서 작성한 LAMBDA 함수 수식을 이름 관리자에 등록해보겠습니다.
[수식] 탭 → [정의된 이름] 그룹 → [이름 정의]를 눌러 [새 이름] 대화상자를 실행합니다.
① [새 이름] 대화상자가 나타나면 [이름]에 사용자정의함수 이름 '섭씨변환'을 입력합니다. 이름은 원하는 다른 이름으로도 입력할 수 있습니다.
② [참조대상]에 LAMBDA 수식에서 마지막의 매개변수 부분 '(55)'를 제외한 부분 =LAMBDA(온도,(온도-32)*(5/9))을 입력하고 ③ [확인]을 누릅니다.
[이름 관리자] 대화상자가 나타나고 '섭씨변환'이 이름으로 등록된 것을 확인할 수 있습니다. ④ [닫기]를 누릅니다.
LAMBDA 함수 수식을 이름으로 등록하면 다음과 같이 일반 함수처럼 '사용자정의함수'를 사용할 수 있습니다.
=섭씨변환(B11) → 12.8
월 주차를 구해주는 사용자 정의 함수 만들기
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주차'
웹 공백(NBSP) 문자를 제거하는 사용자 정의 함수 만들기
실무에서 다른 자료를 복사하거나 인터넷에서 있는 내용을 복사해 넣으면 TRIM 함수나 CLEAN 함수로는 공백을 제거할 수 없는 경우가 있습니다. 키보드의 스페이스바로 입력된 공백이 아니라 웹페이지에서 공백을 넣는 문자라서 TRIM, CLEAN 함수로는 제거할 수 없고 다음과 같은 수식으로 해결해야 합니다.
SUBSTITUTE(B21,UNICHAR(160),"")
※ 웹 공백을 제거하는 자세한 방법은 여기를 눌러서 확인하세요.
위 수식을 사용하여 웹 공백을 제거하는 사용자정의함수를 만들어 보겠습니다.
1. LAMBDA 함수 수식을 다음과 같이 작성
=LAMBDA(OldString,SUBSTITUTE(OldString,UNICHAR(160),""))
- OldString: 입력매개변수(웹 공백이 포함된 텍스트)
- 수식의 나머지 부분: 웹 공백을 제거하는 '계산식'
2. 위에서 작성한 수식을 이름으로 등록
- 이름: RemoveNBSP
- 참조 대상: 웹 공백을 제거하는 '계산식'
3. 다음과 같이 일반 함수처럼 '사용자정의함수'를 사용
=RemoveNBSP(B27)