본문 바로가기

엑셀 & VBA

1-2. 숫자야구 난수 생성(randbetween)

 엑셀에서 난수를 만드는 방법은 다양하다. 대표적으로 두가지 함수가 있는데, RAND 함수와 RANDBETWEEN 함수이다.

 

 RAND 함수는 0부터 1 사이의 난수를 만드는 함수이다. 0부터 1사이의 난수를 2부터 10 사이의 난수로 바꿔주는 간단한 수식을 이용하면 2부터 10사이의 난수를 얻을 수 있다. 8*RAND()를 해주게 되면 0부터 8사이의 난수로 바뀌게 되며, 여기에 2를 더해주게 되면 2부터 10사이의 난수를 얻게 되는 것이다. 식으로 표현하면 =2+8*RAND()가 된다. 실수가 아닌 정수나 자연수를 얻고 싶다면 반올림 함수를 추가적으로 사용해주면 정수를 얻을 수 있다.

 

 RANDBETWEEN 함수는 지정한 범위 내에서 무작위로 정수를 만들어주는 함수이다. 활용은 RNADBETWEEN(1,10)이런식으로 하게 되는데, 이는 1부터 10 사이의 임의의 정수를 뜻한다.

 

랜덤 함수

 숫자야구를 만들때 사용한 함수는 아래에 있는 RANDBETWEEN함수이다. 난수는 0으로 시작하지 않으며(ex. 084) 각 자리의 숫자가 중복하지 않아야 하므로 난수의 범위는 123 부터 987이다. 사용된 함수는 RANDBETWEEN(123,987)이다. 그러나 이 범위 안에는 222같은 숫자가 중복되는 자연수들이 존재한다. 이런 자연수들을 제외하려면 우선 숫자를 각 자리수 별로 나누는 과정이 필요한데, 이에 대해서는 다음 글에서 다루도록 하겠다.

 

 엑셀에는 자동계산이라는 기능이 있다. 기본 설정으로는 자동계산이 켜져있는데, 숫자야구를 만들때는 이 자동계산이 그다지 도움이 되지 않을 것이다. 자동계산 기능은, 다른 셀에 무슨 업데이트가 일어나면 함수가 지정된 셀에 자동으로 그 결과가 업데이트 되는 기능이다. 난수 생성함수가 A1에 있다고 한다면, 다른 셀에 값들을 입력할 때마다 A1은 새로운 난수로 업데이트가 된다. 숫자야구 게임의 특성상 숫자를 계속 찍는 과정이 필요한데, 그때마다 값이 업데이트가 되면 정상적으로 게임이 진행되지 않는다. 이 게임을 위해 자동계산 기능을 끌 필요가 있다.

 

https://volttexture.tistory.com/entry/%EC%97%91%EC%85%80-%EC%88%98%EC%8B%9D-%EC%9E%90%EB%8F%99-%EA%B3%84%EC%82%B0-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95

 

엑셀 수식 자동 계산 설정 방법

엑셀 수식 자동 계산 ON/OFF 방법 [사용환경 : 엑셀 2019버전] 일단 엑셀에서 사용되는 수식 자동 계산이 무엇인지 알 필요가 있는데요. 기본적으로 엑셀은 셀 값에 변화가 생길경우 자동으로 수식

volttexture.tistory.com

 자동 계산을 끄는 방법은 위 블로그를 참고하면 알 수 있다.

 

 VBA라는 엑셀의 기능을 활용한다면, 이런 문제를 방지할 수 있는데, 이는 1-5번 글을 참고하면 좋을 것이다.

'엑셀 & VBA' 카테고리의 다른 글

1-4. 숫자야구 - 중복된 확인 (if)  (0) 2021.06.01
1-3. 숫자야구 자리수 별로 숫자 뽑아내기 (Mod)  (0) 2021.05.28
1-1. 숫자야구 만들기  (0) 2020.12.28
1. 숫자야구  (0) 2020.12.27
한셀 & VBA 게시판 설명  (0) 2020.12.27