Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Excel

Excel의 LAMBDA, SCAN 함수의 차이점은 무엇이며, 함께 사용하는 법

권현욱(엑셀러) 2026. 5. 11. 17:00
반응형

들어가기 전에

엑셀에서 LAMBDA 함수와 SCAN 함수는 수식에 함께 등장하는 경우가 많아 혼동하기 쉽습니다. 하지만 이 둘은 엄연히 다른 함수로, LAMBDA는 논리를 정의하는 "두뇌" 역할, SCAN은 그 논리를 실행하는 "수단" 역할을 합니다. 이 두 가지 함수를 구분하고, 함께 활용하는 방법에 대해 소개합니다.

[참고] LAMBDA와 SCAN 함수는 Excel 2024 이상, M365용 Excel, 웹이나 모바일 또는 태블릿 앱용 Excel에서 사용할 수 있습니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft MVP · 엑셀 솔루션 프로바이더 · 작가

chatgpt / iexceller


이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.

  • 원문: Excel LAMBDA vs. SCAN: What's the difference and how do they work together?
  • URL: https://www.howtogeek.com/microsoft-excel-lambda-vs-scan/

LAMBDA 함수: 사용자 정의 로직 생성

엑셀의 LAMBDA 함수가 혁신적인 이유는 바로 백지 상태와 같기 때문입니다. 대부분의 엑셀 함수는 정해진 용도가 있습니다. 합계 함수는 항상 더하기만 하고, 평균 함수는 항상 평균을 구합니다. 하지만 람다 함수는 사용자가 지시를 내리기 전까지는 아무런 동작도 하지 않습니다.

아래 수식에서 LAMBDA 함수는 아직 사용할 숫자가 없기 때문에 #CALC! 오류가 발생합니다.

=LAMBDA(a, b, a*b)

 

howtogeek

 

하지만 이 시스템은 두 값(a와 b)을 입력 받으면 두 값을 곱해야 한다는 것(a*b)을 알고 있습니다. 이 시스템을 "두뇌"라고 부르는 이유가 바로 이것입니다. 지능은 이 시스템에 있지만, 외부에서 데이터를 입력받아야 하기 때문입니다.

LAMBDA의 독립적인 성능

LAMBDA는 SCAN과 구별되는 특징으로 이름 관리자에서 독립적으로 저장될 수 있다는 점입니다. LAMBDA를 저장하고 "CalculateMarkup"과 같은 이름을 지정하면 워크북 어디에서든 호출할 수 있는 새로운 Excel 기본 함수를 만들 수 있습니다. 반면 SCAN은 이런 방식으로 저장할 수 없으며, 수식 내부에 있어야 합니다.

 

SCAN 함수: 데이터 범위 탐색 

LAMBDA 함수가 논리에 관한 것이라면, SCAN 함수는 이동에 관한 것입니다. SCAN 함수는 누적 합계 또는 증가하는 목록을 추적하면서 셀 범위를 순회하도록 설계된 보조 함수입니다. 따라서 수학 연산을 수행할 수 있는 지능적인 기능은 없으며, 다음과 같은 작업만 수행할 수 있습니다.

  1. 특정 값에서 시작합니다.
  2. 다양한 셀을 탐색합니다.
  3. 모든 단계에서 LAMBDA에게 지침을 요청합니다.

 

SCAN 함수는 다음과 같은 구문을 사용합니다.

=SCAN([initial_value], array, LAMBDA)

 

  • initial_value: 시작점
  • array: 스캔할 배열
  • LAMBDA: SCAN에게 무엇을 해야 할지 알려주는 함수 인수

 

팀으로 협력하여 작동하는 두 함수

LAMBDA와 SCAN 함수 간의 혼동은 SCAN 함수가 수식 입력줄에서 거의 항상 상위 함수로 사용되기 때문에 발생합니다.

=SCAN(0,T_Sales[Sales], LAMBDA(a,b,a+b))

 

howtogeek

 

원본 데이터로 Excel 테이블을 사용하는 것이 좋지만 SCAN 함수는 테이블 외부에 배치해야 합니다. SCAN 함수는 테이블에서 처리할 수 없는 배열을 생성하기 때문입니다 . 또한, 테이블과 SCAN 함수 사이에 버퍼 열을 두어 Enter 키를 눌렀을 때 테이블이 결과 배열을 가져오지 않도록 해야 합니다.

 

