아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
반반한금조169
반반한금조16923.04.24

엑셀 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))

    이렇게 하면 될겁니다.