Hvordan få tilfeldig prøve i Excel uten duplikater

  • Dele Denne
Michael Brown

Opplæringen fokuserer på hvordan du gjør tilfeldig prøvetaking i Excel uten gjentakelser. Du finner løsninger for Excel 365, Excel 2021, Excel 2019 og tidligere versjoner.

For en stund siden beskrev vi noen forskjellige måter å velge tilfeldig i Excel. De fleste av disse løsningene er avhengige av funksjonene RAND og RANDBETWEEN, som kan generere dupliserte tall. Følgelig kan det tilfeldige utvalget ditt inneholde gjentatte verdier. Hvis du trenger et tilfeldig utvalg uten duplikater, bruk fremgangsmåtene beskrevet i denne opplæringen.

    Excel tilfeldig utvalg fra listen uten duplikater

    Fungerer bare i Excel 365 og Excel 2021 som støtter dynamiske arrays.

    For å gjøre et tilfeldig valg fra en liste uten gjentakelser, bruk denne generiske formelen:

    INDEX(SORTBY( data, RANDARRAY(ROWS( data))), SEQUENCE( n))

    Hvor n er ønsket utvalgsstørrelse.

    For eksempel, for å få 5 unike tilfeldige navn fra listen i A2:A10, her er formelen som skal brukes:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))

    For enkelhets skyld kan du legge inn prøvestørrelsen i en forhåndsdefinert celle, si C2, og oppgi cellereferansen til SEQUENCE-funksjonen:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))

    Hvordan denne formelen fungerer:

    Her er en forklaring på høyt nivå av formelens logikk: RANDARRAY-funksjonen lager en rekke tilfeldige tall, SORTBY sorterer de opprinnelige verdiene etter disse tallene, og INDEX henter så mange verdier somspesifisert av SEQUENCE.

    En detaljert oversikt følger nedenfor:

    ROWS-funksjonen teller hvor mange rader datasettet ditt inneholder og sender tellingen til RANDARRAY-funksjonen, slik at den kan generere samme antall tilfeldige desimaler:

    RANDARRAY(ROWS(A2:C10))

    Denne matrisen med tilfeldige desimaler brukes som "sortér etter"-matrisen av SORTBY-funksjonen. Som et resultat blir de opprinnelige dataene stokket tilfeldig.

    Fra de tilfeldig sorterte dataene trekker du ut et utvalg av en bestemt størrelse. For dette leverer du den stokkede matrisen til INDEX-funksjonen og ber om å hente de første N -verdiene ved hjelp av SEQUENCE-funksjonen, som produserer en tallsekvens fra 1 til N . Fordi de originale dataene allerede er sortert i tilfeldig rekkefølge, bryr vi oss egentlig ikke om hvilke posisjoner som skal hentes, kun kvantiteten er viktig.

    Velg tilfeldige rader i Excel uten duplikater

    Fungerer bare. i Excel 365 og Excel 2021 som støtter dynamiske arrays.

    For å velge tilfeldige rader uten repetisjoner, bygg en formel på denne måten:

    INDEX(SORTBY( data, RANDARRAY(ROWS( data))), SEQUENCE( n), {1,2,...})

    Hvor n er prøvestørrelsen og {1,2,…} er kolonnenumre å trekke ut.

    La oss som et eksempel velge tilfeldige rader fra A2:C10 uten dupliserte oppføringer, basert på prøvestørrelsen i F1. Siden våre data er i 3 kolonner, leverer vi denne matrisekonstanten til formelen:{1,2,3}

    =INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})

    Og få følgende resultat:

    Hvordan denne formelen fungerer:

    Formelen fungerer med nøyaktig samme logikk som den forrige. En liten endring som gjør en stor forskjell er at du spesifiserer både radnummer og kolonnenummer -argumentene for INDEX-funksjonen: radnummer leveres av SEQUENCE og column_num av matrisekonstanten.

    Hvordan gjøre tilfeldig sampling i Excel 2010 - 2019

    Da bare Excel for Microsoft 365 og Excel 2021 støtter dynamiske matriser, er de dynamiske matrisefunksjonene som brukes i de forrige eksemplene fungerer kun i Excel 365. For andre versjoner må du finne en annen løsning.

    Anta at du vil ha et tilfeldig utvalg fra listen i A2:A10. Dette kan gjøres med 2 separate formler:

    1. Generer tilfeldige tall med Rand-formelen. I vårt tilfelle legger vi den inn i B2, og kopierer deretter ned til B10:

      =RAND()

    2. Takk ut den første tilfeldige verdien med formelen nedenfor, som du skriver inn i E2:

      =INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)

    3. Kopier formelen ovenfor til så mange celler som mange tilfeldige verdier du vil velge. I dette eksemplet vil vi ha 4 navn, så vi kopierer formelen fra E2 til E5.

    Ferdig! Vårt tilfeldige utvalg uten duplikater ser slik ut:

    Hvordan denne formelen fungerer:

    Som i det første eksemplet, bruker du INDEX-funksjon for å hente verdier fra kolonne A basert på tilfeldig radtall. Forskjellen er hvordan du får disse tallene:

    RAND-funksjonen fyller området B2:B10 med tilfeldige desimaler.

    RANK.EQ-funksjonen beregner rangeringen til et tilfeldig tall i et gitt tall. rad. For eksempel, i E2, rangerer RANK.EQ(B2, $B$2:$B$10) tallet i B2 mot alle tallene i B2:B10. Når den kopieres til E3, endres den relative referansen B2 til B3 og returnerer rangeringen til tallet i B3, og så videre.

    TELLHVIS-funksjonen finner hvor mange forekomster av et gitt tall det er i cellene ovenfor. For eksempel, i E2, sjekker COUNTIF($B$2:B2, B2) bare én celle - selve B2, og returnerer 1. I E5 endres formelen til COUNTIF($B$2:B5, B5) og returnerer 2, fordi B5 inneholder samme verdi som B2 (merk at dette bare er for å bedre forklare formelens logikk; på et lite datasett er sjansene for å få dupliserte tilfeldige tall nær null).

    Som resultat, for alle 1. forekomst, COUNTIF returnerer 1, som du trekker 1 fra for å beholde den opprinnelige rangeringen. For 2. forekomster returnerer COUNTIF 2. Ved å trekke fra 1 øker du rangeringen med 1, og forhindrer dermed dupliserte rangeringer.

    For eksempel, for B2, RANK.EQ returnerer 1. Siden dette er den første forekomsten, vil COUNTIF også returnerer 1. RANK.EQ + COUNTIF gir 2. Og - 1 gjenoppretter rangeringen 1.

    Nå, se hva som skjer i tilfelle den andre forekomsten. For B5 returnerer RANK.EQ også 1 mens COUNTIF returnerer 2. Legge sammen disse gir3, som du trekker 1 fra. Som sluttresultat får du 2, som representerer rangeringen av tallet i B5.

    Rangen går til row_num -argumentet til INDEX-funksjonen , og den velger verdien fra den tilsvarende raden (argumentet kolonne_nummer er utelatt, så det er standard til 1). Dette er grunnen til at det er så viktig å unngå duplikatrangering. Hvis det ikke var for COUNTIF-funksjonen, ville RANK.EQ gi 1 for både B2 og B5, noe som får INDEX til å returnere verdien fra den første raden (Andrew) to ganger.

    Hvordan forhindre at Excel tilfeldig utvalg endres

    Siden alle randomiseringsfunksjoner i Excel som RAND, RANDBETWEEN og RANDARRAY er flyktige, beregnes de på nytt med hver endring på regnearket. Som et resultat vil det tilfeldige utvalget ditt kontinuerlig endre seg. For å forhindre at dette skjer, bruk Paste Special > Verdifunksjon for å erstatte formler med statiske verdier. For dette, utfør disse trinnene:

    1. Velg alle cellene med formelen din (enhver formel som inneholder funksjonen RAND, RANDBETWEEN eller RANDARRAY) og trykk Ctrl + C for å kopiere dem.
    2. Høyreklikk det valgte området og klikk Lim inn spesielle > Verdier . Alternativt kan du trykke Shift + F10 og deretter V , som er snarveien til funksjonen ovenfor.

    For detaljerte trinn, se Hvordan konvertere formler til verdier i Excel.

    Excel tilfeldig utvalg: rader, kolonnereller celler

    Fungerer i alle versjoner av Excel 365 til og med Excel 2010.

    Hvis du har vår Ultimate Suite installert i Excel, kan du gjøre stikkprøver med en museklikk i stedet for en formel. Slik gjør du det:

    1. I kategorien Ablebits Tools klikker du på Randomize > Velg tilfeldig .
    2. Velg området du vil velge et utvalg fra.
    3. Gjør følgende i tilleggets rute:
      • Velg om du vil velge tilfeldige rader, kolonner eller celler.
      • Definer prøvestørrelsen: det kan være en prosentandel eller et tall.
      • Klikk Velg -knappen.

    Det er den! Som vist på bildet nedenfor, velges et tilfeldig utvalg direkte i datasettet ditt. Hvis du vil kopiere den et sted, trykker du bare på en vanlig kopisnarvei (Ctrl + C).

    Slik velger du et tilfeldig utvalg i Excel uten duplikater. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Tilgjengelige nedlastinger

    Tilfeldig prøve uten duplikater - formeleksempler (.xlsx-fil)

    Ultimate Suite 14-dagers fullt funksjonell versjon (.exe-fil)

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.