17편에서 FILTER, SORT, UNIQUE를 다뤘고, 29편에서 LET, LAMBDA를 다뤘어요.
이번 편에서는 배열을 직접 생성하는 SEQUENCE, RANDARRAY와 실무에서 자주 쓰이는 동적 배열 함수 조합 패턴을 정리합니다.
사용 가능 버전: Excel 365, Excel 2021 이상
SEQUENCE 함수 - 연속 숫자 배열 생성
=SEQUENCE(행수, [열수], [시작값], [증가값])
| 인수 | 기본값 | 설명 |
|---|---|---|
| 행수 | 필수 | 생성할 행 수 |
| 열수 | 1 | 생성할 열 수 |
| 시작값 | 1 | 첫 번째 숫자 |
| 증가값 | 1 | 다음 숫자와의 차이 |
=SEQUENCE(5) → 1,2,3,4,5 (세로)
=SEQUENCE(3,4) → 3행 4열 배열 (1~12)
=SEQUENCE(5,1,10,5) → 10,15,20,25,30
=SEQUENCE(5,1,100,-10) → 100,90,80,70,60실무 예제 1 - 날짜 목록 자동 생성
=SEQUENCE(12, 1, DATE(2025,1,1), 30)2025-01-01부터 30일 간격으로 12개 날짜를 생성해요.
셀 서식을 날짜로 변경하면 날짜로 표시됩니다.
매월 1일 목록:
=DATE(2025, SEQUENCE(12), 1)SEQUENCE(12)가 112를 반환하고, DATE의 월 인수에 들어가서 1월12월 1일이 생성돼요.
실무 예제 2 - 행 번호 자동 부여
표에 자동 번호를 매기고 싶을 때:
=SEQUENCE(COUNTA(B2:B100))B열에 데이터가 있는 행 수만큼 번호를 자동 생성해요.
데이터가 추가/삭제되면 번호도 자동 갱신됩니다.
RANDARRAY 함수 - 랜덤 배열 생성
=RANDARRAY([행수], [열수], [최소값], [최대값], [정수여부])
| 인수 | 기본값 | 설명 |
|---|---|---|
| 행수 | 1 | 생성할 행 수 |
| 열수 | 1 | 생성할 열 수 |
| 최소값 | 0 | 최소 범위 |
| 최대값 | 1 | 최대 범위 |
| 정수여부 | FALSE | TRUE면 정수만 생성 |
=RANDARRAY(5) → 0~1 사이 소수 5개
=RANDARRAY(3,4,1,100,TRUE) → 1~100 사이 정수 3행4열
=RANDARRAY(10,1,50,100,TRUE) → 50~100 사이 정수 10개
RANDARRAY는 셀이 재계산될 때마다 값이 바뀌어요(휘발성).
값을 고정하려면 결과를 복사 → 값으로 붙여넣기 하세요.
실무 예제 - 테스트 데이터 생성
함수 테스트용 샘플 데이터를 빠르게 만들 수 있어요.
=RANDARRAY(20,1,100,1000,TRUE)100~1000 사이의 정수 20개를 생성합니다.
동적 배열 함수 조합 패턴
여러 동적 배열 함수를 중첩하면 복잡한 작업을 수식 하나로 처리할 수 있어요.
패턴 1 - 조건 추출 + 정렬
영업팀 데이터를 매출 기준 내림차순으로 (17편 복습):
=SORT(FILTER(A2:C20, B2:B20="영업팀"), 3, -1)패턴 2 - 고유값 추출 + 정렬
부서 목록을 가나다순으로:
=SORT(UNIQUE(B2:B100))패턴 3 - 조건별 합계를 배열로
각 고유 부서의 매출 합계를 한 번에:
=LET(
부서목록, SORT(UNIQUE(B2:B100)),
HSTACK(부서목록, SUMIF(B2:B100, 부서목록, C2:C100))
)HSTACK은 두 배열을 가로로 합치는 함수예요.
결과: 부서명 | 합계 형태의 2열 배열이 자동 생성됩니다.
패턴 4 - 상위 N개 추출
매출 상위 5개 데이터:
=LET(
정렬, SORT(A2:C20, 3, -1),
INDEX(정렬, SEQUENCE(5), SEQUENCE(1,3))
)또는 TAKE 함수(365):
=TAKE(SORT(A2:C20, 3, -1), 5)패턴 5 - FILTER + SEQUENCE로 동적 번호 매기기
필터 결과에 번호를 붙이기:
=LET(
결과, FILTER(A2:C20, B2:B20="영업팀"),
번호, SEQUENCE(ROWS(결과)),
HSTACK(번호, 결과)
)HSTACK / VSTACK - 배열 합치기
=HSTACK(배열1, 배열2, ...) → 가로로 합치기 (열 추가)
=VSTACK(배열1, 배열2, ...) → 세로로 합치기 (행 추가)
여러 시트의 데이터를 하나로 합칠 때 VSTACK이 유용해요.
=VSTACK(Sheet1!A2:C10, Sheet2!A2:C10, Sheet3!A2:C10)TEXTSPLIT - 텍스트 분할 (365)
10편에서 TEXTJOIN으로 텍스트를 합쳤다면, TEXTSPLIT은 그 반대예요.
=TEXTSPLIT(텍스트, [열구분자], [행구분자])=TEXTSPLIT("서울,부산,대구", ",")결과: 서울 | 부산 | 대구 (3개 셀에 자동 분할)
자주 하는 실수 / 주의사항
1. SEQUENCE 결과가 숫자로만 보이는 경우
SEQUENCE로 날짜를 생성했는데 숫자(시리얼 번호)로 보이면 셀 서식을 날짜로 변경하세요.
2. RANDARRAY는 재계산마다 값이 바뀜
F9를 누르거나 다른 셀을 편집할 때마다 랜덤값이 변해요.
고정이 필요하면 결과를 복사 → Ctrl+Alt+V → 값으로 붙여넣기.
3. HSTACK/VSTACK은 Excel 365 전용
2021 버전에서도 사용 불가한 경우가 있어요. 365 구독에서만 확실하게 지원됩니다.
관련 함수 안내
이번 편에서 다룬 함수들은 모두 동적 배열 기반이에요.
17편(FILTER/SORT/UNIQUE)과 29편(LET/LAMBDA)의 내용을 기반으로, 이번 편의 조합 패턴을 활용하면 복잡한 데이터 처리를 수식만으로 해결할 수 있습니다.
다음 글에서는 XLOOKUP 심화와 다중 조건 검색 패턴을 다룰 예정이에요.
XLOOKUP 중첩, 와일드카드 검색, 이진 검색 모드 등 고급 활용법입니다.
'엑셀' 카테고리의 다른 글
| 엑셀 XLOOKUP 심화 - 다중 조건 검색과 고급 활용 (0) | 2026.03.03 |
|---|---|
| 엑셀 LET LAMBDA 함수 사용법 - 수식 안에서 변수 선언하기 (0) | 2026.03.02 |
| 엑셀 SWITCH CHOOSE 함수 사용법 - 다중 조건 분기 (0) | 2026.03.02 |
| 엑셀 파워쿼리 기초 - 데이터 정제 자동화 입문 (0) | 2026.02.27 |
| 엑셀 단축키 빠른 실행 도구 모음 정리 - 작업 속도 올리기 (0) | 2026.02.27 |