웹사이트 검색

Microsoft Excel에서 LAMBDA 도우미 함수를 사용하는 방법


엑셀의 LAMBDA 도우미 함수는 미래지만, 어떤 함수를 선택할지 아는 것이 진짜 도전입니다. 이것은 함수를 작업에 맞게 선택하고 마침내 스스로 생각하는 스프레드시트를 만드는 데 도움이 되는 빠른 안내서입니다.

이 문서에서는 Excel for Microsoft 365, 웹용 Excel, 최신 버전의 Excel 모바일 및 태블릿 앱에서 사용할 수 있는 다섯 가지 반복기 및 누산기 도우미 함수에 대해 다룹니다. SCAN 함수는 Excel 2024에서도 사용할 수 있습니다. 문서에서는 다른 역할을 수행하는 두 가지 도우미 함수인 MAKEARRAY(생성기)와 ISOMITTED(논리 검사기)는 다루지 않습니다.

엔진: 30초 LAMBDA 복습

LAMBDA를 마치 즉석에서 작성하는 사용자 정의 수식이라고 생각해 보세요—A2*0.15와 같은 고정 셀 참조 대신 매개변수를 정의합니다:

=LAMBDA(x,x*0.15)

어디 :

  • x는 함수가 처리할 값을 나타내는 매개변수입니다.
  • x*0.15는 Excel이 해당 매개변수에 대해 수행하기를 원하는 계산입니다.

그 자체로 이 수식은 별로 효과가 없습니다; 이 논리를 가져다 데이터를 적용할 드라이버가 필요합니다. 바로 그때 LAMBDA 도우미 함수가 등장합니다.

엑셀 표는 흘러내리는(분산된) 결과를 지원하지 않습니다. MAP이나 SCAN과 같은 동적 배열 수식을 그 안에 놓으려고 하면 #SPILL! 오류가 발생합니다. 이를 피하려면 항상 LAMBDA 도우미 함수를 표준 그리드에 배치하세요.

이번 실행에서는 데이터 소스로 T_Gadgets라는 이름의 다음 표를 사용하고, 그 옆이나 위에 일반 셀에 수식을 입력할 것입니다.

이터레이터(MAP, BYROW, BYCOL): 모든 셀, 행, 또는 열에 논리를 적용하기

이터레이터는 테이블 데이터를 순회하면서 각 항목에 LAMBDA 로직을 적용합니다.

MAP: 모든 셀에 논리를 적용하세요

문법

=MAP(array,LAMBDA(매개변수,계산))

목적

각 행의 수익을 계산하고 동시에 10% 할인을 적용하고 싶습니다.

이점

전체 계산이 한 곳에 있습니다. 이는 결과 내의 개별 행이 덮어씌워질 수 없기 때문에 논리를 더 안전하게 만듭니다.

다음은 셀 F2에 입력해야 하는 MAP 공식입니다:

=MAP(T_Gadgets[Units],T_Gadgets[Price],LAMBDA(u,p,u*p*0.9))

위치 :

  • 배열: T_Gadgets[Units],T_Gadgets[Price]는 처리하려는 열입니다.
  • 매개변수: u,p는 매개변수로, 각 행에서 하나의 단위와 가격입니다.
  • 계산: u*p*0.9는 두 값을 곱하고 10% 할인을 적용합니다.

MAP를 사용하여 병렬 열을 결합하고, BYROW(아래)를 사용하여 각 레코드를 단일 데이터 묶음으로 처리하십시오.

BYROW: 각 행에 대한 결과 가져오기

문법

=BYROW(배열,LAMBDA(행,계산))

목적

각 행(일)의 총 수익을 얻기 위해 T_Gadgets에서 Units와 Price를 가로로 곱하고 싶습니다.

이점

수백 개의 행에 걸쳐 수식을 관리하는 대신, 하나의 셀에서 하나의 수식을 관리하고 아래로 흘러 내려가도록 하여 데이터셋 전체의 일관성을 보장합니다.

셀 F2에 대한 BYROW 수식은 다음과 같습니다:

=BYROW(T_Gadgets[[Units]:[Price]],LAMBDA(row,PRODUCT(row)))

어디 :

  • 배열: T_Gadgets[[Units]:[Price]]는 두 열을 모두 포함하는 범위입니다.
  • 매개변수: row 는 데이터의 전체 수평 행을 나타냅니다.
  • 계산: PRODUCT(row)는 해당 행 내의 모든 값을 곱합니다.

BYCOL: 각 열에 대한 결과 가져오기

문법

=BYCOL(배열,LAMBDA(열,계산))

목적

T_Gadgets의 Units 및 Price 열에서 최대값을 찾는 단일 수식을 원합니다.

이점

테이블 위에 행 단위로 BYCOL을 사용하면 헤더 요약을 만들 수 있습니다. 이렇게 하면 엄청나게 큰 테이블의 맨 아래에 있는 총합 행으로 스크롤할 필요가 없으며, 논리를 하나의 셀로 압축하여 보안성과 일관성을 유지할 수 있습니다.

