엑셀 셀 범위에서 랜덤 값 추출하는 방법

2024. 6. 7. 23:13 / 서기랑

 엑셀에서 특정한 셀 범위 값을 무작위 랜덤으로 추출해야 하는 경우가 있다.

 이런 경우 랜덤 함수를 활용하면 되는데 로또 번호 같은 숫자 값이라면 값 자체를 랜덤 함수로 값을 생성하면 되지만 이미 셀에 작성되어 있는 값을 랜덤으로 추출하는 것이라면 방법은 약간 달라진다.

 

엑셀 셀 범위에서 랜덤 값 추출하기

1. 기본적인 방법.

 셀 범위에서 랜덤으로 값을 추출하는 기본적인 방법은 INDEX함수와 RANDBETWEEN 함수를 조합하는것이다.

 INDEX 함수는 범위에서 지정한 숫자에 해당하는 셀의 값을 가져오는 함수로 숫자를 지정하는 부분을 RANDBETWEEN 함수로 대체하면 셀 값을 랜덤 하게 추출할 수 있다.

 (ROWS 함수는 랜덤 값 생성 시 지정한 셀 범위의 수를 얻어오기 위해 사용한 것으로 그냥 숫자를 넣어도 된다)

=INDEX($A$1:$A$4,RANDBETWEEN(1,ROWS($A$1:$A$4)))

엑셀 셀 범위에서 랜덤 값 추출

2. 중복제거 하고 랜덤 값 추출하기.

 단순히 하나의 랜덤 값을 추출한다면 위 수식만 사용해도 별다른 문제는 없을 것이다.

 하지만 여러 값을 추출해야 한다면 중복값이 발생할 수 있는데 중복값을 제거하고 추출하고자 한다면 별도의 셀에 랜덤 값을 생성하고 중복 값을 제거하는 작업 후에 값을 추출해야 한다.

 

 먼저 추출할 셀 범위의 수만큼 랜덤 값을 생성하자.

 (생성 위치는 꼭 옆에 있을 필요는 없으며 단순히 RAND 함수로 생성해도 된다)

범위에 맞는 랜덤 값 생성

 랜덤 값을 생성했다면 값을 추출할 셀 범위와 생성한 랜덤 값 범위를 기준으로 아래의 수식을 넣으면 된다.

 수식을 작성할 때는 범위를 잘 확인해야 하는데 INDEX에는 추출 셀 범위, RANK 함수에는 생성한 랜덤 값 범위 그리고 COUNTIF 함수는 랜던 값 범위를 기준으로 조금 다르게 되어있다.
 (COUNTIF 함수 범위에는 $를 넣는 것을 특히 주의하자)

=INDEX($A$1:$A$4,RANK(B1,$B$1:$B$4)+COUNTIF($B$1:B1,B1)-1)

중복 없이 랜덤 값 추출

 

그 외 내용

- 중복을 제거 하고 랜덤 값을 추출하는 방법은 범위 안의 값을 무작위로 정렬하는 용도로도 활용이 가능하다.

 

- 이 모든 과정은 사실 매크로를 만들어 사용하는 게 더 간단할 수도 있다.

 물론 매크로를 만드는 것 자체가 어려운 일이 될 수 있지만 어쨌든 자주 사용한다면 매크로를 만드는 것도 고려해 보자.

 

- 2번의 중복 제거 방법은 RANK 함수를 사용하여 값의 순위를 구할 때 중복을 제거하는 방법과 랜덤 함수로 값을 생성할 때 중복 값을 제거하는 방법을 사용한 것으로 아래의 글을 참고하면 조금 더 자세한 설명을 볼 수 있다.

 엑셀 중복 없이 순위 구하는 방법

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