Excel képlet: Véletlenszerű névjegyzék -

Általános képlet

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

Összegzés

Véletlenszerű névlista létrehozásához az INDEX és a RANDARRAY függvény segítségével véletlenszerű neveket választhat ki egy létező listából. A bemutatott példában a D5 képlete a következő:

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

amely 10 véletlenszerű értéket ad vissza a megnevezett tartományból "nevek" (B5: B104).

Magyarázat

Lényegében ez a képlet az INDEX függvény segítségével 10 véletlenszerű név lekérdezésére szolgál egy 100 nevet tartalmazó, "nevek" nevű tartományból. Például az ötödik név lekérdezéséhez a következő indexet használjuk:

=INDEX(names,5)

Azonban a trükk ebben az esetben az, hogy nem egy nevet akarunk egy ismert helyre, hanem 10 véletlenszerű nevet akarunk ismeretlen helyekre 1 és 100 között. Ez kiváló felhasználási eset a RANDARRAY függvény számára, amely létrehozhat egy véletlenszerű egész számok egy adott tartományban. Belülről kifelé haladva a RANDARRAY segítségével 10 véletlenszerű számot kapunk 1 és 100 között:

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

A COUNTA függvénnyel dinamikus névszámot kapunk a listában, de a COUNTA-t helyettesíthetjük kemény kódolású 100-zal ebben az esetben ugyanazzal az eredménnyel:

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

Mindkét esetben a RANDARRAY 10 számot ad vissza egy tömbben, amely így néz ki:

(64;74;13;74;96;65;5;73;84;85)

Megjegyzés: ezek a számok csak véletlenszerűek, és nem közvetlenül a bemutatott példához kapcsolódnak.

Ezt a tömböt közvetlenül az INDEX függvény adja vissza sor argumentumként:

=INDEX(names, (64;74;13;74;96;65;5;73;84;85)

Mivel az INDEX-nek 10 sorszámot adunk, ez 10 eredményt fog eredményezni, amelyek mindegyike megfelel az adott pozíció nevének. A 10 véletlen nevet a D5 cellától kezdve egy kiömlési tartományban adjuk vissza.

Megjegyzés: A RANDARRAY egy ingatag függvény, amely minden alkalommal újraszámolja a munkalap megváltoztatását, ami értékeket igényel. Az értékek automatikus rendezésének leállításához másolja a képleteket, majd a Speciális beillesztés> Értékek használatával konvertálja a képleteket statikus értékekké.

Az ismétlések megakadályozása

A fenti képlet egyik problémája (az Ön igényeitől függően) az, hogy a RANDARRAY néha ismétlődő számokat generál. Más szóval, nincs garancia arra, hogy a RANDARRAY 10 egyedi számot ad vissza.

10 különböző név biztosításához a listából módosíthatja a képletet, hogy véletlenszerűen rendezze a teljes névlistát, majd lekérje az első 10 nevet a listáról. Az F5 képlete ezt a megközelítést használja:

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

A megközelítés itt megegyezik a fentiekkel - az INDEX segítségével 10 értéket kapunk le a névsorból. A képlet ezen verziójában azonban véletlenszerűen válogatjuk a nevek listáját, mielőtt átadnánk a listát az INDEX-nek:

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

Itt a SORTBY függvény segítségével véletlenszerűen rendezhetjük a nevek listáját a RANDARRAY függvény által létrehozott tömbértékekkel, amint itt részletesebben kifejtjük.

Végül be kell szereznünk 10 értéket. Mivel már véletlenszerű sorrendben vannak neveink, egyszerűen kérhetjük az első 10-et a SEQUENCE függvény által létrehozott tömb segítségével:

SEQUENCE(10)

A SEQUENCE sorozatszámokat tömböt épít:

(1;2;3;4;5;6;7;8;9;10)

amelyet sorindokként visszaküldünk az INDEX függvénybe. Az INDEX ezután visszaadja az első 10 nevet egy kiömlési tartományban, mint az eredeti képlet.

érdekes cikkek...