본문 바로가기

엑셀

엑셀 SEQUENCE RANDARRAY 사용법 - 배열 생성과 함수 조합 패턴

반응형

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 중첩, 와일드카드 검색, 이진 검색 모드 등 고급 활용법입니다.

반응형