Appia의 IT세상

엑셀[Excel] 무작위 수(난수) 발생 시키기(RAND, RANDBETWEEN, RANDARRAY) 본문

IT_OS_ETC../[IT]Excel

엑셀[Excel] 무작위 수(난수) 발생 시키기(RAND, RANDBETWEEN, RANDARRAY)

Appia 2020. 5. 14. 07:11
반응형

이번 포스팅은 무작위 (난수) 발생시키는 방법에 대해서 살펴보고자 합니다. 실제 프로그래밍에서 Rand함수를 이용하는데, 엑셀에서도 비슷합니다. 그래서 이번에는 무작위 , 난수를 발생하는 함수에 대해서 한번 살펴보고자 합니다.

 

난수를 발생시키는 함수는 3가지가 있습니다. 그럼 각각에 대해서 살펴보도록 하겠습니다.

RAND() : 0~ 1 사이에서 무작위 (난수) 생성합니다.

RANDBETWEEN(Top, Bottom) : Top Bottom사이에서 무작위 (난수) 생성합니다.

RANDARRAY(,, 최소값, 최대값, 정수여부) : 최소값 최대값 사이에서의 정수 여부를 확인하고 행열에 맞게 무작위 (난수) 생성합니다.

 

그럼 각각 살펴보도록 하겠습니다.

 

RAND()

RAND()함수의 경우 0~1사이의 소수를 무작위로 생성합니다. 위의 인자 값이 없습니다. 그럼 한번 살펴보겠습니다. 그림에 보이는 바와 같이 다음의 함수를 입력합니다. 

=RAND()

RAND()함수 예시

그럼 다음과 같은 결과가 나옵니다.

RAND()함수 예시 결과

그럼 의문을 한번 가집니다. 과연 정수를 만들 수는 없을까? 있습니다. 다음의 식을 한번 참조해보도록 하겠습니다. 

=INT(RAND()*100) 

RAND함수를 이용한 정수 무작위 수 출력

그럼 다음과 같은 결과가 나옵니다.

RAND함수를 이용한 정수 무작위 수 출력 결과

즉, 위의 식은 0~ 1사이에 숫자가 나오기 때문에 나온 수에 100을 곱하고 이를 INT함수를 이용해서 정수로 변경합니다. 실제 제가 100을 곱한것은 그냥, 1~100사이의 값을 출력하기 위한것이고 사용자에 마음에 따라 다음의 값을 조정하셔도 됩니다.  

 

RANDBETWEEN(Top, Bottom)

다음의 특정 범위 안에서 값을 무작위로 추출하고자 할 때 사용하는 값입니다. Top, Bottom의 경우 특정 셀을 지정하셔도 되고, 아님 직접 값을 입력해도 됩니다. 그럼 다음 예시를 각각 살펴보겠습니다. 

 

셀을 참조했을 경우)

=RANDBETWEEN(B3,C3)

RANDBETWEEN예시 셀참조

값을 직접 입력했을 경우)

=RANDBETWEEN(0,100)

RANDBETWEEN예시 값 직접입력

위와 같이 적용하여 특정 범위내에서 값을 추출할 수도 있습니다. 

 

RANDARRAY(,, 최소값, 최대값, 정수여부)

이번에는 매트릭스 구조에서의 난수를 생성해보도록 하겠습니다. 여기에서는 조금 인자값이 복잡합니다. 그럼 다음 RANDARRAY함수에 인자에 대해서 간단히 이야기 해보겠습니다. 

 

RANDARRAY(,, 최소값, 최대값, 정수여부)

행 - 행의 크기 (필수값)

열 - 열의 크기 (필수값)

최소값, 최대값 - (옵션값, 미입력시 최소값 - 0, 최대값 - 1) 

정수 여부 - TRUE : 정수, FALSE : 소수 

- 최소값 최대값을 미입력시 입력 불가, 최소값 최대값을 입력하더라도 생략할 수 있음. 기본은 FALSE(소수 표현)

 

그럼 간단히 다음 예제를 살펴 보겠습니다. 

간단히 3x3의 0~ 10 사이에 소수 기반의 무작위 수(난수)를 생성해보도록 하겠습니다. 

 

=RANDARRAY(3,3,0,10,FALSE)

RANDARRAY 입력 예시

위의 입력 예시를 실행해보면 다음과 같이 나옵니다. 

RANDARRAY 입력 예시 결과

물론, 최소값, 최대값은 위에서 RANDBETWEEN에서 적용했듯이 셀을 바탕으로 적용이 가능합니다. 

 

이번포스팅에서는 무작위 수(난수)를 발생하는 방법에 대해서 살펴봤습니다. 이를 바탕으로 로또 추천 번호나 만들어 볼까 하는 생각도 해봅니다. 혹 궁금하시거나 문의 사항 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

반응형
Comments