
Vispārēja formula
=INDEX(names,RANDARRAY(n,1,1,COUNTA(names),TRUE))
Kopsavilkums
Lai izveidotu nejaušu nosaukumu sarakstu, varat izmantot funkciju INDEX un funkciju RANDARRAY, lai atlasītu nejaušus vārdus no esoša saraksta. Parādītajā piemērā formula D5 ir:
=INDEX(names,RANDARRAY(10,1,1,COUNTA(names),TRUE))
kas atgriež 10 nejaušas vērtības no nosauktajiem diapazoniem "nosaukumi" (B5: B104).
Paskaidrojums
Būtībā šī formula izmanto funkciju INDEX, lai izgūtu 10 nejaušus nosaukumus no nosaukta diapazona ar nosaukumu “nosaukumi”, kurā ir 100 nosaukumi. Piemēram, lai izgūtu piekto vārdu no saraksta, mēs izmantojam INDEX šādi:
=INDEX(names,5)
Tomēr šajā gadījumā triks ir tāds, ka mēs nevēlamies vienu vārdu zināmā vietā, mēs vēlamies 10 nejaušus nosaukumus nezināmās vietās no 1 līdz 100. Tas ir lielisks funkcijas RANDARRAY izmantošanas gadījums, kas var izveidot nejauša veselu skaitļu kopa noteiktā diapazonā. Strādājot no iekšpuses, mēs izmantojam RANDARRAY, lai iegūtu 10 nejaušus skaitļus no 1 līdz 100 šādi:
RANDARRAY(10,1,1,COUNTA(names)
Funkcija COUNTA tiek izmantota, lai sarakstā iegūtu dinamisku nosaukumu skaitu, taču šajā gadījumā mēs varētu aizstāt COUNTA ar cieto kodu 100 ar tādu pašu rezultātu:
=INDEX(names,RANDARRAY(10,1,1,100,TRUE))
Jebkurā gadījumā RANDARRAY atgriezīs 10 numurus masīvā, kas izskatās šādi:
(64;74;13;74;96;65;5;73;84;85)
Piezīme: šie skaitļi ir tikai nejauši, un tie nav tieši saistīti ar parādīto piemēru.
Šis masīvs tiek tieši atgriezts funkcijā INDEX kā rindas arguments:
=INDEX(names, (64;74;13;74;96;65;5;73;84;85)
Tā kā mēs piešķiram INDEX 10 rindu numurus, tas iegūs 10 rezultātus, no kuriem katrs atbilst nosaukumam dotajā pozīcijā. 10 nejaušie nosaukumi tiek atgriezti noplūdes diapazonā, sākot no šūnas D5.
Piezīme: RANDARRAY ir nepastāvīga funkcija, un tā tiks pārrēķināta katru reizi, kad tiek mainīta darblapa, izraisot vērtību izmantošanu. Lai apturētu vērtību automātisku šķirošanu, varat kopēt formulas un pēc tam izmantot Īpašā ielīmēšana> Vērtības, lai formulas pārveidotu par statiskām vērtībām.
Novērsiet dublikātus
Viena no iepriekš minētās formulas problēmām (atkarībā no jūsu vajadzībām) ir tā, ka RANDARRAY dažreiz ģenerēs skaitļu dublikātus. Citiem vārdiem sakot, nav garantijas, ka RANDARRAY atgriezīs 10 unikālus skaitļus.
Lai no saraksta nodrošinātu 10 dažādus nosaukumus, varat pielāgot formulu, lai nejauši kārtotu pilnu vārdu sarakstu, pēc tam no saraksta izgūstiet pirmos 10 nosaukumus. F5 formulā tiek izmantota šāda pieeja:
=INDEX(SORTBY(names,RANDARRAY(COUNTA(names))),SEQUENCE(10))
Šeit pieeja ir tāda pati kā iepriekš - mēs izmantojam INDEX, lai izgūtu 10 vērtības no vārdu saraksta. Tomēr šajā formulas versijā mēs nejauši kārtojam vārdu sarakstu, pirms nododat sarakstu šādam INDEX:
SORTBY(names,RANDARRAY(COUNTA(names)))
Šeit funkcija SORTBY tiek izmantota, lai nejauši kārtotu vārdu sarakstu ar masīva vērtībām, kuras izveidojusi funkcija RANDARRAY, kā sīkāk paskaidrots šeit.
Visbeidzot, mums jāatgūst 10 vērtības. Tā kā mums jau ir nosaukumi nejaušā secībā, mēs varam vienkārši pieprasīt pirmos 10 ar masīvu, ko izveidojusi funkcija SEQUENCE:
SEQUENCE(10)
SEQUENCE izveido secīgu numuru masīvu:
(1;2;3;4;5;6;7;8;9;10)
kas tiek atgriezts funkcijā INDEX kā rindas arguments. Pēc tam INDEX atgriež pirmos 10 nosaukumus noplūdes diapazonā, piemēram, sākotnējo formulu.