LAMBDA 함수가 SCAN 함수 괄호 안에 있기 때문에 둘을 하나의 도구로 생각하기 쉽습니다. 하지만 이렇게 함께 사용하면 모든 셀에서 "연동"이 발생합니다.

  • SCAN은 현재 합계와 새로운 셀 값을 가져옵니다.
  • SCAN은 두 가지 데이터를 모두 LAMBDA에 전달합니다.
  • LAMBDA는 계산을 수행하고 결과를 반환합니다.
  • SCAN은 해당 결과를 기록하고 다음 행으로 이동하여 프로세스를 다시 시작합니다.

 

수학 외에도 다양한 기능을 처리하는 LAMBDA와 SCAN

이 두 함수의 차이점을 실제 시나리오에서 보도록 하죠. 간단한 합계 계산만으로는 하나의 수학적 도구처럼 보일 수 있지만, 이들을 사용하여 텍스트로 된 브레드크럼 경로를 만들어 보면 실제로 어떻게 상호 작용하는지 알 수 있습니다.

음성 코드가 담긴 열이 있고, C열에 실행 로그를 만들고 싶다고 가정합니다.

 

howtogeek

 

이를 위해서는 다음과 같은 수식을 사용합니다.

=SCAN("", T_NATO[Phonetic], LAMBDA(a, b, IF(b="", a, IF(a="", b, a&" - "&b))))

 

howtogeek

 

이 경우, 해당 함수들은 서로 다른 두 가지 작업을 수행합니다.

  • SCAN은 시작 상태(빈 문자열 "")와 코드 범위 내에서의 물리적 이동을 관리합니다. SCAN의 유일한 역할은 "어디"와 "언제"를 제공하는 것입니다.
  • LAMBDA는 각 셀의 내용을 개별적으로 평가하고 SCAN이 할 수 없는 논리적 판단을 내립니다 . 먼저, 불필요한 구분 기호가 추가되는 것을 방지하기 위해 셀이 비어 있는지 확인합니다. 셀이 비어 있으면 현재 목록을 그대로 유지합니다. 하지만 셀에 데이터가 있는 경우, 목록을 단일 항목으로 시작할지 아니면 기존 문자열에 새 단어를 추가할지 결정합니다.

 

그 결과, 각 행이 추가될 때마다 목록이 점점 커지는 현상이 발생합니다. 이는 SCAN이 LAMBDA 함수가 지정하는 모든 사용자 지정 로직을 전달하는 시스템임을 입증합니다.

 

더욱 견고한 총계를 생성하는 LAMBDA와 SCAN 

대부분의 사람들은 누적 합계를 계산할 때 이 완벽한 조합을 우연히 발견합니다. 이전 버전의 Excel에서는 `=SUM($B$2:B2)`와 같은 수식을 입력하고 열을 따라 아래로 드래그했을 것입니다.

이 전통적인 방법의 문제점은 상대 참조에 의존한다는 것입니다. 데이터를 정렬하거나, 새 행을 삽입하거나, 범위 중간에 있는 셀을 삭제하면 참조가 깨지거나 #REF! 오류가 발생하는 경우가 많습니다. LAMBDA 함수와 SCAN 함수를 함께 사용하면 단일 셀에만 존재하는 단일 동적 배열을 생성할 수 있습니다.

=SCAN(0,T_Inventory[Stock], LAMBDA(a,b,a+b))

 

여기서는 함수들이 오류 방지 책임을 분담합니다.

  • SCAN 함수는 계산을 범위에 고정합니다. 단일 수식이기 때문에 열 중간에 있는 개별 셀의 수식이 변경되거나 삭제되더라도 걱정할 필요가 없습니다.
  • 람다(LAMBDA) 함수가 논리를 담고 있습니다. 계산식을 변경해야 하는 경우, 한 곳에서만 수정하면 전체 열이 업데이트됩니다.

 

howtogeek

 

마치며

LAMBDA가 인텔리전스이고 SCAN이 전달 시스템이라는 점을 이해하면 더 이상 둘을 하나의 혼란스러운 단위로 취급하지 않아도 됩니다. 이러한 구분은 취약하고 성능이 저하되는 수식에서 벗어나 데이터가 증가함에 따라 자동으로 업데이트되는 견고한 자동화 워크시트로 나아가는 핵심입니다.