다음과 같은 자료가 있다고 하자.
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)))
값이 잘 나오는 것을 볼 수 있다.
'엑셀' 카테고리의 다른 글
[엑셀] 엑셀 엔터(줄바꿈) 입력하는 방법 (1) | 2017.08.21 |
---|---|
[엑셀] 수식 내용을 그대로 표시하는 세 가지 방법 (3) | 2017.08.10 |
[엑셀] 실무에서 많이 사용하는 엑셀 단축키 모음 (0) | 2017.08.09 |
[엑셀] 특정 문자열에 해당하는 값 참조하기 VLOOKUP, MATCH (0) | 2017.08.08 |
[엑셀] 도수분포표/히스토그램 만들기 (2016 데이터분석도구 설치하기) (8) | 2017.08.07 |
[엑셀] 계산 결과 값으로 셀 지정하기 INDIRECT() (0) | 2017.08.02 |
[엑셀] 상/하위 몇% 의 평균 구하기 (0) | 2017.08.01 |
[엑셀] PERCENTILE INC와 EXC의 차이 (0) | 2017.07.31 |
[엑셀] 상/하위 몇 퍼센트에 해당하는 값 알아보기 percentile() (2) | 2017.07.14 |
[엑셀] 배열수식에 여러 개의 조건 사용하기 (5) | 2017.07.13 |
댓글