Välja Random Names

August 24

En vanlig uppgift för många människor är att plocka ett antal slumpmässiga namn från en stor lista. Till exempel kan du köra en tävling för ditt samhälle, och du har 1000 personer som trätt. Med deras namn i varje rad av en tabell, kanske du undrar hur man väljer ett visst antal namn slumpmässigt.

Som så ofta är fallet med Excel, det finns ett antal olika metoder som du kan vidta. Varje metod granskas i detta tips förutsätter att de namn som du behöver för att välja från listas i cellerna A1 till A1000. Naturligtvis kan din raden av namn vara kortare eller längre, men poängen är att de är i angränsande celler i kolumn A. Exemplen förutsätter också att du måste välja 15 namn på måfå från listan.

Det första sättet är att använda funktionen INDEX. Ange följande formel i cellerna B1: B15:

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

En liknande formel använder OFFSET funktionen:

= FÖRSKJUTNING ($ A $ 1, AVRUNDA.UPPÅT (RAND () * 1000,0), 0,1,1)

Det är möjligt, men inte troligt, att du kommer att få samma namn två gånger i den resulterande listan. (Den osann kommer på grund av storleken på den ursprungliga listan. Ju större listan, desto mindre troligt att det kommer att finnas dubbletter i den extraherade listan.) Om du får en dubblett namn, sedan helt enkelt tvinga en omräkning av kalkylbladet genom att trycka på F9 . Varje gång din Räkna, är listan över extraherade namn regener.

En annan potentiell metod kräver användning av flera kolumner. Följ bara dessa steg:

  1. Ange = RAND () i cell B1.
  2. Ange följande formel i cell C1:

    = RANK (B1, $ B $ 1: $ B $ 1000)

  3. Markera området B1: C1, och fyll ned till rad 1000.
  4. Markera området B1: C1000.
  5. Tryck på Ctrl + C för att kopiera området till Urklipp.
  6. Välj Klistra in special på Redigera-menyn. Excel visar dialogrutan Klistra in special. (Se figur 1.)

    Välja Random Names

    Figur 1. dialogrutan Klistra in special.

  7. Se till att Värden alternativknappen är markerad.
  8. Klicka på OK. Du har nu statiska värden i B1: C1000, vilket betyder att de inte kommer att ändra varje gång kalkylbladet räknas.
  9. Markera en cell i kolumn C.
  10. Välj Sortera på Data-menyn. Excel visas dialogrutan Sortera ruta. (Se figur 2.)

    Välja Random Names

    Figur 2. Sortera dialogrutan.

  11. Klicka på OK. Tabellen (området A1: C1000) sorteras enligt värdena i kolumn C.

Resultatet är att kolumn C innehåller nu en rangordning av alla slumptal i kolumn B. De första 15 raderna innehåller dina slumpmässiga namn.

I denna strategi kan du även ha lämnat ut kolumn C helt och helt enkelt sorteras listan baserat på de statiska slumpmässiga värden i kolumn B. Återigen, topp 15 skulle vara din slumpmässiga namn.

Naturligtvis finns det valfritt antal makro lösningar som du kan använda för det här problemet. Kodningen av alla makron kommer att vara liknande, att förlita sig på VBA: s RND funktion för att generera slumptal. Av alla tänkbara makrolösningar, följande är kanske den mest unika och erbjuder några fördelar som inte finns med arbetsbokslösningar som diskuterats hittills:

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

Ställ TempDO = Nya DataObject

iRows = Selection.Rows.Count
iCols = Selection.Columns.Count
iBegRow = Selection.Row
iBegCol = Selection.Column

Om iRows <16 Eller iCols> 1 Sedan
MsgBox "För få rader eller för många kolumner"
Else
Randomize Timer
sCells = ""
För j = 1 till 15
iWantRow = Int (Rnd () * iRows) + iBegRow
sCells = sCells & Cells (iWantRow, iBegCol) & vbCrLf
Nästa J
TempDO.SetText sCells
TempDO.PutInClipboard
End If
End Sub

För att använda denna makro, välj bara de namn som du vill välja de 15 slumpmässiga namn. I exemplen hittills skulle du markera området A1: A1000. Makrot sedan drar 15 namn på måfå från cellerna, och sätter dem i Urklipp. När du kör makrot kan du sedan klistra in innehållet i Urklipp var du vill. Varje gång makrot körs, väljs en annan grupp av 15 valts.

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (2811) gäller för Microsoft Excel 97, 2000, 2002, och 2003. Du kan hitta en version av detta tips för menyfliksområdet i Excel (Excel 2007 och senare) här: Välja slumpmässiga namn.