토픽 EXCEL/VBA

24. 06. 13. 질답 주요 내용 기록

새회사 · M**********

[소수 자리가 있는 특정 값 범위 내 난수 생성]

엑셀이 기본 제공하는 난수 발생 함수 RAND는 0이상 1미만의 값을 반환하고, RANDBETWEEN(N, M)은 N이상 M이하의 정수만을 반환한다.

그럼 10.5~12.5라는 난수를 생성하고자 할 때는 어떡해야할까
RANDBETWEEN(10.5, 12.5)를 하더라도 실제 반환받을 수 있는 값은 10, 11, 12이다

발상을 조금 바꾸어
=RANDBETWEEN(105, 125)/10
과 같이 처리한다면, 최대 소수점 한 자리가 있는 10.5~12.5의 값을 생성할 수 있다.

소수점 자리를 늘리고자 한다면 생성하고자 하는 자리수가 N일 때, 값 범위에 대해 10^N 을 곱하고, RANDBETWEEN의 결과값에 대해 10^N을 나눠주면 된다.

#RANDBETWEEN

[특정 시간 단위에 따른 시간 난수 생성]

엑셀에서 시간 데이터는 0 이상 1미만의 숫자로 다루고 있다. 참고로 1 이상은 하루이며, 1은 1900년 1월 1일과 같다.
따라서 0이상 1미만의 난수를 생성하는 RAND 함수의 결과 값의 셀 서식을 시간으로 바꾸면 시간 데이터가 표시된다.
다만 이 경우 원하는 시간 단위에 맞춰 생성할 수는 없고 높은 확률로 초까지 생성될 것이다.

특정 시간 단위에 따른 시간 난수를 생성하고자 한다면 특정 단위에 맞춰 반올림 처리를 할 수 있는 MROUND를 결합하여 원하는 단위의 시간 난수를 생성할 수 있다.
=MROUND(RAND(), "원하는 시간 단위")

여기서 시간 단위는 H:MM:SS 로 작성하면 되며, :SS는 생략하여도 무방하다.

만약 반올림 처리가 아닌 무조건 올림, 또는 내림을 하고자 한다면 MROUND를 전자는 CEILING.MATH, 후자는 FLOOR.MATH로 대체하면 된다.
다만 어차피 난수는 사용자가 조작하기 어려우므로, 최종 결과 값을 보기만 하는 사용자 입장에서는 MROUND, CEILING, FLOOR의 결과값간 유의미한 차이는 없을 것이다.

#MROUND #RAND
#엑셀 #EXCEL

24. 06. 13. 질답 주요 내용 기록 특정 시간 단위에 따른 시간 난수 생성

댓글 0

앱에서만 댓글 입력이 가능한 채널입니다.
앱으로 이동해 댓글을 작성해주세요.

인기 채용

더보기

토픽 베스트

클라이밍
자녀교육·입시
독서
채용공고 해부하기
C++
나들이 명소
프로야구
기술사
자녀교육·입시
OTT뭐볼까