[edit. 14.3.23 lisäsin loppuun kommentin toimimattomuudesta vanhoissa Exceleissä]
Näihin aikoihin varmaankin aika monessa koulussa luodaan istumajärjestyslistoja ylioppilaskirjoituksia varten. Toisaalta opettajat saattavat tarvita opetuksessaan menetelmän, jolla aakkostettuun oppilaslistaan liitetään kullekin oppilaalle satunnainen järjestysluku. Niinpä tein sellaisen Excelillä.
Kauan sitten, kun vielä toimin opehommissa käytin tämän tyyppisen ongelman ratkaisuun GeoGebraa ja sen listakomentoja. Tai sitten sekoitin oppilaita taulukkolaskennan satunnaisluvuilla ja järjestä-valikkokomentojen avulla. Tämä versio perustuu Excelin SORTBY ja SEQUENCE -funktioihin. Aloitin tämän sovelluksen tekemisen Google Sheetsillä, mutta en saanut sitä toimimaan halutulla tavalla. Excelistä löysin sopivat funktiot ongelman ratkaisuun. Palannen joskus ongelman ratkaisuun Google Sheetsillä.
Taulukkoni ainoa kaava on solussa B2. Kaava on =SORTBY(SEQUENCE(COUNTA(A2:A200));RANDARRAY(COUNTA(A2:A200)))
Suomeksi
=LAJITTELE.ARVOJEN.PERUSTEELLA(JONO(LASKE.A(A2:A200));SATUNN.MATRIISI(LASKE.A(A2:A200)))
Tutkitaan miten kaavassa käytetyt funktiot toimivat.
SEQUENCE(n) funktio tuottaa lukujonon 1, 2, …, n alaspäin. Kun soluun A1 kirjoittaa SEQUENCE(n), niin alueelle A1:A10 ilmestyy lukujono 1, 2, …, 10.
SEQUENCE() on suomeksi JONO() Excelissä.
RANDARRAY(n) tuottaa n-kappaletta satunnaislukuja SEQUENCE-funktion tapaan. Kun soluun B1 kirjoitetaan =RANDARRAY(10), niin taulukkoon ilmestyy 10 satunnaislukua.
RANDARRAY on suomeksi SATUNN.MATRIISI.
SORTBY(alue1; alue2) järjestää solualueen alue1 solualueen alue2 mukaiseen järjestykseen.
=SORTBY(A1:A10;B1:B10)
SORTBY() on suomeksi LAJITTELE.ARVOJEN.PERUSTEELLA(), aika selkeä käännös :o)
COUNTA(alue) laskee solualueessa alue olevien ei tyhjien solujen lukumäärän. Kuvassa solussa D11 on kaava =COUNTA(D1:D10). Se tuottaa alueella olevien Excelin olioiden lukumäärän.
COUNTA() on suomeksi LASKE.A().
Näillä tiedoilla lopullisen kaavan tuottaminen onkin itsestäänselvää. Luodaan tyhjään taulukkoon 1 riville otsikot nimi ja paikka. Kirjoitetaan (tai sijoitetaan) nimi-otsikon alle nimiä, tässä versiossa niitä voi kirjoittaa sinne noin 200 kpl. Kun soluun B2 kirjoitetaan kaava =SORTBY(SEQUENCE(COUNTA(A2:A200));RANDARRAY(COUNTA(A2:A200)))
niin sovellus on valmis.
Suomeksi kaava on
=LAJITTELE.ARVOJEN.PERUSTEELLA(JONO(LASKE.A(A2:A200));SATUNN.MATRIISI(LASKE.A(A2:A200)))
Pitänee huomata, että nimissä ei saa olla tyhjiä soluja keskellä. Tällaisessa tilanteessa kaikki oppilaat eivät saa omaa arvoa.
Tämä sovellus toimii vain uusimmissa Excel-versioissa. Käsittääkseni SEQUENCE()-funktio toimii vain Excel for Microsoft 365 ja Excel 2021 -versioissa.
Excel-tiedosto, lataa täältä.
https://mikonfysiikka.files.wordpress.com/2023/03/yo-istumapaikka.xlsx
One Reply to “Istumapaikkanumeroiden arpominen Excelillä”