엑셀 RAND()함수 문의드립니다.
1~100까지의 자연수를 랜덤으로 출력하기 위해
"=INT(RAND()*100)+1" 함수를 사용하여 출력하였더니 중복값이 생성이 됩니다.
중복 안되게 하는 방법이나 다른 함수방법이라도 있을까요?
55글자 더 채워주세요.
1개의 답변이 있어요!
안녕하세요. 스타박스입니다.
1~100까지의 자연수를 랜덤으로 출력하기 위해 본문처럼
"=INT(RAND()*100)+1" 의 함수를 사용할 수도 있지만
보다 더 간단한 함수로
RANDBETWEEN()을 사용하여 두 숫자 사이에 있는 난수를 가져올 수가 있습니다.
"=RANDBETWEEN(1,100)" 이러면 1부터 100까지의 정수를 난수로 뽑아내는 함수입니다.
그런데 RAND() 함수를 쓰든 RANDBETWEEN() 함수를 쓰든 중복된 숫자는 발생합니다.
여기서 중복을 없애는 추가 함수로
IF( ) 함수와 COUNTIF( ) 함수 그리고 순환참조를 사용하여 랜덤으로 추출한 수가 2개 이상 되면
해당수가 없을 때 까지 =RANDBETWEEN(1,100) 수식을 계속 반복 계산하면 됩니다.
A1에서 A100 까지 1에서 100까지의 임의의 숫자(난수)를 중복없이 뽑는 수식으로
=IF(COUNTIF($A$1:$A$100,A1)=1,A1,RANDBETWEEN(1,100))
=IF(COUNTIF($A$1:$A$100,A2)=1,A2,RANDBETWEEN(1,100))
=IF(COUNTIF($A$1:$A$100,A3)=1,A3,RANDBETWEEN(1,100))
:
:
:
=IF(COUNTIF($A$1:$A$100,A100)=1,A100,RANDBETWEEN(1,100))
이렇게 하면 될겁니다.