Excel-kaava: Luo satunnaisia ​​tekstijonoja -

Sisällysluettelo

Yleinen kaava

=INDEX(characters,RANDARRAY(n,1,1,count,TRUE))

Yhteenveto

Luodaksesi luettelon satunnaisista tekstimerkkijonoista, voit käyttää kaavaa, joka perustuu INDEX, RANDARRAY ja TEXTJOIN. Esitetyssä esimerkissä kaava kohdassa D5 on:

=TEXTJOIN("",1,INDEX(chars,RANDARRAY(6,1,1,26,TRUE)))

missä merkit on nimetty alue B5: B30, joka sisältää kirjaimet AZ. Kun kaava kopioidaan alas saraketta, se luo uuden 6-merkkisen tekstimerkkijonon jokaiselle riville.

Selitys

Excel 365: n uusien dynaamisten taulukoiden kaavat helpottavat tiettyjen hankalien kaavojen ongelmien ratkaisemista.

Tässä esimerkissä tavoitteena on luoda luettelo satunnaisista 6 merkin koodeista. Satunnaisuutta käsittelee RANDARRAY-funktio, uusi toiminto Excel 365: ssä. RANDARRAY palauttaa 6 satunnaislukua INDEX: lle, joka sitten hakee 6 satunnaisarvoa nimetyistä aluemerkeistä. Indeksin tulokset ketjutetaan sitten yhdessä TEXTJOIN-funktion kanssa.

Esitetyssä esimerkissä kaava kohdassa D5 on:

=TEXTJOIN("",1,INDEX(chars,RANDARRAY(6,1,1,26,TRUE)))

Työskentelemällä sisältä ulospäin, RANDARRAY-toimintoa käytetään tuottamaan taulukko, joka sisältää kuusi satunnaislukua välillä 1-26:

RANDARRAY(6,1,1,26,TRUE) // return array like (14;5;21;7;25;3)

Huomaa, että palautettu taulukko vaihtelee RANDARRAY-toiminnon jokaisen esiintymän mukaan. Koska RANDARRAY on haihtuva toiminto, se laskee uudelleen jokaisen laskentataulukon muutoksen kanssa.

Tämä satunnaislukujen taulukko palautetaan suoraan INDEX-funktioon riveinä:

INDEX(chars,(14;5;21;7;25;3))

Koska pyydämme INDEXiä 6 riviltä, ​​saamme 6 tulosta tällaisessa taulukossa:

("N","E","U","G","Y","C")

Tämä taulukko palautetaan TEXTJOIN-funktioon text1-argumenttina:

=TEXTJOIN("",1,("N","E","U","G","Y","C")) // returns "NEUGYC"

TEXTJOIN on asetettu käyttämään tyhjää merkkijonoa erottimena ja ohittamaan tyhjät arvot. Tällä kokoonpanolla TEXJOIN yksinkertaisesti yhdistää kaikki arvot yhteen ja palauttaa 6-merkkisen tekstimerkkijonon, kuten "NEUGYC".

Laske merkit ohjelmallisesti

Sen sijaan että koodaisit merkkien koon suoraan RANDARRAY-toimintoon, voit käyttää COUNTA-funktiota laskeaksesi matriisin elementit ja palauttaaksesi ne RANDARRAY:

RANDARRAY(6,1,1,COUNTA(chars),TRUE)

Oletetaan, että merkit eivät sisällä tyhjiä soluja.

Luo merkit ohjelmallisesti

Koska AZ-kirjaimilla on taustalla olevat numeeriset koodiarvot, on mahdollista luoda joukko merkkijonoja, joita käytetään tekstimerkkijonojen kokoamiseen ohjelmallisesti, alueen käyttämisen sijaan. Tämä voidaan tehdä CHAR- ja SEQUENCE-toiminnoilla.

Voit luoda taulukon, jossa on kaikki isot kirjaimet AZ, joka yhdistyy ASCII 65-90:

=CHAR(SEQUENCE(26,1,65,1)) // returns ("A","B","C",… )

Voit luoda pieniä kirjaimia az, jotka vastaavat ASCII 97-122:

=CHAR(SEQUENCE(26,1,97,1)) // returns ("a","b","c",… )

Tämä koodi voidaan pudottaa alkuperäiseen kaavaan korvaamaan "merkit" seuraavasti:

=TEXTJOIN("",1,INDEX(CHAR(SEQUENCE(26,1,65,1)),RANDARRAY(6,1,1,26,TRUE)))

Muut merkit

Merkkien nimetty alue merkkiä voi olla mitä haluat. Jos lisäät enemmän kuin 26 merkkiä (tai vähemmän), säädä numero 26 tarvittaessa tai käytä COUNTAa yllä kuvatulla tavalla.

Ilman Excel 365: tä

It is possible to generate random text strings without Excel 365, but the formula is more tedious and redundant. Since we don't have a good way to get 6 random numbers all at once, we use the RANDBETWEEN function to get one random value at a time:

=INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))

This formula uses the INDEX function to retrieve one random value at a time from the named range chars, and the 6 results are concatenated together into a single text string. Line breaks added for readability.

It is also possible to generate values A-Z directly with CHAR and RANDBETWEEN like this:

=CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))

Tässä versiossa RANDBETWEEN palauttaa arvon välillä 65-90 (mukaan lukien), joka vastaa AZ-kirjainten ASCII-arvoa (isot kirjaimet). CHAR-funktio kääntää numeerisen arvon kirjaimeksi. Kuten edellä, kaikki tulokset liitetään yhteen tekstimerkkijonoon.

Mielenkiintoisia artikkeleita...