엑셀 랜덤함수 RAND와 RANDBETWEEN를 이용한 랜덤 추첨기...
이름 : Ruby
조회수 : 914

안녕하세요. 랜덤추첨기 시월의일상입니다 :)지​난번에 네이버 원판돌리기에 대한 포스팅을 작성한 적이 있습니다. 간단하게 랜덤으로 추첨을 위한 방법으로 상당히 효율적이지만, 문제는 넣을 수 있는 옵션의 수가 너무 적다는데에 있습니다. 또한 당첨되는 수가 1 개로 제한된다는 것도 하나의 단점이죠.​그래서 대량의 데이터들 중, 몇 개를 임의로 추려내기 위해서는 보통 엑셀 랜덤함수를 이용한 랜덤 추첨기를 많이들 활용하고 있는데요. 오늘은 이 때 사용되는 rand와 randbetween 함수들의 사용법과 차이점에 대해 알아보고 추첨 프로그램을 랜덤추첨기 만드는 방법까지 알아보겠습니다.​​rand &randbetween​rand와 randbetween은 모두 무작위의, 난수 하나를 반환해주는 함수들입니다. 차이점이라면 rand()는 입력받는 인자들 없이 0에서 1사이의 실수중의 하나를 소수점 자리까지 포함하여 추출해주며 randbetween(A, B)는 A와 B의 범위 내에 속하는 수 하나를 뽑아준다는 점이죠.​소수점 자리를 지정하지 않을시 두가지 함수는 위와 같은 결과를 보여줍니다. randbetween의 인자는 앞이 최저, 뒤가 최고값이 들어가야 오류가 발생하지 않으며, 셀의 좌표를 입력하여 영역을 지정하는 것도 가능합니다.(예: =RANDBETWEEN(A2, A20) )​​그리고 랜덤추첨기 이 엑셀 랜덤함수들의 특이사항이 있다면 키를 눌러 시트 재계산을 실행할때 마다 값이 변화한다는 것입니다. 이는 장점이 될 수도, 단점이 될 수도 있겠죠.추첨용 시트​이제 위에서 배운 내용을 토대로 간단한 순위 추첨용 시트를 만들어 보겠습니다.​​우선 위와 같은 신청목록이 있다고 합시다. 그리고 우리는 이 중에서 1명 또는 N명을 무작위로 뽑아야 하는 상황입니다. 사실 1명을 선정하는 것은 RANDBETWEEN 함수를 사용하면 간단하게 해결됩니다.​​그리고 추첨 결과를 표시할 셀에 다음과 같이 랜덤추첨기 입력하면 하나의 값을 반환해줍니다. 물론 F9를 누를때 마다 나오는 값은 달라집니다.=RANDBETWEEN(A2, A17)그렇다면 이 중에서 3명을 선발해야 한다면 어떻게 해야 할까요?​​우선 신청자들의 순위를 매기기 위한 랜던값 하나가 필요합니다. 그래서 '랜덤값'이라는 C열을 추가하고 여기에 난수들을 대입할 예정입니다. 이때, rand나 randbetween 중 아무 것이나 사용해도 상관없지만 between의 경우 중복값이 나올 확률이 높기 때문에, 필자는 =RAND()를 사용하였습니다.​​전체 영역에 같은 함수를 입력하기 위해서는 먼저 영역을 선택하여 =rand()를 입력한 뒤, 랜덤추첨기 마지막에 엔터가 아닌 ;를 눌러 선택된 모든 셀에 동일한 데이터를 넣을 수도 있고, 하나의 셀에만 입력한 뒤, 영역을 넓혀 주는 방법도 있습니다.​​이제 이 수치들을 =RANK(기준값, 영역, 정렬방식) 함수를 이용하여 순위를 매겨보겠습니다. RANK는 특정 영역내에서 지정된 값이 몇번째인지 반환해주는 기능을 가지고 있습니다. 만약 C2에 위치한 홈랜더의 값이 C2 ~ C17에 있는 값들 중 몇 번째 인지 알고 싶다면 다음과 같이 사용하면 됩니다.=RANK(C2, $C$2:$C$17, 0)랜덤값이 들어있는 랜덤추첨기 C2:C17을 기준으로 하고, 마지막 인자를 '0'으로 주어서 큰 값부터 내림차순으로 정렬되도록 하였습니다.​​그리고 마찬가지로 '순번'의 모든 셀에 해당 수식을 적용 해주었습니다. 이제 1위 부터 16위 까지 순위가 가려졌습니다. 그러면 여기서 상위 3명을 추려봐야겠죠.​​여기에서는 VLOOKUP 함수가 사용됩니다. 먼저 1,2,3 을 순서대로 E2,E3,E4 셀에 입력해줍니다. 이 1,2,3 을 기준으로 값을 찾아올 예정입니다.​그리고 이름이 들어갈 F2를 선택한 뒤, =VLOOKUP(값이 들어갈 셀, 값을 찾을 영역, 가져올 열의 순번, 검색 랜덤추첨기 방법) 을 적용하여 다음과 같이 입력해주었습니다.=VLOOKUP(E2, $A$2:$C$17, 2, FALSE)이렇게 하면 A2:C17에 해당하는 범위에서 E2의 데이터와 일치하는 값을 가진 행을 찾아서 2번째 열의 데이터 즉 A, B, C 세 개의 열 중, 두 번째인 B열의 '이름'을 가져오라는 뜻입니다. VLOOKUP의 조금 더 자세한 사용방법은 여기에서 확인해볼 수 있습니다.​​이것도 역시 F2부터 마지막 등수가 있는 행 까지 적용해주었습니다. 이제 1등부터 3등 까지가 결정되었습니다.​그런데 아무래도 셀들이 변화될때 마다 등수가 랜덤추첨기 바뀌다 보니 신용도가 떨어지죠. 그래서 이것을 순위 추첨기로 사용하기 위해서는 랜덤값이 들어가는 'C열'을 제외한 나머지는 모두 세팅해두고 가장 마지막에 랜덤값을 채워주면 됩니다.​​물론 스크립트로 자동화 해둔 엑셀 프로그램들을 사용하면 좋겠지만, 이렇게 엑셀 랜덤함수만으로도 간단하게 랜덤 추첨기를 만들어 볼 수 있습니다.오늘은 엑셀의 rand와 randbetween의 사용법과 차이점을 알아보고 이를 이용하여 간단하게 구현할 수 있는 추첨기도 만들어 보았습니다.​그럼 여러분의 오피스 라이프에 도움이 되었길 바라며, 이만 줄이겠습니다. 감사합니다 :)​

랜덤추첨기