본문 바로가기
엑셀

[엑셀] 랜덤추출하기 RANDBETWEEN()

by LightBlogger 2017. 8. 3.

다음과 같은 자료가 있다고 하자.



A열에 있는 값 중 하나를 랜덤으로 추출하려면 어떻게 해야할까?


A1 ~ A26 셀에 있는 값 중 하나를 참조하도록 하면 될 것이다.


숫자가 바뀌므로 2017/08/02 - [엑셀] - [엑셀] 계산 결과 값으로 셀 지정하기 INDIRECT() 에 등장한


INDIRECT를 이용하면 되겠다.



셀 주소는 A(1~26중 랜덤) 의 모양이면 되겠는데, 이때 셀 주소의 숫자 부분 입력을 위해 RANDBETWEEN을 사용한다.


RANDBETWEEN은 인자로 받은 두 수 사이의 정수를 무작위로 반환하는 함수다.


A1 부터 A26 까지 숫자가 1 ~ 26 사이에서 바뀌어야 하므로 RANDBETWEEN 은 다음과 같이 입력한다.


=RANDBETWEEN(1, 26)




이제 &를 이용해 숫자 앞에 "A"를 붙이자.


="A"&RANDBETWEEN(1, 26)




마지막으로 이것을 INDIRECT 안에 넣어주면 되겠다.


=INDIRECT("A"&RANDBETWEEN(1, 26))



RANDBETWEEN은 시트 내 어떤 셀이라도 변경되면 새로 값을 추출하므로,


위 랜덤추출의 값 역시 시트 내 셀을 편집할 때마다 달라진다.



추출해야 하는 범위가 A1 ~ A26 가 아니라 계속 추가된다면 어떻게 해야할까?


예를 들어



위와 같이 참조하는 열에 데이터가 추가되면


RANDBETWEEN의 끝 인자를 26에서 29로 바꾸어야 Apple, Banana, Carrot도 포함하여 추출하게 된다.


데이터가 늘어날 때마다 함수를 매번 수정할 수는 없는 법.


이럴 땐 COUNTA 함수를 사용하면 되겠다.


COUNTA 는 주어진 범위에서 내용이 있는(비어 있지 않은) 셀의 개수를 출력해 준다.



참고로, 오히려 빈 셀의 개수만 세고 싶다면


COUNTBLANK를 이용한다.



다시 아까의 데이터로 돌아가서,


A열에 COUNTA 함수를 적용하면 값이 어디까지 있는지 알려줄 것이다.



이 29라는 숫자는 A1 부터 A29 셀까지 내용이 있다는 의미도 되겠다.


그러므로 RANDBETWEEN의 끝 인자로 이 값을 넣어주자.


=INDIRECT("A"&RANDBETWEEN(1, COUNTA(A:A)))



값이 잘 나오는 것을 볼 수 있다.

반응형

댓글