다음은 셀 A1에 대한 BYCOL 수식입니다:

=BYCOL(T_Gadgets[#Data],LAMBDA(col,IFERROR(MAX(col),"")))

위치 :

  • 배열: T_Gadgets[#Data]는 수식이 수평으로 확장될 수 있도록 보장합니다. 새 열을 추가하면 수식이 이를 감지하고 오른쪽으로 더 확장됩니다.
  • 매개변수: col은 전체 세로 열을 나타냅니다.
  • 계산: IFERROR(MAX(col),"")는 각 열에서 가장 높은 값을 찾습니다. IFERROR 래퍼는 AND 및 OR과 같이 텍스트 열에서 오류를 발생시키는 함수를 사용할 때 필수적입니다.

MAX와 SUM과 같은 함수는 텍스트 열에 대해 종종 0을 반환합니다. 수식의 정렬을 깨뜨리지 않고 이 값을 숨기려면, 0이 있는 셀을 선택하고 셀 서식 대화 상자(Ctrl+1)에서 사용자 지정 숫자 형식 `;;;`(세 개의 세미콜론)를 사용하여 셀을 기능적으로 유지하면서 값을 보이지 않게 만드세요.

누적기(SCAN 및 REDUCE): 진행하면서 결과 구축하기

누적기는 메모리를 가지고 있어 테이블을 이동하면서 합계를 계속 유지합니다.

스캔: 누적 합계 또는 누적 카운트 생성

문법

=SCAN(초기값,배열,LAMBDA(누적값,값,계산))

목적

재고 감소를 추적하기 위해 T_Gadgets의 Units 열 일일 누적 합계를 보고 싶습니다.

이점

전통적인 누적 합계 예를 들어 =SUM($C$2:C2)는 행을 정렬하거나 삭제하면 깨질 수 있습니다. SCAN은 논리를 하나의 셀에 유지하여 구조적 변경에 영향을 받지 않게 합니다.

이 예제에서 셀 F2의 SCAN 수식은 다음과 같습니다:

=SCAN(0,T_Gadgets[Units],LAMBDA(acc,val,acc+val))

어디 :

  • 초기 값: 0은 계산이 시작되는 곳입니다.
  • 배열: T_Gadgets[Units]는 당신이 검색하고 있는 열입니다.
  • 매개변수: acc,val는 매개변수입니다—이전 합계를 기억하는 누산기와 메모리에 더해지는 현재 셀의 값입니다.
  • 계산: acc+val은 메모리를 업데이트하는 논리입니다.

REDUCE: 배열을 하나의 최종 값으로 축소하기

문법

=REDUCE(초기_값,배열,LAMBDA(누적값,값,계산))

목적

당신은 T_Gadgets의 단위 수를 합산하고 싶지만, 단지 대량 주문(10개 이상의 판매)에 대해서만 하고 싶습니다.

이점

REDUCE는 다단계 로직을 하나의 셀로 압축하여 중첩된 SUMIF, 보조 열 또는 여러 중간 단계를 피합니다.

셀 F2에 이 REDUCE 수식을 입력하세요:

=REDUCE(0,T_Gadgets[Units],LAMBDA(acc,val,IF(val>10,acc+val,acc)))

위치 :

  • 초기 값: 0은 당신의 합계의 시작점입니다.
  • 배열: T_Gadgets[Units] 는 축소되는 열입니다.
  • 매개변수: acc,val은 매개변수입니다—함수가 실행됨에 따라 최종 누적 결과가 구축되며, 현재 셀의 값이 누적에 더해집니다.
  • 계산: IF(val>10,acc+val,acc)는 값이 10보다 큰 경우에만 합계에 값을 더합니다.

요약: 어떤 LAMBDA 도우미 함수를 필요로 하나요?

이 간단한 참조를 사용하여 어떤 기능이 당신의 작업에 적합한지 결정하세요:

만약 당신이 원한다면...

사용하다...

전체 튜토리얼

모든 셀에 논리를 적용하세요

지도

링크

각 행마다 결과를 얻기

행별

링크

모든 열에 대한 결과를 얻으세요

BYCOL

링크

누적 합계를 생성하세요

스캔

링크

요약된 값을 얻다

줄이다

링크


이러한 LAMBDA 기반 함수를 활용하면 Excel 통합 문서를 정교한 계산기에서 공식적으로 프로그래밍 언어로 간주되는 복잡한 개발 환경으로 바꿀 수 있습니다. 그렇다면, 무엇을 기다리고 계신가요? 현재 전체 데이터 집합에서 반복하고 있는 계산을 찾아 오늘 단일 셀 함수로 중앙 집중화하세요—그러면 예전 방식으로 돌아갈 일은 없을 것입니다.

관련기사