티스토리 뷰
[엑셀] 랜덤함수(RAND 함수)로 난수 생성하는 법
커피 한 잔의 여유 2013. 3. 21. 07:05
[링크]메모리스트 엑셀 함수 정리 목록 및 엑셀 팁 정리 목록
난수(亂數, Random Number)는 무작위 숫자를 의미하며, 랜덤수라고도 한다. 난수는 규칙적이지 않아야 한다. 즉 이전에 나왔던 숫자를 이용해 다음의 숫자를 유추할 수 있으면 안된다.
난수는 일양 난수, 지수 난수, 프와송 난수, 정규 난수 등이 있다. 난수는 어떤 프로젝트에 대한 시뮬레이션에 많이 활용되며, 게임 등에서도 새로 생성되는 캐릭터의 종류나 생성 위치, 보상 금액 등을 정할때도 자주 사용된다.
주사위를 예로 들어 설명하면, 주사위는 던질 때마다 다른 숫자가 나온다. 물론 이전의 숫자와 동일한 숫자가 나오는 경우도 있지만, 어떤 규칙에 의해서 나온것도 아니며, 이전 숫자에 따라 다음 숫자가 정해지는 것도 아니다.
가위바위보도 마찬가지다. 이전에 나온 가위바위보에 따라 다음에 나올 가위바위보를 예측할 수 있는 것이 아니다. 다만 사람이 생각해서 내는 것이므로 상대방의 심리를 어느 정도 예측한다거나 상대방의 가위바위보 습관을 보면 이길 확률이 조금은 높아지게 된다.
컴퓨터의 경우 사람과는 달리 아무 숫자나 무작위로 낼 수가 없다. 그래서 만들어진 표가 난수표다.
난수표는 불규칙적인 숫자를 만들어내기 위해서 만들어진 표로, 0 과 1 사이의 숫자들이 무작위로 편성되도록 사전에 만들어놓은 표를 말한다.
난수 발생 공식
난수 발생 공식은 엑셀이나 C언어, 비주얼베이직 등 프로그래밍 언어에서도 동일한 공식이 적용된다.
주사위처럼 1부터 6까지의 난수를 만들고 싶은 경우
= INT(RAND() * 6) + 1 의 수식을 적용하면 된다.
엑셀에서는 난수 함수가 RAND() 이다. RAND() 함수는 0부터 1보다 작은 수를 무작위로 생성해 준다. 정확히 말하면 난수표에서 순차적으로 가져온다.
1행은 =RAND() 수식을 적용한 예로, 0 부터 1 사이의 숫자로 구성되어 있다.
2행은 =RAND() * 6 수식을 적용한 예로, 0 부터 6 보다 작은 숫자로 구성되어 있다.
3행은 =INT(RAND() * ) 수식을 적용한 예로 소숫점이 제거되었으며, 0 부터 5 로 구성되어 있다.
4행은 =INT(RAND() * 6) + 1 수식을 적용한 예로 소숫점이 제거되었으며, 1 부터 6 으로 구성되어 있다.
여기서 INT 함수는 소숫점을 제거해 주는 함수이다.
정리하면 RAND함수 뒤의 6 은 난수로 나타내고자 하는 숫자들의 범위이며, 숫자 1은 시작숫자가 된다.
여기서 6 을 10 으로 변경하면 숫자들의 범위가 10 이 되며, 100 으로 변경하면 숫자들의 범위가 100 이 된다.
시작 숫자 1 을 10 으로 변경하면 숫자가 10 부터 시작되며, 100 으로 변경하면 숫자가 100 부터 시작된다.
만약 범위의 계산이 복잡하여 계산이 어렵다면 범위에 해당하는 숫자 6의 자리에 (큰 수 - 작은 수 + 1)로 변경해 주면 된다.
위의 경우처럼 1 부터 6 의 경우는 (6 - 1 + 1)을 계산한 결과인 6 을 입력한 경우이다.
예를 들어 101 부터 130 까지의 난수를 생성하고 싶다면
=INT(RAND() * (130-101+1)) +101
으로 작성하면 된다.
정리하면 다음과 같다.
=INT(RAND() * (큰 수 - 작은 수 + 1)) + 시작 숫자
엑셀에서 난수는 무작위 숫자이므로 매 번 다른 숫자가 만들어진다.
바뀌는 숫자를 확인해 보는 방법 중 많이 사용하는 방법이 아무 글자(예를 들면 공백)나 입력하고 엔터를 치는 방법이다. 하지만 이 방법은 해당 셀에 빈 공백이 입력되므로 추천하고 싶은 방법은 아니다.
다른 방법으로 F2 키를 눌러서 셀 수정을 들어간 후 엔터를 치는 방법이다. 이 방법은 특정셀을 변경하지 않으므로 관계는 없지만 다음의 방법을 추천한다.
바로 자동계산 단축키인 F9 키이다. F9키를 누르면 셀의 변경없이 난수를 다시 생성할 수 있다.
엑셀을 사용하는 대부분의 유저가 자동계산 단축키인 F9키를 이용할 일이 없는 관계로 자동계산 단축키를 잘 모르고 있다.
자동계산은 대량의 데이터(10만 라인 이상의 데이터)에 복잡한 계산식이 상당히 많이 들어있는 경우에 사용하는 기능으로, 한 개의 셀만 변경해도 이에 따른 모든 셀을 계산하느라 오랜시간 기다려야 하는 경우 환경설정에서 수동계산으로 설정해 두고, F9키를 누른 경우만 모든 셀을 다시 계산하는 기능이다.
수동계산으로 변경하는 기능은 메뉴-수식-통합문서 계산-수동(엑셀 2010 기준)으로 변경하면 된다.
엑셀의 기본값은 자동계산으로 되어 있으며, 수동계산을 자동계산으로 변경하고자 한다면 메뉴-수식-통합문서 계산-자동 으로 변경하면 된다.
저는 위 상품을 소개하면서 포인트를 받았습니다.