임의 문자열 생성 (Microsoft Excel)
Nancy는 각각 8 개의 임의의 문자가 포함 된 50 개의 “숫자”를 선택하도록 Excel을 사용하려고합니다. 문자는 숫자 또는 문자 (대문자 또는 소문자) 일 수 있습니다.
난수가 실제로 숫자 (숫자 만)라면 생성이 쉬울 것입니다. 다음과 같은 방식으로 분석 도구에서 RANDBETWEEN 함수를 사용하기 만하면됩니다.
=RANDBETWEEN(10000000,99999999)
그러나 이것은 Nancy가 원하는 것이 아닙니다. 그녀의 임의의 “숫자”에는 대문자와 소문자도 포함될 수 있습니다. 이것은 좀 더 끈적 해집니다.
그러나 사용할 수있는 몇 가지 접근 방식이 있습니다.
한 가지 방법은 가능한 모든 문자를 B7과 같은 개별 셀에 넣는 것입니다.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
이 셀의 이름을 MySource와 같이 멋진 이름으로 지정하십시오. 그런 다음 다음과 같은 수식을 사용하여 임의의 문자열 문자열을 반환 할 수 있습니다.
=MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1) & MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
공식은 길다. 명확성을 위해 개별 라인으로 나뉘었지만 여전히 단일 공식입니다. 셀 B7에 입력 한 소스에서 가져온 8 개의 문자를 연결합니다.
또 다른 접근 방식은 임의의 텍스트 문자열에 원하는 모든 문자를 포함하는 테이블을 만드는 것입니다. 열에 1부터 62까지의 숫자를 각 행에 하나씩 배치하여 시작합니다. 이 숫자의 왼쪽에 A, B, C, D 등의 문자를 배치합니다. (이전 기술에서 B7 셀에 배치 한 것과 동일한 문자 여야합니다.) 62 개 행의 두 열을 모두 선택하고 이름을 지정합니다. , 예 : MyTable. 그런 다음 다음 공식을 사용하여 임의의 문자를 생성 할 수 있습니다.
=VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2) & VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
다시 말하지만, 이것은 이전 공식보다 약간 짧지 만 단일 공식이라는 것을 기억하십시오.
지금까지 제시된 각 접근 방식에는 한 가지 단점이 있습니다. 워크 시트를 다시 계산할 때마다 다시 생성된다는 것입니다. 따라서 정기적으로 변경되지 않는 임의의 문자열을 생성하기가 어렵습니다. 이 문제를 해결하는 가장 좋은 방법은 매크로를 사용하는 것이지만 반드시 사용자 정의 함수를 사용하고 싶지는 않습니다. 왜? 워크 시트가 다시 계산 될 때마다 결과가 변경되기 때문입니다.
대신 특정 셀 위치에서 시작하여 통합 문서에 임의의 문자열을 넣는 매크로가 필요합니다. 다음은 이러한 매크로의 예입니다.
Sub MakeRandom() Dim J As Integer Dim K As Integer Dim iTemp As Integer Dim sNumber As String Dim bOK As Boolean Range("D4").Activate Randomize For J = 1 To 50 sNumber = "" For K = 1 To 8 Do iTemp = Int((122 - 48 + 1) * Rnd + 48) Select Case iTemp Case 48 To 57, 65 To 90, 97 To 122 bOK = True Case Else bOK = False End Select Loop Until bOK bOK = False sNumber = sNumber & Chr(iTemp) Next K ActiveCell.Value = sNumber ActiveCell.Offset(1, 0).Select Next J End Sub
매크로를 실행하면 D4 : D53 셀에있는 모든 항목을 임의의 값으로 덮어 씁니다. 값을 다른 위치에 기록하려면 매크로 시작 부분 근처의 Range 문을 변경하십시오.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (3872)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.
link : / excelribbon-Generating_Random_Strings_of_Characters [Generating Random Strings of Characters]
.