programing

Excel 행을 랜덤화하는 방법

telebox 2023. 5. 27. 10:38
반응형

Excel 행을 랜덤화하는 방법

엑셀에서 어떻게 많은 행을 랜덤화할 수 있습니까?

For example I have an excel sheet with data in 3 rows. 
1 A dataA
2 B dataB
3 C dataC

I want to randomize the row order. For example
2 B dataB
1 A dataA
3 C dataC

=RAND()를 사용하여 새 열을 만들고 난수로 채우고 해당 열을 기준으로 정렬할 수 있습니다.

하지만 이것이 그것을 하는 가장 좋은 방법일까요?랜드 방정식은 최대 100만 개의 난수를 제공할 것이고 저는 25만 개의 행을 가지고 있기 때문에 효과가 있을 것으로 보입니다.

감사해요.

제가 조금 검색해봤는데 열을 무작위화하는 것에 대한 이 답은 가깝지만 너무 많은 것 같습니다.

아마도 난수로 가득 찬 전체 열이 최선의 방법은 아닐 것이지만, @mariusn이 언급한 것처럼 가장 실용적인 것처럼 보입니다.

그런 점에서 Office 2010은 잠시 저를 놀라게 했고, 일반적으로 라이프 해커 작업과 같은 대답을 하지만, 저는 숫자가 고유하기 위해 필요한 추가 단계를 공유하고 싶었습니다.

  1. 임의로 지정할 목록 옆에 새 열 만들기
  2. 입력=rand()새 열의 첫 번째 셀 - 0과 1 사이의 난수를 생성합니다.
  3. 이 공식으로 열을 채웁니다.가장 쉬운 방법은 다음과 같습니다.

    • 랜덤화할 마지막 셀까지 새 열을 따라 아래로 이동합니다.
    • Shift 키를 누른 채로 마지막 셀을 클릭합니다.
    • Ctrl+D를 누릅니다.
  4. 이제 모든 숫자가 랜덤으로 생성되더라도 동일한 숫자의 열이 있어야 합니다.

    난수...

    여기서 요령은 그것들을 다시 계산하는 것입니다!수식 탭으로 이동한 다음 지금 계산을 클릭하거나 F9 키를 누릅니다.

    사실 난수!

    이제 열의 모든 숫자가 실제로 무작위로 생성됩니다.

  5. 탭으로 이동하여 정렬 & 필터를 클릭합니다.원하는 순서(작은 것에서 또는 큰 것에서 작은 것에서 작은 것)를 선택합니다. 즉, 원래 순서와 관련하여 임의의 순서를 지정합니다.그런 다음 정렬 경고에서 선택 영역을 확장하라는 메시지가 나타나면 확인을 클릭합니다.

  6. 지금 목록을 임의로 지정해야 합니다!원하는 경우 난수열을 제거할 수 있습니다.

저는 보통 당신이 설명한 대로 합니다.
랜덤 값을 가진 별도의 열 추가(=RAND()그런 다음 해당 열에서 정렬을 수행합니다.

더 복잡하고 더 예쁜 방법일 수도 있지만(매크로 등 사용), 이것은 충분히 빠르고 간단합니다.

열에서 선택한 셀을 섞을 수 있는 매크로는 다음과 같습니다.

Option Explicit

Sub ShuffleSelectedCells()
  'Do nothing if selecting only one cell
  If Selection.Cells.Count = 1 Then Exit Sub
  'Save selected cells to array
  Dim CellData() As Variant
  CellData = Selection.Value
  'Shuffle the array
  ShuffleArrayInPlace CellData
  'Output array to spreadsheet
  Selection.Value = CellData
End Sub

Sub ShuffleArrayInPlace(InArray() As Variant)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ShuffleArrayInPlace
' This shuffles InArray to random order, randomized in place.
' Source: http://www.cpearson.com/excel/ShuffleArray.aspx
' Modified by Tom Doan to work with Selection.Value two-dimensional arrays.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  Dim J As Long, _
    N As Long, _
    Temp As Variant
  'Randomize
  For N = LBound(InArray) To UBound(InArray)
    J = CLng(((UBound(InArray) - N) * Rnd) + N)
    If J <> N Then
      Temp = InArray(N, 1)
      InArray(N, 1) = InArray(J, 1)
      InArray(J, 1) = Temp
    End If
  Next N
End Sub

설명을 읽어 매크로가 수행 중인 작업을 확인할 수 있습니다.매크로를 설치하는 방법은 다음과 같습니다.

  1. VBA 편집기(Alt + F11)를 엽니다.
  2. 현재 열려 있는 스프레드시트에서 "이 워크북"을 마우스 오른쪽 단추로 클릭하고("VB 프로젝트" 뒤에 괄호로 표시됨) 삽입 / 모듈을 선택합니다.
  3. 위에 코드를 붙여넣고 스프레드시트를 저장합니다.

이제 "선택한 셀 전환" 매크로를 아이콘 또는 단축키에 할당하여 선택한 행을 신속하게 랜덤화할 수 있습니다(행 열 하나만 선택할 수 있음).

Excel 온라인(Google 시트)을 사용합니다.Google 시트용 Power Tools를 설치합니다.그런 다음 Google Sheets에서 Addons 탭으로 이동하여 Power Tools를 시작합니다.그럼 선택Randomize전원 도구 메뉴에서 확인할 수 있습니다.를 선택합니다.Shuffle그런 다음 Excel 시트에서 테스트 선택 항목을 선택합니다. 다음 런그다선택을 선택합니다.Cells in each row를 클릭합니다.Shuffle전원 도구 메뉴에서 확인할 수 있습니다.이렇게 하면 각 행의 선택된 셀이 서로 독립적으로 섞입니다.

예를 들어, 이것은 우리의 데이터 세트입니다.

여기에 이미지 설명 입력

그런 다음 이 공식을 입력하고 B1을 B9 셀에 추가합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

이제 데이터 탭으로 이동하여 필요에 따라 최소에서 최대로 정렬 또는 최대에서 최소로 정렬을 선택할 수 있습니다.

여기에 이미지 설명 입력

***그런 다음 팝업 대화 상자가 나타나고 선택 옵션 확장을 선택합니다.정렬을 클릭합니다.

여기에 이미지 설명 입력

데이터 범위가 행별로 랜덤하게 섞였습니다.그런 다음 수식 셀을 제거할 수 있습니다.(B열)

언급URL : https://stackoverflow.com/questions/11477546/how-to-randomize-excel-rows

반응형