Innehållsförteckning
Handledningen fokuserar på hur man gör slumpmässiga urval i Excel utan upprepningar. Du hittar lösningar för Excel 365, Excel 2021, Excel 2019 och tidigare versioner.
För ett tag sedan beskrev vi några olika sätt att göra ett slumpmässigt urval i Excel. De flesta av dessa lösningar bygger på funktionerna RAND och RANDBETWEEN, som kan generera dubbla nummer. Följaktligen kan ditt slumpmässiga urval innehålla upprepade värden. Om du behöver ett slumpmässigt urval utan dubbletter kan du använda de metoder som beskrivs i den här handledningen.
Excel slumpmässigt urval från listan utan dubbletter
Fungerar endast i Excel 365 och Excel 2021 som stöder dynamiska matriser.
Om du vill göra ett slumpmässigt urval från en lista utan upprepningar använder du den här generiska formeln:
INDEX(SORTBY( uppgifter , RANDARRAY(ROWS( uppgifter )))), SEQUENCE( n ))Var n är den önskade urvalsstorleken.
Om du till exempel vill få fram 5 unika slumpmässiga namn från listan i A2:A10 kan du använda följande formel:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
För enkelhetens skull kan du ange stickprovsstorleken i en fördefinierad cell, till exempel C2, och ange cellreferensen till SEQUENCE-funktionen:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
Hur denna formel fungerar:
Här är en förklaring på hög nivå av formelns logik: funktionen RANDARRAY skapar en matris med slumpmässiga tal, SORTBY sorterar de ursprungliga värdena efter dessa tal och INDEX hämtar så många värden som anges i SEQUENCE.
Nedan följer en detaljerad uppdelning:
ROWS-funktionen räknar hur många rader som datamängden innehåller och skickar räkningen till RANDARRAY-funktionen så att den kan generera samma antal slumpmässiga decimaler:
RANDARRAY(RADER(A2:C10))
Denna matris med slumpmässiga decimaler används som "sorteringsmatris" av funktionen SORTBY. Resultatet blir att dina ursprungliga data blandas slumpmässigt.
Från de slumpmässigt sorterade uppgifterna tar du ut ett urval av en viss storlek. För detta levererar du den blandade matrisen till INDEX-funktionen och begär att få ut det första N värden med hjälp av funktionen SEQUENCE, som producerar en sekvens av siffror från 1 till N Eftersom de ursprungliga uppgifterna redan är sorterade i slumpmässig ordning, bryr vi oss egentligen inte om vilka positioner som ska hämtas, utan endast mängden spelar roll.
Välj slumpmässiga rader i Excel utan dubbletter
Fungerar endast i Excel 365 och Excel 2021 som stöder dynamiska matriser.
Om du vill välja slumpmässiga rader utan upprepningar bygger du en formel på följande sätt:
INDEX(SORTBY( uppgifter , RANDARRAY(ROWS( uppgifter )))), SEQUENCE( n ), {1,2,...})Var n är urvalsstorleken och {1,2,...} är de kolumnnummer som ska extraheras.
Låt oss till exempel välja slumpmässiga rader från A2:C10 utan dubbla poster, baserat på urvalsstorleken i F1. Eftersom våra data är i tre kolumner, anger vi denna arraykonstant till formeln: {1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
Jag får följande resultat:
Hur denna formel fungerar:
Formeln fungerar med exakt samma logik som den föregående. En liten förändring som gör stor skillnad är att du anger både row_num och kolumn_nummer argument för INDEX-funktionen: row_num tillhandahålls av SEQUENCE och kolumn_nummer med konstanten i matrisen.
Hur man gör slumpmässigt urval i Excel 2010 - 2019
Eftersom endast Excel för Microsoft 365 och Excel 2021 stöder dynamiska matriser fungerar de dynamiska matrisfunktionerna som används i de tidigare exemplen endast i Excel 365. För andra versioner måste du hitta en annan lösning.
Anta att du vill göra ett slumpmässigt urval från listan i A2:A10. Detta kan göras med två separata formler:
- Generera slumpmässiga nummer med Rand-formeln. I vårt fall skriver vi in det i B2 och kopierar sedan ner till B10:
=RAND()
- Extrahera det första slumpmässiga värdet med nedanstående formel, som du skriver in i E2:
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- Kopiera formeln ovan till så många celler som du vill välja slumpmässiga värden. I det här exemplet vill vi ha fyra namn, så vi kopierar formeln från E2 till E5.
Vårt slumpmässiga urval utan dubbletter ser ut på följande sätt:
Hur denna formel fungerar:
Precis som i det första exemplet använder du INDEX-funktionen för att hämta värden från kolumn A baserat på slumpmässiga radnummer. Skillnaden ligger i hur du får fram dessa nummer:
Funktionen RAND fyller intervallet B2:B10 med slumpmässiga decimaler.
Funktionen RANK.EQ beräknar rangordningen för ett slumpmässigt tal i en viss rad. I E2 rangordnar till exempel RANK.EQ(B2, $B$2:$B$10) talet i B2 i förhållande till alla tal i B2:B10. När funktionen kopieras till E3 ändras den relativa referensen B2 till B3 och returnerar rangordningen för talet i B3, och så vidare.
COUNTIF-funktionen tar reda på hur många förekomster av ett visst tal som finns i cellerna ovan. I E2, till exempel, kontrollerar COUNTIF($B$2:B2, B2) bara en cell - B2 själv, och returnerar 1. I E5 ändras formeln till COUNTIF($B$2:B5, B5) och returnerar 2, eftersom B5 innehåller samma värde som B2 (observera att det här bara är för att bättre förklara formelns logik; på en liten datamängd är chansen att fådubbla slumpmässiga tal ligger nära noll).
För alla första förekomster ger COUNTIF 1, från vilket du drar 1 för att behålla den ursprungliga rangordningen. För andra förekomster ger COUNTIF 2. Genom att dra av 1 ökar du rangordningen med 1, vilket förhindrar dubbla rangordningar.
Till exempel för B2 ger RANK.EQ 1. Eftersom detta är den första förekomsten ger COUNTIF också 1. RANK.EQ + COUNTIF ger 2. Och - 1 återställer rang 1.
Se nu vad som händer vid den andra förekomsten. För B5 ger RANK.EQ också 1 medan COUNTIF ger 2. Om du adderar dessa resultat får du 3, från vilket du subtraherar 1. Som slutresultat får du 2, vilket representerar rangordningen för numret i B5.
Rankingen går till row_num argumentet för INDEX-funktionen, och den väljer värdet från motsvarande rad (den kolumn_nummer Argumentet har utelämnats, så det är standardvärdet 1. Detta är anledningen till att det är så viktigt att undvika dubbla rangordningar. Om det inte vore för COUNTIF-funktionen skulle RANK.EQ ge 1 för både B2 och B5, vilket skulle leda till att INDEX skulle returnera värdet från den första raden (Andrew) två gånger.
Hur man förhindrar att Excel slumpmässigt urval ändras
Eftersom alla randomiseringsfunktioner i Excel som RAND, RANDBETWEEN och RANDARRAY är flyktiga, räknas de om vid varje ändring på kalkylbladet. Detta leder till att ditt slumpmässiga urval ändras kontinuerligt. För att förhindra detta använder du funktionen Klistra in special> värden för att ersätta formler med statiska värden. För detta utför du följande steg:
- Markera alla celler med din formel (alla formler som innehåller funktionerna RAND, RANDBETWEEN eller RANDARRAY) och tryck Ctrl + C för att kopiera dem.
- Högerklicka på det valda området och klicka på Klistra in speciellt > Värden Alternativt kan du trycka på Shift + F10 och sedan V , som är genvägen för den ovan nämnda funktionen.
Detaljerade steg finns i Hur man konverterar formler till värden i Excel.
Excel slumpmässigt val: rader, kolumner eller celler
Fungerar i alla versioner av Excel 365 till och med Excel 2010.
Om du har vår Ultimate Suite installerad i Excel kan du göra slumpmässiga provtagningar med ett musklick i stället för en formel. Så här gör du:
- På den Verktyg för Ablebits klickar du på fliken Randomisera > Välj slumpmässigt .
- Välj det intervall från vilket du vill ta ett urval.
- Gör följande i tilläggsrutan:
- Välj om du vill välja slumpmässiga rader, kolumner eller celler.
- Definiera urvalets storlek: det kan vara en procentsats eller ett antal.
- Klicka på Välj knapp.
Det var allt! Som visas i bilden nedan har ett slumpmässigt urval valts ut direkt i din datamängd. Om du vill kopiera det någonstans trycker du bara på en vanlig genväg för att kopiera (Ctrl + C) .
Så här gör du för att välja ett slumpmässigt urval i Excel utan dubbletter. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!
Tillgängliga nedladdningar
Slumpmässigt urval utan dubbletter - exempel på formler (.xlsx-fil)
Ultimate Suite 14-dagars fullt fungerande version (.exe-fil)