엑셀 중복 없는 난수 쉽게 구하는 방법

2022. 4. 30. 20:20 / 서기랑

 엑셀은 rand와 randbetween이라는 함수를 통해 난수를 구할 수 있다.

 하지만 rand 함수의 경우 기본이 실수로 소수점으로 긴 숫자가 나타나 때문에 바로 사용하기 힘들고 randbetween의 경우 정수로 나타나긴 하지만 난수 중 중복 값이 나타나는 경우가 많은데 로또 번호 같은 난수를 생성하고 싶지만 중복 값이 문제가 된다면 다음의 방법을 이용해 보는 것은 어떨까 한다.

 

엑셀 중복 없는 난수 쉽게 구하기

1. 난수 생성하기.

 우선 생성하고자 하는 난수 범위 만큼 rand 함수를 이용하여 난수를 생성 하자.

 예를 들어 1~10 범위 까지 10개의 난수가 필요하다면 별다른 작업 없이 10개 셀에 난수를 생성하면 된다.

 (rand 함수의 난수 값은 실수지만 신경 쓰지 말고 숫자만큼 생성하자.)

rand 난수 생성

2. rank 함수 사용하기.

 생성한 난수 범위를 기준으로 rank 함수를 적용해보자.

 난수를 기준으로 순위를 구했기 때문에 순위 값 자체가 난수가 된다고 보면 되며 이를 활용하면 간단한 방법으로 난수를 생성할 수 있다.

난수에 rank 순위 구하기

 rand를 사용하여 난수를 만들게 되면 광범위한 범위로 난수 생성되기 때문에 중복 값은 거의 발생하지 않는다.

 하지만 그럼에도 아주 간혹 중복값이 발생하기도 하는데 이런 낮은 확률의 중복 값조차 생성되는 것을 방지하고자 한다면 rank함수를 countif 함수와 함께 아래와 같은 방식으로 적용하면 된다.

=RANK(A1,$A$1:$A$13) + COUNTIF($A$1:A1,A1)-1

 참고로 수식에서 COUNTIF의 범위 중 뒷 부분의 A1과 대상의 A1은 같이 변경되어야 한다.

 해당 수식의 자세한 설명은 바로 전에 아래의 글을 참고하면 도움이 될 것이다.

 중복없이 rank 순위 구하기

 

4. 응용하기.

 이렇게 만든 수식으로 1~10과 같은 범위가 아닌 51~60과 같은 범위를 지정하고자 한다면 결과 값에 범위 값만큼 +해주면 된다.

 (51~60 범위의 난수를 원한다면 수식 마지막에 +50을 해주면 된다는 것)

난수 순위 응용하기

 

그 외 내용

 해당 난수 생성 방법은 단순한 만큼 광범위한 수치의 난수를 만드는 경우에는 문제가 될 수 있다.

 하지만 숫자가 많지 않다면 쉽고 단순한 방법으로 중복값 없이 난수를 생성할 수 있으니 알아두면 꽤나 큰 도움이 될 것이다.