Excel

Tilfældig liste med navne

Random List Names

Excel -formel: Tilfældig liste med navneGenerisk formel | _+_ | Resumé

For at oprette en tilfældig liste med navne kan du bruge INDEX -funktion og RANDARRAY funktion for at vælge tilfældige navne fra en eksisterende liste. I det viste eksempel er formlen i D5:



= INDEX (names, RANDARRAY (n,1,1, COUNTA (names),TRUE))

som returnerer 10 tilfældige værdier fra navngivet område 'navne' (B5: B104).

hvordan man får gennemsnittet i excel
Forklaring

I kernen bruger denne formel INDEX -funktionen til at hente 10 tilfældige navne fra et navngivet område kaldet 'navne', som indeholder 100 navne. For eksempel, for at hente det femte navn fra listen, bruger vi INDEX sådan:





 
= INDEX (names, RANDARRAY (10,1,1, COUNTA (names),TRUE))

Tricket i dette tilfælde er imidlertid, at vi ikke vil have en enkelt navn på et kendt sted, vi ønsker 10 tilfældige navne på ukendte steder mellem 1 og 100. Dette er en glimrende brugstilfælde til RANDARRAY -funktionen, som kan oprette et tilfældigt sæt heltal i et givet område. Når vi arbejder indefra og ud, bruger vi RANDARRAY til at få 10 tilfældige tal mellem 1 og 100 sådan her:

 
= INDEX (names,5)

COUNTA -funktionen bruges til at få et dynamisk antal navne på listen, men vi kan erstatte COUNTA med en hardcoded 100 i dette tilfælde med det samme resultat:



 
 RANDARRAY (10,1,1, COUNTA (names)

I begge tilfælde returnerer RANDARRAY 10 tal i en matrix, der ser sådan ud:

 
= INDEX (names, RANDARRAY (10,1,1,100,TRUE))

Bemærk: Disse tal er kun tilfældige og knyttes ikke direkte til det viste eksempel.

Denne matrix returneres direkte til INDEX -funktionen som rækkeargumentet:

 
{6474137496655738485}

Fordi vi giver INDEX 10 rækkenumre, vil det 10 resultater, der hver svarer til et navn på den givne position. De 10 tilfældige navne returneres i et spildområde, der begynder i celle D5.

Bemærk: RANDARRAY er en flygtig funktion og vil genberegne hver gang regnearket ændres, hvilket bevirker, at værdier tages. Hvis du vil stoppe værdier fra at sortere automatisk, kan du kopiere formlerne og derefter bruge Indsæt special> Værdier til at konvertere formler til statiske værdier.

Undgå dubletter

Et problem med ovenstående formel (afhængigt af dine behov) er, at RANDARRAY undertiden genererer dublerede numre. Med andre ord er der ingen garanti for, at RANDARRAY returnerer 10 unikke numre.

For at sikre 10 forskellige navne fra listen kan du tilpasse formlen til tilfældigt at sortere hele listen med navne og derefter hente de første 10 navne fra listen. Formlen i F5 bruger denne fremgangsmåde:

 
= INDEX (names, {6474137496655738485}

Fremgangsmåden her er den samme som ovenfor - vi bruger INDEX til at hente 10 værdier fra listen med navne. I denne version af formlen sorterer vi dog listen over navne tilfældigt, før vi giver listen til INDEX sådan:

 
= INDEX ( SORTBY (names, RANDARRAY ( COUNTA (names))), SEQUENCE (10))

Her er SORTBY funktion bruges til at sortere listen over navne tilfældigt med en matrixværdier oprettet af RANDARRAY -funktionen, som forklaret mere detaljeret her.

Endelig skal vi hente 10 værdier. Fordi vi allerede har navne i en tilfældig rækkefølge, kan vi simpelthen anmode om de første 10 med et array oprettet af SEQUENCE funktion sådan her:

 
 SORTBY (names, RANDARRAY ( COUNTA (names)))

SEQUENCE bygger en række sekventielle tal:

 
 SEQUENCE (10)

som returneres til INDEX -funktionen som rækkeargumentet. INDEX returnerer derefter de første 10 navne i a spil rækkevidde som den originale formel.

Dynamiske matrixformler er tilgængelige i Office 365 kun. Forfatter Dave Bruns


^