Velge tilfeldige navn

June 26  by Eliza

En vanlig oppgave for mange mennesker er å plukke en rekke tilfeldige navn fra en stor liste. For eksempel kan du kjøre en konkurranse for samfunnet, og du har 1000 mennesker som har gått. Med navnet i hver rad i en tabell, lurer du kanskje på hvordan du skal velge et visst antall av navnene tilfeldig.

Som ofte er tilfelle med Excel, er det en rekke ulike tilnærminger du kan ta. Hver tilnærming undersøkt i dette tipset forutsetter at navnene du trenger for å velge fra, er oppført i cellene A1 til A1000. Selvfølgelig kunne omfanget av navnene være kortere eller lengre, men poenget er at de er i sammenhengende celler i kolonne A. Eksemplene også anta at du må velge 15 navnene på tilfeldig fra listen.

Den første tilnærmingen er å bruke INDEKS-funksjonen. Skriv inn følgende formel i cellene B1: B15:

= INDEKS (A: A, INT ((TILFELDIG () * 1000) 1), 1)

En tilsvarende formel bruker OFFSET funksjon:

= FORSKYVNING ($ A $ 1, ROUNDUP (TILFELDIG () * 1000,0), 0,1,1)

Det er mulig, men ikke sannsynlig, at du vil få samme navn to ganger i den resulterende listen. (The usannsynlighet kommer på grunn av størrelsen på den opprinnelige listen. Jo større listen, jo mindre sannsynlig vil det være duplikater i den utpakkede liste.) Hvis du får et duplikat navn, så bare tvinge en ny beregning av regnearket ved å trykke F9 . Hver gang Rekalkulér, blir listen utklippede navn regenereres.

En annen potensiell tilnærming krever bruk av flere kolonner. Bare følg disse trinnene:

  1. Skriv = TILFELDIG () i celle B1.
  2. Skriv inn følgende formel i celle C1:

    = RANK (B1, $ B $ 1: $ B $ 1000)
  3. Merk området B1: C1, og fylle ned til rad 1000.
  4. Merk området B1: C1000.
  5. Trykk Ctrl + C for å kopiere utvalget til utklippstavlen.
  6. Velg Lim inn fra Rediger-menyen. Excel viser dialogboksen Lim inn. (Se figur 1)

    Velge tilfeldige navn

    Figur 1. dialogboksen Lim inn.

  7. Kontroller at Verdier radio knappen er valgt.
  8. Klikk på OK. Du har nå statiske verdier i B1: C1000, som betyr at de ikke vil endre hver gang regnearket beregnes på nytt.
  9. Velg en celle i kolonne C.
  10. Velger du Sorter fra Data-menyen. Excel viser dialogboksen Sorter boksen. (Se figur 2)

    Velge tilfeldige navn

    Figur 2. Sortering dialogboksen.

  11. Klikk på OK. Tabellen (området A1: C1000) er sortert i henhold til verdiene i kolonne C.

Resultatet er at kolonnen C inneholder nå en rangering av alle de tilfeldige tallene i kolonne B. De første 15 radene inneholder de tilfeldige navn.

I denne tilnærmingen kan du også ha utelatt kolonne C helt og slett sortert listen basert på de statiske tilfeldige verdier i kolonne B. Igjen, topp 15 ville være dine tilfeldige navn.

Selvfølgelig finnes det en rekke makro løsninger du kan bruke for dette problemet. Kodingen av noen makro vil ligne, avhengig av VBA er RND funksjon for å generere tilfeldige tall. Av alle mulige makro løsninger, kanskje det følgende er det mest unike og gir noen fordeler som ikke er tilgjengelige med arbeidsboken løsninger diskutert så langt:

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

Satt TempDO = Ny DataObject

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

Hvis iRows <16 Eller iCols> 1 Deretter
MsgBox "For få rader eller for mange kolonner"
Else
Randomize Timer
sCells = ""
For J = 1 til 15
iWantRow = Int (Rnd () * iRows) + iBegRow
sCells = sCells & Cells (iWantRow, iBegCol) og vbCrLf
Neste J
TempDO.SetText sCells
TempDO.PutInClipboard
End If
End Sub

For å bruke denne makroen, bare velge de navnene du ønsker å velge de 15 tilfeldige navn. I eksemplene så langt, ville du velge området A1: A1000. Makroen trekker deretter 15 navnene på tilfeldig fra cellene, og setter dem i utklippstavlen. Når du kjører makroen, kan du lime inn innholdet på utklippstavlen hvor du vil. Hver gang makroen kjøres, er en annen gruppe av 15 utvalgte.

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (2811) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Valg av tilfeldige navn.