엑셀에서 무작위 데이터를 생성해야 할 때, RANDBETWEEN
과 RANDARRAY
함수는 여러분의 강력한 도구가 될 수 있습니다. 단순한 난수 생성부터 복잡한 시뮬레이션 데이터 구축까지, 이 두 함수를 제대로 이해하고 활용한다면 작업 효율을 극대화할 수 있습니다. 오늘은 이 두 함수의 기본부터 시작해, 시너지를 발휘하는 다양한 활용 팁까지 상세히 알아보겠습니다! 🚀
1. RANDBETWEEN & RANDARRAY: 개별 함수 파헤치기
본격적인 활용 팁에 앞서, 두 함수의 기본적인 사용법을 확실히 이해하는 것이 중요합니다.
1.1 RANDBETWEEN 함수: 기본기 다지기 🎲
RANDBETWEEN
함수는 지정된 두 정수(하한값, 상한값) 사이의 무작위 정수를 반환합니다.
- 구문:
=RANDBETWEEN(bottom, top)
bottom
: 반환될 수 있는 가장 작은 정수입니다.top
: 반환될 수 있는 가장 큰 정수입니다.
- 특징:
- 단일 값 반환: 한 번에 하나의 무작위 정수만 반환합니다.
- 휘발성 함수: 워크시트가 변경되거나 다시 계산될 때마다 값이 변경됩니다.
- 예시:
=RANDBETWEEN(1, 100)
: 1부터 100 사이의 무작위 정수를 생성합니다.=RANDBETWEEN(-50, 50)
: -50부터 50 사이의 무작위 정수를 생성합니다.
1.2 RANDARRAY 함수: 배열의 마법사 🔢
RANDARRAY
함수는 동적 배열 함수로, 지정된 수의 행과 열에 걸쳐 무작위 숫자의 배열을 반환합니다. 엑셀 365 및 최신 버전에서만 사용 가능합니다.
- 구문:
=RANDARRAY([rows], [columns], [min], [max], [integer])
rows
(선택 사항): 반환할 행의 수입니다. 생략하면 1이 됩니다.columns
(선택 사항): 반환할 열의 수입니다. 생략하면 1이 됩니다.min
(선택 사항): 반환될 수 있는 가장 작은 값입니다. 생략하면 0이 됩니다.max
(선택 사항): 반환될 수 있는 가장 큰 값입니다. 생략하면 1이 됩니다.integer
(선택 사항):TRUE
로 설정하면 정수만 반환하고,FALSE
로 설정하면 0과 1 사이의 부동 소수점 값을 반환합니다. 생략하면FALSE
가 됩니다.
- 특징:
- 배열 반환: 한 번에 여러 개의 무작위 값을 생성하여 인접한 셀에 자동으로 채워집니다(스필).
- 범위 및 정수 지정 가능:
min
,max
,integer
인수를 통해RANDBETWEEN
과 유사하게 정수 범위 지정이 가능합니다. - 휘발성 함수:
RANDBETWEEN
과 마찬가지로 워크시트가 변경될 때마다 값이 변경됩니다.
- 예시:
=RANDARRAY()
: 0과 1 사이의 무작위 소수 한 개를 반환합니다.=RANDARRAY(5)
: 0과 1 사이의 무작위 소수 5개를 한 열에 반환합니다.=RANDARRAY(3, 2)
: 3행 2열의 0과 1 사이 무작위 소수 배열을 반환합니다.=RANDARRAY(5, 1, 1, 100, TRUE)
: 1부터 100 사이의 무작위 정수 5개를 한 열에 반환합니다. (이것이 사실상RANDBETWEEN
의 배열 버전입니다!)
2. RANDBETWEEN & RANDARRAY 조합 활용 팁
RANDBETWEEN
의 특정 기능(정수 범위 지정)은 RANDARRAY
의 min
, max
, integer=TRUE
인수를 통해 완벽하게 대체되고 확장될 수 있습니다. 따라서 “조합”이라기보다는 RANDARRAY
의 강력한 기능을 활용하여 RANDBETWEEN
으로 할 수 있는 작업을 훨씬 더 효율적으로 수행하는 팁에 가깝습니다.
2.1 N개의 무작위 정수 생성: RANDARRAY 하나로 끝!
RANDBETWEEN
으로 여러 개의 무작위 정수를 만들려면 함수를 복사하여 붙여넣거나 자동 채우기 핸들을 끌어야 했습니다. 하지만 RANDARRAY
를 사용하면 한 번의 수식 입력으로 원하는 만큼의 정수를 생성할 수 있습니다.
- 시나리오: 1부터 100까지의 시험 점수 20개를 무작위로 생성하고 싶을 때.
- 방법:
RANDBETWEEN
방식:=RANDBETWEEN(1, 100)
을 입력하고 20개 셀로 드래그.RANDARRAY
방식:=RANDARRAY(20, 1, 1, 100, TRUE)
를 한 셀에 입력.- ➡️ 20개의 행, 1개의 열에 1부터 100까지의 무작위 정수 배열이 자동으로 스필됩니다.
- 장점: 훨씬 빠르고 간편하며, 배열 수식이므로 관리하기 용이합니다.
2.2 무작위 날짜 및 시간 생성 📅
엑셀에서 날짜는 숫자로, 시간은 소수점 이하 값으로 저장됩니다. 이 특성을 활용하면 RANDARRAY
로 무작위 날짜나 시간을 쉽게 생성할 수 있습니다.
- 시나리오: 2023년 1월 1일부터 2023년 12월 31일까지의 무작위 날짜 10개를 생성하고 싶을 때.
- 방법:
- 날짜는
DATE()
함수로 숫자로 변환할 수 있습니다. =RANDARRAY(10, 1, DATE(2023,1,1), DATE(2023,12,31), TRUE)
- ➡️ 이 수식을 입력한 후, 셀 서식을 ‘날짜’로 변경하면 무작위 날짜가 표시됩니다.
- 날짜는
- 시간 생성:
min
,max
를 0과 1 사이로 설정하고integer
를FALSE
로 설정합니다.=RANDARRAY(5, 1, 0, 1, FALSE)
- ➡️ 이 수식을 입력한 후, 셀 서식을 ‘시간’으로 변경하면 무작위 시간이 표시됩니다.
- 날짜와 시간 동시 생성:
integer
를FALSE
로 두고 날짜 숫자를min
,max
로 사용합니다. =RANDARRAY(5, 1, DATE(2023,1,1), DATE(2023,1,31), FALSE)
- ➡️ 셀 서식을 ‘날짜 및 시간’으로 변경하면 2023년 1월 중 무작위 날짜 및 시간이 생성됩니다.
2.3 중복 없는 무작위 숫자 생성 (로또 번호, 순서 픽) 🎰
RANDARRAY
는 무작위 값을 생성하지만, 기본적으로 중복이 발생할 수 있습니다. 특정 범위 내에서 중복 없이 무작위 숫자를 뽑거나, 목록을 무작위로 섞을 때는 SORTBY
및 SEQUENCE
함수와 함께 사용합니다.
- 시나리오: 1부터 45까지의 숫자 중 중복 없이 6개의 로또 번호를 뽑고 싶을 때.
- 방법:
SEQUENCE(45)
: 1부터 45까지의 숫자를 순서대로 생성합니다.RANDARRAY(45)
: 45개의 임의의 정렬 기준 값을 생성합니다.SORTBY(SEQUENCE(45), RANDARRAY(45))
:SEQUENCE
로 만든 숫자를RANDARRAY
로 만든 임의의 기준에 따라 정렬하여 무작위로 섞습니다.TAKE(SORTBY(SEQUENCE(45), RANDARRAY(45)), 6)
: 섞인 숫자 중 위에서 6개만 가져옵니다.- 수식:
=TAKE(SORTBY(SEQUENCE(45), RANDARRAY(45)), 6)
- 시나리오: 특정 목록(예: 참가자 이름)을 무작위로 섞어 순서를 정하고 싶을 때.
- 방법:
- 참가자 목록이 A1:A5에 있다고 가정합니다 (예: 사과, 바나나, 체리, 딸기, 수박).
ROWS(A1:A5)
: 목록의 행 개수를 가져옵니다 (이 경우 5).RANDARRAY(ROWS(A1:A5))
: 목록 개수만큼 임의의 정렬 기준 값을 생성합니다.SORTBY(A1:A5, RANDARRAY(ROWS(A1:A5)))
: A1:A5 목록을 무작위 기준에 따라 정렬합니다.- 수식:
=SORTBY(A1:A5, RANDARRAY(ROWS(A1:A5)))
- ➡️ 이 수식을 입력하면 A1:A5에 있는 항목들이 무작위 순서로 나열됩니다.
2.4 특정 목록에서 무작위 값 선택 ✅
INDEX
또는 CHOOSEROWS
함수와 RANDBETWEEN
또는 RANDARRAY
를 조합하여 특정 목록에서 무작위 값을 선택할 수 있습니다.
- 시나리오 1: 목록에서 한 개의 무작위 값 선택
- 과일 목록: {“사과”;”바나나”;”체리”;”딸기”}
- 수식:
=INDEX({"사과";"바나나";"체리";"딸기"}, RANDBETWEEN(1,4))
- ➡️ 1부터 4 사이의 무작위 정수를 뽑아 해당 순서의 과일을 반환합니다.
- 시나리오 2: 목록에서 여러 개의 무작위 값 선택 (중복 허용)
- 과일 목록이 A1:A5에 있다고 가정합니다. (사과, 바나나, 체리, 딸기, 수박)
- 수식:
=CHOOSEROWS(A1:A5, RANDARRAY(3,1,1,ROWS(A1:A5),TRUE))
- ➡️ A1:A5 목록에서 3개의 행을 무작위로 선택합니다.
RANDARRAY(3,1,1,ROWS(A1:A5),TRUE)
는 1부터 목록의 총 개수까지의 무작위 정수 3개를 반환합니다.
- ➡️ A1:A5 목록에서 3개의 행을 무작위로 선택합니다.
- 시나리오 3: 목록에서 여러 개의 무작위 값 선택 (중복 없음) – 고급!
- 위 2.3의 중복 없는 순서 섞기 +
TAKE
또는CHOOSEROWS
를 활용합니다. - 과일 목록이 A1:A5에 있다고 가정합니다. 이 중에서 3개를 중복 없이 뽑고 싶을 때.
- 수식:
=TAKE(SORTBY(A1:A5, RANDARRAY(ROWS(A1:A5))), 3)
- ➡️ 목록을 무작위로 섞은 후, 위에서 3개만 가져와 중복 없는 무작위 선택을 구현합니다.
- 위 2.3의 중복 없는 순서 섞기 +
3. 주의사항 및 성능 팁 ⚠️
RANDBETWEEN
과 RANDARRAY
는 매우 유용하지만, ‘휘발성 함수’라는 중요한 특성을 가지고 있습니다.
- 휘발성 함수 (Volatile Functions)란?
- 워크시트의 어떤 셀이든 변경되거나, 파일이 열리거나, 강제로 재계산(F9)될 때마다 함수가 다시 계산되어 값이 변경됩니다.
- 이는 데이터를 테스트하거나 시뮬레이션할 때 매우 편리하지만, 의도치 않게 값이 계속 바뀌는 문제가 발생할 수 있습니다.
- 해결책:
- 원하는 무작위 값을 얻었다면, 해당 값을 복사(Ctrl+C)한 다음, 선택하여 붙여넣기 > 값(Ctrl+Alt+V, V)을 사용하여 값을 고정할 수 있습니다. 이렇게 하면 무작위 함수 대신 고정된 숫자만 셀에 남게 됩니다.
- 성능:
- 매우 큰 데이터셋에
RANDBETWEEN
또는RANDARRAY
를 사용하면 워크시트가 변경될 때마다 전체 재계산이 일어나 성능 저하가 발생할 수 있습니다. 필요한 경우에만 사용하고, 값을 고정하여 성능 문제를 방지하세요.
- 매우 큰 데이터셋에
결론 🎉
RANDBETWEEN
과 RANDARRAY
함수는 엑셀에서 무작위 데이터를 생성하고 조작하는 데 있어 핵심적인 도구입니다. 특히 RANDARRAY
는 RANDBETWEEN
의 기능을 흡수하며 배열 처리 능력까지 갖추어 훨씬 강력한 유연성을 제공합니다.
오늘 배운 팁들을 활용하여 테스트 데이터 생성, 시뮬레이션 모델 구축, 로또 번호 뽑기, 팀 순서 정하기 등 다양한 엑셀 작업을 더욱 효율적으로 수행해 보세요! 직접 예시를 따라 해보면서 손에 익히는 것이 가장 중요합니다. 궁금한 점은 언제든지 댓글로 남겨주세요! Happy Excelling! 💻✨ D