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].