이번시간에는 엑셀에서 랜덤 숫자 뽑기 방법에 대해 알아본다. 엑셀로 과제나 업무를 하다보면 임의의 숫자를 랜덤으로 생성하는 함수가 필요할 때가 있다. 이 랜덤 숫자 뽑기는 엑셀에서는 난수 함수 생성이라고 표현되며, 이 난수는 이벤트기획이나 무작위 추첨등에 주로 쓰인다.
먼저 랜덤 숫자는 난수라고 부르며, 엑셀에서 이 난수를 생성하거나 만드는 것은 간단한 함수를 통해 호출할 수 있다.
이 난수를 생성하는 함수는 아래와 같이 2가지가 있다.
1) =RAND() 함수 // 인자 필요 없음
2) =RANDBETWEEN(최소, 최대)
먼저 실제로 사용되는 화면을 보자.
1) RAND() 함수 사용 예제
위 사진처럼 RAND() 함수는 0에서 1사이의 숫자를 무작위로 생성한다.
하여 정수가 아닌 소수로 생성되며, 소수점 자릿수는 아래와 같이 [홈] -> 자릿수 아이콘으로 늘리거나 줄일 수 있다
하지만 이 RAND() 함수로 생성되는 숫자가 0 < X < 1 의 범위를 갖기 때문에 몇가지의 한계점이 있다.
(1) 무조건 소수점으로 생성된다. (소수점 자릿수를 아예 없애버리면 숫자가 반올림되어 0 과 1로만 표현된다)
(2) 원하는 범위를 설정할 수 없다 (무조건 0과 1사이의 범위로만 한정된다)
여기서 2번의 문제는 RAND() 함수에 원하는 최대값을 곱함으로써, 최대 범위를 만들수는 있다.
예를 들어 이런식이다. (최소값인 0에는 어떤 숫자를 곱해도 0임)
ex.1) 범위 0 < x < 10 : RAND() * 10 (최대값 10)
ex.2) 범이 0 < x < 50 : RAND() * 50 (최대값 50)
하지만 <=가 아닌 < 의 기호를 갖기 때문에 최소값과 최대값과 똑같은 숫자가 절대 나오지 못한다.
* 아 참고로 필자는 현직 엔지니어로, 10년 이상의 PC 노하우를 블로그, 유튜브로 올리고 있다.
PC 관련 문의를 100% 무료로 도와드리니까, 아래 SNS를 활용해보시기 바란다.
2) RANDBETWEEN(최소값, 최대값)
이러한 한계점을 한방에 해결할 수 있는 개선된 RAND() 함수가 바로 이것 RANDBETWEEN() 함수이다.
주요 특징을 설명드리고 화면을 보겠다
(1) 최소, 최대 범위를 한번에 설정할 수 있다
(2) 최소값, 최대값이 < 가 아닌, <= 기호를 갖기 때문에 해당 숫자까지 생성될 수 있다.
(3) RAND() 함수와는 달리, 모든 숫자가 정수로만 표현된다. (최소 최대값을 소수로 설정해도 소수는 무시된다)
필자는 1에서 100까지의 숫자.
즉, RANDBETWEEN(1,100) 이라고 작성했는데, 이 숫자를 원하는 최소 최대범위로 바꾸어 사용하면 된다
ex.1) 범위 10 ~ 50 : RANDBETWEEN(10,50)
ex.2) 범위 200 ~ 300 : RANDBETWEEN(200,300)
** 하지만 큰 문제가 있다. RAND(), RANDBETWEEN() 두 함수 모두 적용되는 문제이다.
이 두 함수는 고정된 값이 아닌, 랜덤 숫자 난수이기 때문에 값이 계속 변동된다.
해당 엑셀파일에서 어떤 작업이 일어날때 (특히 셀에 데이터가 입력되는 등 화면변화가 있을때)
엑셀파일을 껐다가 다시 켰을 때 등의 변동이 있을때이다.
따라서 원하는 난수 함수를 작성했다면, 아래와 같이 값을 고정적으로 복사, 붙여넣기 해줘야한다.
난수가 생성된 데이터 영역을 드래그하여 선택 후, 마우스 우클릭 - 복사를 해준다
그리고 난수가 생성되는 데이터 영역의 좌측 맨위의 셀을 클릭후, 마우스 우클릭 -> 붙여넣기 -> 빨간네모 아이콘을 클릭한다 (123이 써있는 아이콘 : 값만 복사 붙여넣기 하기)
댓글