많은 사람들의 일반적인 작업은 큰 목록에서 임의의 여러 이름을 선택하는 것입니다. 예를 들어, 커뮤니티를 위해 콘테스트를 진행하고 있고 1,000 명의 사용자가 참가할 수 있습니다. 테이블의 각 행에 이름이있는 경우 특정 개수의 이름을 무작위로 선택하는 방법이 궁금 할 수 있습니다.

Excel의 경우와 마찬가지로 여러 가지 접근 방식을 취할 수 있습니다. 이 팁에서 살펴볼 각 접근 방식은 선택해야하는 이름이 A1에서 A1000까지의 셀에 나열되어 있다고 가정합니다.

물론 이름의 범위는 더 짧거나 길 수 있지만 요점은 A 열의 연속 셀에 있다는 것입니다. 예제에서는 목록에서 임의로 15 개의 이름을 선택해야한다고 가정합니다.

첫 번째 방법은 INDEX 함수를 사용하는 것입니다. B1 : B15 셀에 다음 수식을 입력합니다.

=INDEX(A:A,INT((RAND()*1000)+1),1)

비슷한 공식은 OFFSET 함수를 사용합니다.

=OFFSET($A$1,ROUNDUP(RAND()*1000,0),0,1,1)

결과 목록에서 동일한 이름을 두 번 얻을 수는 있지만 가능성은 없습니다. (원래 목록의 크기 때문에 가능성이 없습니다. 목록이 클수록 추출 된 목록에 중복 항목이있을 가능성이 적습니다.) 중복 된 이름을 얻은 경우 F9 키를 눌러 워크 시트를 강제로 다시 계산합니다. . 다시 계산할 때마다 추출 된 이름 목록이 다시 생성됩니다.

또 다른 잠재적 인 접근 방식은 여러 열을 사용해야합니다. 다음 단계를 따르십시오.

  1. B1 셀에 = RAND ()를 입력합니다.

  2. C1 셀에 다음 수식을 입력합니다.

  3. B1 : C1 범위를 선택하고 1000 행까지 채 웁니다.

  4. B1 : C1000 범위를 선택합니다.

  5. Ctrl + C를 눌러 범위를 클립 보드에 복사합니다.

  6. 편집 메뉴에서 선택하여 붙여 넣기를 선택하십시오. Excel에서 선택하여 붙여 넣기 대화 상자를 표시합니다. (그림 1 참조)

  7. 값 라디오 버튼이 선택되어 있는지 확인합니다.

  8. 확인을 클릭하십시오. 이제 B1 : C1000에 정적 값이 있으므로 워크 시트가 다시 계산 될 때마다 변경되지 않습니다.

  9. C 열의 셀을 선택하십시오.

  10. 데이터 메뉴에서 정렬을 선택하십시오. Excel은 정렬 대화 상자를 표시합니다.

(그림 2 참조)

  1. 확인을 클릭하십시오. 테이블 (범위 A1 : C1000)은 C 열의 값에 따라 정렬됩니다.

결과적으로 C 열에는 B 열의 모든 난수 순위가 포함됩니다. 처음 15 개 행에는 임의의 이름이 포함됩니다.

이 접근 방식에서는 C 열을 완전히 생략하고 B 열의 정적 임의 값에 따라 목록을 정렬 할 수도 있습니다.

다시 말하지만, 상위 15 개는 임의의 이름입니다.

물론이 문제에 사용할 수있는 매크로 솔루션은 얼마든지 있습니다. 모든 매크로의 코딩은 유사하며 VBA의 RND 함수를 사용하여 난수를 생성합니다. 가능한 모든 매크로 솔루션 중에서 다음이 가장 독특하며 지금까지 설명한 통합 문서 솔루션에서 사용할 수없는 몇 가지 이점을 제공합니다.

Sub GetRandom()

Dim iRows As Integer     Dim iCols As Integer     Dim iBegRow As Integer     Dim iBegCol As Integer     Dim J As Integer     Dim sCells As String          Set TempDO = New DataObject          iRows = Selection.Rows.Count     iCols = Selection.Columns.Count     iBegRow = Selection.Row     iBegCol = Selection.Column          If iRows < 16 Or iCols > 1 Then         MsgBox "Too few rows or too many columns"

Else         Randomize Timer         sCells = ""

For J = 1 To 15             iWantRow = Int(Rnd() * iRows) + iBegRow             sCells = sCells & Cells(iWantRow, iBegCol) & vbCrLf         Next J         TempDO.SetText sCells         TempDO.PutInClipboard     End If End Sub

이 매크로를 사용하려면 15 개의 임의 이름을 선택할 이름을 선택하기 만하면됩니다. 지금까지의 예에서는 A1 : A1000 범위를 선택합니다. 그런 다음 매크로는 셀에서 임의로 15 개의 이름을 가져와 클립 보드에 넣습니다. 매크로를 실행할 때 클립 보드의 내용을 원하는 곳에 붙여 넣을 수 있습니다. 매크로가 실행될 때마다 다른 15 개 그룹이 선택됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2811)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excelribbon-Selecting_Random_Names [임의 이름 선택].