Gary는 워크 시트에 두 개의 목록이 있습니다. 그중 하나는 A 열에 우리 회사의 잉여 품목 목록이 있고 다른 하나는 G 열에 이름 목록이 있습니다. B : F 열에는 아무것도 없습니다. Gary는 항목 목록에 무작위로 이름을 지정하려고합니다. G 열의 각 이름은 한 번만 지정해야합니다. 항목보다 이름이 더 많으면 일부 이름이 사용되지 않습니다. 항목보다 이름이 적 으면 일부 항목에는 연결된 이름이 없습니다.

이를 수행 할 수있는 몇 가지 방법이 있습니다. 하지만 가장 쉬운 방법은 A 열의 각 항목에 난수를 할당하는 것입니다.

첫 번째 항목이 A1 셀에 있다고 가정하고 다음을 B1 셀에 넣으십시오.

=RAND()

B1 셀의 채우기 핸들을 두 번 클릭하면 A 열의 각 항목 오른쪽에 임의의 숫자 (0과 1 사이)가 표시됩니다.

이제 B 열의 모든 셀을 선택하고 Ctrl + C를 눌러 클립 보드에 복사합니다. 선택하여 붙여 넣기를 사용하여 값을 B 열의 해당 셀에 다시 붙여 넣습니다. (이렇게하면 셀이 수식에서 실제 정적 값으로 변환됩니다.)

열 B의 값을 기준으로 열 A와 B를 오름차순으로 정렬합니다.

행을 살펴보면 이제 항목 (A 열)이 이름 (G 열)과 임의로 연관되어 있습니다.

필요하지 않더라도 동일한 단계에 따라 각 이름 오른쪽에 임의의 숫자를 추가 한 다음 이름을 정렬 할 수도 있습니다. (항목을 무작위로 지정하면 각 이름과 관련된 임의의 항목이 있는지 확인하기에 충분해야하므로 필요하지 않다고 말합니다.)

지금까지 논의한 기술은 무작위 페어링을 한 번만 수행해야하는 경우 유용합니다. 자주 수행해야하는 경우 매크로가 더 나은 방법 일 수 있습니다. 물론 사용할 수있는 다양한 매크로 기반 접근 방식이 있습니다. 다음 접근 방식은 항목 목록이 열 A에 있고 이름 목록이 열 G에 있다고 가정합니다. 또한 각 열의 행 1에 머리글 셀이 있다고 가정합니다.

Sub AssignNames()

Set srItems = Range("A2").CurrentRegion     Set srNames = Range("G2").CurrentRegion     NameCount = srItems.Rows.Count - 1     ItemCount = srNames.Rows.Count - 1

'Randomize Names     ReDim tempArray(NameCount, 2)

For x = 0 To NameCount - 1         tempArray(x, 0) = Range("G2").Offset(x, 0)

tempArray(x, 1) = Rnd()

Next x

'Bubble Sort     For i = 0 To NameCount - 2         For j = i To NameCount - 1             If tempArray(i, 1) > tempArray(j, 1) Then                 tempItem = tempArray(j, 0)

tempName = tempArray(j, 1)

tempArray(j, 0) = tempArray(i, 0)

tempArray(j, 1) = tempArray(i, 1)

tempArray(i, 0) = tempItem                 tempArray(i, 1) = tempName             End If         Next j     Next i

'AssignNames     Range("B2") = "Assigned"

AssignCount = NameCount     If NameCount > ItemCount Then AssignCount = ItemCount         For x = 0 To AssignCount         Range("B2").Offset(x, 0) = tempArray(x, 0)

Next x End Sub

항목보다 이름이 더 많은 경우 매크로는 항목에 이름을 임의로 할당합니다. 이름보다 더 많은 항목이 있으면 이름에 일부 항목을 임의로 할당하고 임의로 “구멍”(이름이없는 항목)을 남깁니다. B 열에 저장하고 거기에 있던 모든 것을 덮어 씁니다.

_ 참고 : _

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

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

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

이 팁 (5682)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.