엑셀 함수들을 활용한 로또 번호 생성기 만드는 방법

꿈을꾸는 파랑새

어제 간단하게 해외친구들과 채팅을 하던 중 갑자기 로또 이야기가 나와서 이렇게 저렇게 이야기하다가 해당 방법을 배워서 한번 글을 적어 보게 되었습니다. 아마도 우리 생활에서 가장 익숙하게 사용을 하는 것 중에서 엑셀이 있을 것입니다. 물론 다른 무료 오피스 프로그램에서 스프레시트라는 이름으로 알려졌습니다. 일단 저는 LibreOffice로 만들어 보았습니다. 물론 MS에서 제공하는 엑셀을 사용해도 문제가 없습니다. 먼저 확인을 하고 가야 하는 것이 난수와 엑셀의 함수 중 하나인 RAND일 것입니다. 난수라는 것이 무작위로 만들어진 수열을 이면 RAND는 임의의 숫자를 생성하게 하여 주고 그리고 RAND는 임의의 진수를 만듭니다.

그리고 RANDBETWEEN을 사용하는 방법이 있습니다. RANDBETWEEN는 두 값 사이의 있는 정수를 난수로 반환하는 구실을 합니다. 일단 필요한 것은 45개의 숫자 배열 생성, 난수 생성, 고유번호에 대한 기준, 6개의 고유번호 생성일 것입니다. 그러면 아래와 같이 만들 수가 있을 것입니다.

그리고 나서 여기서 사용할 함수는 RANDBETWEEN 입니다. 난수를 생성해야 하므로 1~45 사이의 난수를 만들면 됩니다. 그러면 공식은 =RANDBETWEEN(1,45)가 될 것입니다. 여기서 해당 RANDBETWEEN(1,45)을 입력을 했는데 갑자기 아래와 같이 1900년 1월21일이라고 나오는 경우가 있습니다.

이때 해결 방법은 간단합니다. 먼저 셀 서식 지정->숫자로 이동합니다. 보시면 범주 항목이 보일 것인데 여기서 날짜 부분을 돼 있는 것을 볼 수가 있습니다. (물론 다른 범주로 돼 있을 수가 있습니다.)해당 부분을 개수->General을 선택해줍니다. 그리고 확인을 눌러주면 됩니다. 그리고 나서 자동 칸을 채우려고 1번 셀에서 오른쪽 아래 모서리로 이동하면 +모양으로 변경될 것입니다. 해당 부분을 통해서 드래그해주고 해당 칸들을 채워주면 됩니다.

그런데 여기서 문제가 발생하는 것을 볼 수가 있습니다. 아래에 보시는 거와 마찬가지로 RANDBETWEEN에서는 중복숫자가 발생한다는 것입니다. 그럼 이런 중복문제를 피하고자 새로 생성을 해보겠습니다.

일단 기존에 있는 부분에서 임의의 장소에 1~45 그리고 난수를 위한 공간 그리고 RANK 함수를 사용하기 위한 공간을 만들어 줍니다. 그러면 아래와 같이 만들 수가 있습니다. 여기서 1~45까지 만들고 1~45 다음에는 난수를 만들어 주면 됩니다. 여기서 난수를 만들려고 RAND 함수를 사용할 것입니다. 그러면 =RAND()이라고 만들어 주면 소수가 생기는 것을 볼 수가 있고 여기서 소수 순위를 알 수 있고 RANK 함수를 통해서 순위를 정해줍니다.

여기서 RANK 함수를 단순하게 사용하면 중복이 되는 것을 확인할 수가 있는 MS 엑셀을 사용하시는 분들은 F4를 눌러주고 LibreOffice를 사용하시는 분들은 Shift+F4를 눌러주면 US 달러 아이콘인 $마크가 들어가는 것을 통해서 RANK가 중복되는 것을 피할 수가 있습니다. 그럼 여기서 생긴 순위를 이제 앞서 만든 표에 무작위로 숫자가 들어가게 해야 할 것입니다.

이때에는 VLOOKUP를 사용합니다. 사용 방법은 기준이 되는 아래에 표시는 화면에서 숫자 1인 J2 그리고 배열을 해당 숫자 난수인 난수와 그리고 랭크를 범위를 지정해주면 됩니다. 이런 방법으로 귀찮지만, 수동으로 입력을 해주면 됩니다.

여기서 굳이 순서는 자신이 하고 싶은 1~45를 골라잡아서 각각 빈칸에 해당 함수를 적용시켜줍니다. 해당 VLOOKUP를 사용을 방법을 간단하게 예를 들면 =VLOOKUP(J3,K3:L3,2), 두 번째는 =VLOOKUP(J3,K3:L3,2)씩으로 채워주면 됩니다. 그리고 여기서 간단하게 F9 버튼을 눌러줄 때마다 새로운 값들이 들어가는 것을 확인할 수가 있습니다.

이 글을 공유합시다

facebook twitter googleplus kakaostory naver

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.

  1. Favicon of https://blue2310.tistory.com 드자이너김군 2015.04.08 13:45 신고

    오~ 요즘 로또 구입하고 있는데, 한번 활용해 봐야 겠네요 +_+