목차
이 자습서에서는 Excel 난수 생성기 알고리즘의 특성을 설명하고 RAND 및 RANDBETWEEN 함수를 사용하여 Excel에서 난수, 날짜, 암호 및 기타 텍스트 문자열을 생성하는 방법을 보여줍니다.
Excel에서 난수를 생성하는 다양한 기술을 탐구하기 전에 실제로 무엇인지 정의해 보겠습니다. 일반 영어에서 무작위 데이터는 패턴이 없는 일련의 숫자, 문자 또는 기타 기호입니다.
무작위성은 암호화, 통계, 복권, 도박 및 기타 여러 분야에서 다양한 응용 프로그램을 가지고 있습니다. 그리고 항상 수요가 많았기 때문에 동전 던지기, 주사위 굴리기, 카드 섞기 등 고대부터 난수를 만드는 다양한 방법이 존재했습니다. 물론 이 자습서에서는 이러한 "특이한" 기술에 의존하지 않고 Excel 난수 생성기가 제공하는 기능에 중점을 둘 것입니다.
Excel 난수 생성기 - 기본 사항
Excel 난수 생성기는 난수에 대한 모든 표준 테스트를 통과하지만 true 난수를 생성하지는 않습니다. 하지만 즉시 작성하지 마세요 :) 의사 난수 Excel 임의 함수에서 생성된 숫자는 많은 목적에 적합합니다.
Excel 임의 생성 알고리즘을 자세히 살펴보고 예상할 수 있는 것과 예상할 수 없는 것을 알 수 있습니다.
대부분의 컴퓨터와 마찬가지로" 2Yu& ".
주의 사항! 유사한 공식을 사용하여 임의의 비밀번호를 생성하면 강하지. 물론 더 많은 CHAR / RANDBETWEEN 함수를 연결하여 더 긴 텍스트 문자열을 생성할 수 없다는 말은 없습니다. 그러나 순서나 문자를 임의로 지정하는 것은 불가능합니다. 즉, 첫 번째 함수는 항상 숫자를 반환하고 두 번째 함수는 대문자를 반환하는 식입니다.
Excel에서 사용할 수 있는 고급 임의 비밀번호 생성기를 찾고 있다면 모든 길이와 패턴의 텍스트 문자열 생성의 경우 테스트 문자열에 대한 Advanced Random Generator의 기능을 확인하고 싶을 수 있습니다.
또한 위 수식으로 생성된 텍스트 문자열은 매번 변경된다는 점을 명심하십시오. 워크시트가 다시 계산되는 시간입니다. 문자열이나 암호가 생성된 후 동일하게 유지되도록 하려면 RANDBETWEEN 함수가 값을 업데이트하지 못하도록 중지해야 합니다. 그러면 바로 다음 섹션으로 이동합니다.
RAND 및 RANDBETWEEN이 재계산
시트가 재계산될 때마다 변경되지 않는 영구적인 난수, 날짜 또는 텍스트 문자열 세트를 얻으려면 다음 기술 중 하나를 사용하십시오.
- RAND 또는 RANDBETWEEN 함수가 한 셀 에서 다시 계산되지 않도록 하려면 해당 셀을 선택하고 수식 입력줄로 전환한 다음 F9를 눌러 수식을값.
- Excel 임의 함수가 다시 계산되지 않도록 하려면 선택하여 붙여넣기 > 값 기능. 임의 수식이 있는 모든 셀을 선택하고 Ctrl + C를 눌러 복사한 다음 선택한 범위를 마우스 오른쪽 버튼으로 클릭하고 선택하여 붙여넣기 > 값 .
Excel에서 고유한 난수를 생성하는 방법
Excel의 임의 함수 중 어느 것도 생성할 수 없습니다. 고유한 임의의 값. 중복이 없는 난수 목록을 생성하려면 다음 단계를 수행합니다.
- RAND 또는 RANDBETWEEN 함수를 사용하여 난수 목록을 생성합니다. 나중에 삭제할 중복 항목이 있기 때문에 실제로 필요한 것보다 더 많은 값을 만듭니다.
- 위에서 설명한 대로 수식을 값으로 변환합니다.
- Excel의 기본 제공 도구 또는 Google의 Excel용 고급 Duplicate Remover.
이 자습서에서 더 많은 솔루션을 찾을 수 있습니다. 중복 없이 난수를 생성하는 방법.
Excel용 고급 난수 생성기
이제 Excel에서 임의 함수를 사용하는 방법을 알았으므로 워크시트에서 임의의 숫자, 날짜 또는 텍스트 문자열 목록을 만드는 더 빠르고 쉽고 공식이 없는 방법을 보여 드리겠습니다.
AbleBits 임의 생성기 for Excel은 보다 강력하고 사용자가 쉽게 사용할 수 있도록 설계되었습니다.Excel의 RAND 및 RANDBETWEEN 함수에 대한 친숙한 대안입니다. 모든 버전의 Microsoft Excel 2019, 2016, 2013, 2010, 2007 및 2003에서 동일하게 작동하며 표준 임의 함수의 품질 및 유용성 문제 대부분을 해결합니다.
AbleBits 난수 생성기 알고리즘
작동 중인 Random Generator를 보여주기 전에 우리가 무엇을 제공하는지 정확히 알 수 있도록 알고리즘에 대한 몇 가지 주요 참고 사항을 제공하겠습니다.
- Excel용 AbleBits Random Number Generator는 다음을 기반으로 합니다. 고품질 의사 무작위화를 위한 업계 표준으로 간주되는 Mersenne Twister 알고리즘.
- 우리는 2^19937 - 1의 매우 긴 주기로 32비트 정수의 정규 분포 시퀀스를 생성하는 버전 MT19937을 사용합니다. 상상할 수 있는 모든 시나리오에 충분합니다.
- 이 방법을 사용하여 생성된 난수는 매우 고품질입니다. 난수 생성기는 잘 알려진 NIST Statistical Test Suite 및 Diehard 테스트와 일부 TestU01 Crush 임의성 테스트를 포함하여 통계적 임의성에 대한 여러 테스트를 성공적으로 통과했습니다.
Excel 임의 함수와 달리 당사의 난수 생성기는 스프레드시트가 다시 계산될 때 변경되지 않는 영구 임의 값 을 생성합니다.
이미 언급한 바와 같이 이 고급 Excel용 난수 생성기는 수식이 없는(따라서 오류가 없는) 방법을 제공합니다.다음과 같은 다양한 무작위 값 생성:
- 고유 숫자를 포함한 임의의 정수 또는 소수
- 임의의 날짜(근무일, 주말 또는 둘 다, 선택적으로 고유한 날짜)
- 주어진 길이와 패턴의 암호 또는 마스크를 포함한 임의의 텍스트 문자열
- TRUE 및 FALSE의 임의의 부울 값
- 사용자 지정 목록에서 임의로 선택
이제 약속한 대로 난수 생성기가 실제로 작동하는지 살펴보겠습니다.
Excel에서 난수 생성
AbleBits 난수 생성기를 사용하면 난수 목록을 클릭하는 것만큼 쉽게 생성할 수 있습니다. 생성 버튼.
고유한 임의의 정수 생성
임의의 정수로 채울 범위를 선택하기만 하면 됩니다. 아래쪽 및 위쪽 값을 선택하고 선택적으로 고유 값 상자를 선택합니다.
임의의 실수(십진수) 생성
유사한 방식으로 지정한 범위에서 일련의 임의 십진수를 생성할 수 있습니다.
Excel에서 임의 날짜 생성
날짜의 경우 임의 숫자 생성기는 다음 옵션을 제공합니다.
- 특정 시간에 대한 임의 날짜 생성 기간 - 시작 상자에 하단 날짜를 입력하고 종료 상자에 상단 날짜를 입력합니다.
- 평일, 주말 또는 둘 다를 포함합니다.
- 고유한 날짜를 생성합니다.
임의의 텍스트 문자열을 생성하고passwords
난수와 날짜 외에도 이 Random Generator를 사용하면 특정 문자 집합으로 임의의 영숫자 문자열을 쉽게 만들 수 있습니다. 최대 문자열 길이는 99자이며 매우 강력한 암호를 생성할 수 있습니다.
AbleBits 난수 생성기가 제공하는 고유한 옵션은 마스크<로 임의의 텍스트 문자열을 생성하는 것입니다. 10>. 이는 전역 고유 식별자(GUID), 우편 번호, SKU 등을 생성하는 데 매우 유용한 기능입니다.
예를 들어 임의의 GUID 목록을 가져오려면 16진수 문자 집합을 선택하고 ?를 입력합니다. ????????-????-????-???????????? 마스크 상자에서 스크린샷에 표시된 대로:
Random Generator를 사용해 보고 싶다면 다운로드하세요. Excel용 Ultimate Suite의 일부로 아래에 있습니다.
사용 가능한 다운로드
임의 수식 예제(.xlsx 파일)
Ultimate Suite 14일 완전 기능 버전(. exe 파일)
프로그램에서 Excel 난수 생성기는 몇 가지 수학 공식을 사용하여 의사 난수를 생성합니다. 이것이 의미하는 바는 누군가가 생성기 알고리즘의 모든 세부 정보를 알고 있는 경우 이론적으로 Excel에서 생성된 난수를 예측할 수 있다는 것입니다. 이것이 문서화되지 않은 이유이며 거의 없을 것입니다. Excel의 난수 생성기에 대해 무엇을 알고 있습니까?- Excel RAND 및 RANDBETWEEN 함수는 Uniform distribution 에서 유사 난수를 생성합니다. , 일명 직사각형 분포로, 랜덤 변수가 취할 수 있는 모든 값에 대해 동일한 확률이 있습니다. 균일 분포의 좋은 예는 단일 주사위를 던지는 것입니다. 던지기의 결과는 6개의 가능한 값(1, 2, 3, 4, 5, 6)이며 이러한 각 값은 발생할 가능성이 동일합니다. 보다 과학적인 설명은 wolfram.com을 참조하십시오.
- 컴퓨터의 시스템 시간에서 초기화된다는 소문이 있는 Excel RAND 또는 RANDBETWEEN 함수를 시드할 방법이 없습니다. 기술적으로 seed 는 일련의 난수를 생성하기 위한 시작점입니다. 그리고 Excel 임의 함수가 호출될 때마다 고유한 임의 시퀀스를 반환하는 새 시드가 사용됩니다. 즉, Excel에서 난수 생성기를 사용할 때 RAND 또는 RANDBETWEEN으로 반복 가능한 시퀀스를 얻을 수 없습니다.
- Excel 2003 이전의 초기 Excel 버전에서는 임의 생성 알고리즘의 기간이 상대적으로 짧았고(반복되지 않는 난수 시퀀스 100만 개 미만) 실패했습니다. 긴 무작위 시퀀스에 대한 몇 가지 표준 무작위성 테스트. 따라서 누군가가 여전히 이전 Excel 버전으로 작업하는 경우 대규모 시뮬레이션 모델에 RAND 기능을 사용하지 않는 것이 좋습니다.
true 무작위 데이터를 찾고 있다면 www.random.org와 같은 타사 난수 생성기를 사용할 수 있으며 그 임의성은 대기 소음에서 비롯됩니다. 그들은 임의의 숫자, 게임 및 복권, 색상 코드, 임의의 이름, 암호, 영숫자 문자열 및 기타 임의의 데이터를 생성하는 무료 서비스를 제공합니다.
엑셀 RAND 함수 - 임의의 실수 생성
엑셀의 RAND 함수는 난수 생성을 위해 특별히 고안된 두 함수 중 하나입니다. 0과 1 사이의 임의의 10진수(실수)를 반환합니다.
RAND()는 워크시트가 계산될 때마다 새로운 난수가 생성되는 휘발성 함수입니다. 그리고 이것은 워크시트에서 작업을 수행할 때마다 발생합니다. 예를 들어 수식을 업데이트합니다(반드시 RAND 수식이 아니라시트), 셀을 편집하거나 새 데이터를 입력하세요.
RAND 함수는 Excel 365 - 2000의 모든 버전에서 사용할 수 있습니다.
엑셀 RAND 함수에는 인수가 없으므로 =RAND()
를 입력하면 됩니다. 한 셀에 수식을 복사한 다음 원하는 수만큼 셀에 복사합니다.
이제 한 단계 더 나아가 몇 가지 RAND 수식을 작성하여 다음에 따라 난수를 생성해 보겠습니다.
공식 1. 범위의 상한값 지정
0과 N 값 사이의 난수를 생성하려면 다음과 같이 RAND 함수를 곱합니다. N:
RAND()* N예를 들어, 0보다 크거나 같지만 50보다 작은 일련의 난수를 생성하려면 다음 수식을 사용하십시오.
=RAND()*50
참고. 상한 값은 반환된 임의 시퀀스에 포함되지 않습니다. 예를 들어, 10을 포함하여 0과 10 사이의 임의의 숫자를 얻으려면 올바른 수식은 =RAND()*11
입니다. 지정한 숫자는 다음 RAND 공식을 사용합니다.
Where A 는 하한 값(가장 작은 숫자)이고 B 는 상한 값(가장 큰 숫자)입니다.
예를 들어 10에서 50 사이의 난수를 생성하려면 , 다음 수식을 사용할 수 있습니다.
=RAND()*(50-10)+10
참고. 이 임의의 수식은 절대 같은 숫자를 반환하지 않습니다.지정된 범위의 가장 큰 수( B 값).
수식 3. 엑셀에서 임의의 정수 생성
엑셀 RAND 함수가 임의의 정수를 생성하게 하려면 위에서 언급한 수식 중 하나를 취하여 INT 함수로 래핑합니다.
만들려면 0과 50 사이의 임의의 정수:
=INT(RAND()*50)
10과 50 사이의 임의의 정수를 생성하려면:
=INT(RAND()*(50-10)+10)
Excel RANDBETWEEN 기능 - 지정된 범위에서 임의의 정수를 생성합니다.
RANDBETWEEN은 Excel에서 제공하는 난수 생성 기능입니다. 지정한 범위에서 임의의 정수 를 반환합니다.
RANDBETWEEN(bottom, top)당연히 b ottom 이 가장 낮은 숫자이고 top 은 얻으려는 임의의 숫자 범위에서 가장 높은 숫자입니다.
RAND와 마찬가지로 Excel의 RANDBETWEEN은 휘발성 함수이며 스프레드시트가 다시 계산될 때마다 새로운 임의의 정수를 반환합니다.
예를 들어, 10에서 50 사이(10에서 50 포함) 사이의 임의 정수를 생성하려면 다음 RANDBETWEEN 공식을 사용하세요.
=RANDBETWEEN(10, 50)
Excel의 RANDBETWEEN 함수는 양수와 음수를 모두 만들 수 있습니다. 예를 들어 -10에서 10까지의 임의 정수 목록을 얻으려면 워크시트에 다음 수식을 입력합니다.
=RANDBETWEEN(-10, 10)
RANDBETWEEN 함수는 Excel 365 - Excel 2007에서 사용할 수 있습니다. 이전 버전에서는 RAND 공식을 사용할 수 있습니다.위의 예 3에 설명되어 있습니다.
이 자습서에서는 RANDBETWEEN 함수를 사용하여 정수 이외의 임의 값을 생성하는 방법을 보여 주는 몇 가지 수식 예를 더 찾을 수 있습니다.
팁. Excel 365 및 Excel 2021에서 동적 배열 RANDARRAY 함수를 사용하여 지정한 두 숫자 사이의 난수 배열을 반환할 수 있습니다.
지정된 소수 자릿수로 난수 생성
하지만 Excel의 RANDBEETWEEN 함수는 임의의 정수를 반환하도록 설계되었으므로 소수점 이하 자릿수가 원하는 만큼 임의의 소수점 숫자를 반환하도록 강제할 수 있습니다.
예를 들어 소수점 이하 한 자리의 숫자 목록을 가져오려면 하위 및 상위 값에 10을 곱한 다음 반환된 값을 10으로 나눕니다.
RANDBETWEEN( 하위 값 * 10, 상위 값 * 10)/10다음 RANDBETWEEN 공식은 1에서 50 사이의 임의의 십진수를 반환합니다.
=RANDBETWEEN(1*10, 50*10)/10
유사한 방식으로 1에서 50 사이의 임의의 숫자를 생성하려면 소수점 이하 2자리, RANDBETWEEN 함수의 인수에 100을 곱한 다음 결과도 100으로 나눕니다.
=RANDBETWEEN(1*100, 50*100) / 100
Excel에서 임의의 날짜를 생성하는 방법
To 임의의 d 목록을 반환합니다. 지정된 두 날짜 사이에 날짜가 있으면 DATEVALUE:
RANDBETWEEN(DATEVALUE( 시작 날짜 ), DATEVALUE( 종료 날짜 ))과 함께 RANDBETWEEN 함수를 사용합니다. , 에게2015년 6월 1일부터 2015년 6월 30일까지의 날짜 목록을 가져오려면 워크시트에 다음 수식을 입력합니다.
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
또는 대신 DATE 함수를 사용할 수 있습니다. DATEVALUE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
셀에 날짜 형식을 적용하면 다음과 같은 임의의 날짜 목록이 표시됩니다.
요일 또는 주말 임의 생성과 같은 다양한 고급 옵션에 대해서는 Advanced Random Generator for date를 확인하십시오.
Excel에서 임의의 시간을 삽입하는 방법
내부 Excel 시스템 시간은 소수로 저장되므로 표준 Excel RAND 함수를 사용하여 임의의 실수를 삽입한 다음 셀에 시간 형식을 간단히 적용할 수 있습니다.
To 기준에 따라 임의의 시간을 반환하려면 아래에 설명된 것처럼 보다 구체적인 임의의 수식이 필요합니다.
공식 1. 지정된 범위에서 임의의 시간 생성
두 시간 사이에 임의의 시간을 삽입하려면 지정하려면 TIME 또는 T를 사용하십시오. Excel RAND와 결합한 IMEVALUE 함수:
TIME( 시작 시간 )+RAND() * (TIME( 시작 시간 ) - TIME( 종료 시간 )) TIMEVALUE( 시작 시간 )+RAND() * (TIMEVALUE( 시작 시간 ) - TIMEVALUE( 종료 시간 ))예: 오전 6시에서 오후 5시 30분 사이에 임의의 시간을 삽입하려면 다음 수식 중 하나를 사용할 수 있습니다.
=TIME(6,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0))
=TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))
공식 2. 생성임의의 날짜 및 시간
임의의 날짜 및 시간 목록을 만들려면 RANDBETWEEN 및 DATEVALUE 함수의 조합을 사용합니다.
RANDBETWEEN(DATEVALUE( 시작 날짜) , DATEVALUE( 종료일 )) + RANDBETWEEN(TIMEVALUE( 시작시간 ) * 10000, TIMEVALUE( 종료시간 ) * 10000)/100002015년 6월 1일과 2015년 6월 30일 사이에 오전 7시 30분에서 오후 6시 사이의 임의 날짜를 삽입한다고 가정하면 다음 공식이 적합합니다.
=RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000
DATE 및 TIME 함수를 각각 사용하여 날짜와 시간을 제공할 수도 있습니다.
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Excel에서 임의 문자 생성
임의의 문자를 반환하려면 세 가지 기능의 조합이 필요합니다.
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
여기서 A 는 첫 번째 문자이고 Z 는 포함하려는 문자 범위의 마지막 문자입니다(알파벳 순서).
위 공식에서:
- CODE는 지정된 문자에 대한 숫자 ANSI 코드를 반환합니다.
- RANDBETWEEN은 n을 걸립니다 CODE 함수에 의해 반환된 숫자는 범위의 하단 및 상단 값입니다.
- CHAR는 RANDBETWEEN에서 반환된 임의의 ANSI 코드를 해당 문자로 변환합니다.
참고. ANSI 코드는 대문자와 소문자가 다르기 때문에 이 수식은 대소문자를 구분 합니다.
ANSI 문자 코드 차트를 외우면 아무 것도 막을 수 없습니다.코드를 RANDBETWEEN 함수에 직접 제공하지 않습니다.
예를 들어, A (ANSI 코드 65)와 Z<2 사이에 임의의 대문자 를 얻으려면> (ANSI 코드 90), 다음과 같이 작성합니다.
=CHAR(RANDBETWEEN(65, 90))
a (ANSI 코드 97)에서 까지 소문자 를 생성하려면 z (ANSI 코드 122)인 경우 다음 수식을 사용합니다.
=CHAR(RANDBETWEEN(97, 122))
과 같은 임의의 특수 문자를 삽입하려면! " # $ % & ' ( ) * + , - . /, bottom 매개변수가 33("!'에 대한 ANSI 코드)으로 설정되고 top 매개변수가 47로 설정됨("/"에 대한 ANSI 코드).
=CHAR(RANDBETWEEN(33,47))
Excel에서 텍스트 문자열 및 암호 생성
Excel에서 임의의 텍스트 문자열을 생성하려면 , 여러 CHAR / RANDBEETWEEN 함수를 연결하기만 하면 됩니다.
예를 들어 4자로 구성된 비밀번호 목록을 생성하려면 다음과 유사한 공식을 사용할 수 있습니다.
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
수식을 더 간결하게 만들기 위해 수식에 ANSI 코드를 직접 입력했습니다. 네 가지 함수는 다음과 같은 임의의 값을 반환합니다.
-
RANDBETWEEN(0,9)
- 0과 9 사이의 임의의 숫자를 반환합니다. -
CHAR(RANDBETWEEN(65,90))
- A 와 <사이의 임의의 대문자를 반환합니다. 1>Z . -
CHAR(RANDBETWEEN(97, 122))
- a 와 z 사이의 임의의 소문자를 반환합니다. -
CHAR(RANDBETWEEN(33,47))
- 임의의 특수 문자를 반환합니다.
위 공식으로 생성된 텍스트 문자열은 " 4Np# " 또는