엑셀 랜덤함수 RAND와 RANDBETWEEN를 이용한 랜덤 추첨기...
|
---|
이름 :
Ruby
조회수 : 1191
|
안녕하세요. 랜덤추첨기 시월의일상입니다 :)지난번에 네이버 원판돌리기에 대한 포스팅을 작성한 적이 있습니다. 간단하게 랜덤으로 추첨을 위한 방법으로 상당히 효율적이지만, 문제는 넣을 수 있는 옵션의 수가 너무 적다는데에 있습니다. 또한 당첨되는 수가 1 개로 제한된다는 것도 하나의 단점이죠.그래서 대량의 데이터들 중, 몇 개를 임의로 추려내기 위해서는 보통 엑셀 랜덤함수를 이용한 랜덤 추첨기를 많이들 활용하고 있는데요. 오늘은 이 때 사용되는 rand와 randbetween 함수들의 사용법과 차이점에 대해 알아보고 추첨 프로그램을 랜덤추첨기 만드는 방법까지 알아보겠습니다.rand &randbetweenrand와 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의 사용법과 차이점을 알아보고 이를 이용하여 간단하게 구현할 수 있는 추첨기도 만들어 보았습니다.그럼 여러분의 오피스 라이프에 도움이 되었길 바라며, 이만 줄이겠습니다. 감사합니다 :) 랜덤추첨기 |