Näytetään tekstit, joissa on tunniste Excel. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste Excel. Näytä kaikki tekstit

maanantai 2. kesäkuuta 2025

Biorytmit tutkittavina Excelissä

Vieläkö muistat biorytmit? Teorian, jonka mukaan ihmisen vireystila noudattaa 23, 28 ja 33 vuorokauden jaksoja. Riskit ovat kohollaan päivinä, jolloin käyrä leikkaa nolla-akselin joko alas tai ylös mennessään.

Itse muistan biorytmit hyvin, sillä kun IT-matkani 1980-luvulla alkoi, biorytmit olivat yleisimpiä ohjelmia, mitä mikrotietokoneille tehtiin. Niitä tulostettiin rätisevällä matriisikirjoittimella erilaisissa yleisötapahtumissa. Vieras sai mukaansa pitkän tulosteen, joka oli oikein tietokoneella tehty.

Tyypillinen biorytmikaavio grafiikkana. Ei ollut näin hienoa 1980-luvulla.

Kiinnostus biorytmejä kohtaan oli korkeimmillaan 80-luvun alussa, kuten Wikipedia tietää kertoa. Sen mukaan biorytmejä pidetään nykyään pseudotieteenä, jolla ei ole todellista pohjaa. Mutta kun löysin vanhat, vuonna 1985 lerpulle siirtämäni tiedot suurmiesten syntymä- ja kuolinpäivistä, tuli mieleen valjastaa Excel töihin.

Keräsin tiedot aikanaan erilaisista lähdeteoksista Tampereen kirjaston lukusalissa istuen. Kopioin ne kynällä paperille, ja siirsin tiedot sitten Tampereen teknillisen yliopiston PDP-keskustietokoneelle  iltaisin päätteellä naputellen. Myöhemmin pelastin aineiston IBM PC -lerpuille ja tein muutamia tilastollisia analyysejä, joista kirjoitin jutun Tietokone-lehden kevään 1986 numeroon. Niinpä, 39 vuotta sitten.

Tietokone-lehti 4/1986, vanha vuosikerta (kuka vielä muistaa Wangin?).

Aineistossa on 651 historiallista luonnontieteilijää, 644 kirjailijaa, 144 matemaatikkoa ja 463 säveltäjää - yhtensä 1902 ihmistä. Sen jälkeen laskin, kuinka moni henkilöistä oli kuollut 23, 28 tai 33 vuorokauden biorytminsä nollakohdassa, ja vertasin tuloksia tilastolliseen keskiarvoon. 

Vielä 1980-luvun puolivälissä laskenta oli hidasta, mutta nykyiset koneet pyörittävät laskentaa helposti, joten pystyin laajentamaan tutkimusta mahdollisten uusien "vaarallisten" biorytmijaksojen löytämiseksi.

Lerpun aineisto oli ASCII-pohjaisena numerodatana, joten ensimmäinen työ oli lukea se Exceliin. Ohjelmassa on kehittynyt import-toiminto, joten sisään lukeminen kävi helposti, joskin päivä, kuukausi ja vuosi olivat omissa sarkkeissaan, joten päivämäärät piti muodostaa niistä kaavalla yhdistäen.

Sitten tulikin yllättävä ongelma: Excelin päivämääräfunktiot alkavat vasta 1.1.1900, joten vanhemmat päiväykset antavat kummallisia tuloksia (eivät kuitenkaan virheilmoitusta, vaikka pitäisi). Elinpäivien lukumäärän laskemiseksi oli keksittävä toinen tapa. VBA-funktion koodaaminen oli yksi vaihtoehto, mutta karkauspäivien huomiointi vaati työtä, joten käytin Pythonin valmista datetime-modulia.

Python-koodi Excelin solussa - näppärää!

Python-koodi soluissa on näppärä ominaisuus, mutta vaatii Excelin yritysversion, ja sielläkin nopeaa laskentaa saa vain rajoitetusti. 

Pilvipalvelujen kiroja: kaikesta voi rahastaa erikseen.

Microsoft on keksinyt uuden tavan rahastaa. Perushintaan kuuluu vain rajoitettu määrä nopeaa Python-suoritusta kuukaudessa. Jos haluaa säilyttää nopeuden siitä pitää maksaa lisää.

Python-nopeutta rajoitetaan kuukausitasolla.

Itselleni tämä ei ole ongelma, koska elinpäivien laskenta toimii hitaammallakin teholla, mutta laittaa kyllä miettimään, millaisen kultaisen häkin pilvipalveluista itselle rakennamme. Häkki on hieno, mutta siitä ulos pääseminen maksaa.

Olisi hienoa, jos Excelissä voisi suoraan noutaa jokaiselta laskentasivulta alimman tai toiseksi alimman rivin soluja yhteenvetosivulle, mutta itse en ole keksinyt tähän fiksua tapaa. Miksei viittauksissa voisi käyttää esim. sivu!A[#last] tai sivu!A[#last-1]-tyyppistä rakennetta? Kikkailemalla viittaus kyllä hoituu, mutta lopulta päädyin tekemään yhteenvedot manuaalisesti kaavoja päivittämällä.

Erilaisia "biorytmejä" 20-84 vuorokauden jaksoina.

Suoraan asiaan: 23, 28 ja 33 vuorokauden jaksot eivät pistä aineistossa esiin millään tavalla. Vain matemaatikkojen ryhmässä 28 vrk osoittaa 56 % "ylikuolleisuutta", toisaalta kirjailijoilla -30 % "alikuolleisuutta". Säveltäjillä 33 vrk on +35 % tilastollista odotusarvoa korkeammalla.

Suurin yli-arvo on 34 vrk matemaatikoilla (+113%), mutta 56 vrk:n arvo (+211 %) on vielä reilusti suurempi. Mitä pidemmästä jaksosta on kyse, sitä epäluotettavammiksi tulokset käyvät, koska matemaattisesti nollakohtia tulee yhä vähemmän ja virhemarginaali kasvaa. Paljon kertoo myös se, että suurimmat erot tulevat juuri siinä ryhmässä, jossa on vähiten aineistoa.

Kaikista (N=1902) laskettuina lukemat osuvat hyvin keskiarvoon ts. ne selittyvät sattumalla (84-109 %). Ensimmäinen isompi ero (+120 %) on 33 ja 34 vuorokauden kohdilla, heti sen jälkeen 35 kohdalla onkin sitten poikkeama toiseen suuntaan (75 %).

Mikään jaksopituus ei nouse erityisesti esiin uhkaavana (suuri prosenttimäärä) kaikissa neljässä ryhmässä.

On helppo uskoa, ettei kulkutautien ja tapaturmien niittäessä satoaan biorytmien asennolla ollut käytännössä vaikutusta kuoleman ajankohtaan. Nykymaailmassa voisi olla toisin, sillä monen henkinen kestävyys on koetuksella. Manuaalisesti kerätty vajaan 2000 henkilön aineisto on myös liian pieni, jotta siitä voisi tehdä mitään johtopäätöksiä.

Siksi tämä laskelma on yhtä viihteellinen kuin biorytmit itsessään, mutta kuitenkin kiinnostava esimerkki siitä, miten monenlaisiin tehtäviin Excel taipuu ja miten sillä voi selvitellä asioita, jotka vielä muutama vuosikymmen sitten olivat laskennallisesti liian raskaita.

perjantai 30. toukokuuta 2025

Ikä painaa Exceliä, mutta käyttäjät tykkäävät

Jokin aika sitten luin, että Microsoftin toimistosovelluksista Excel on kaikkein pidetyin. Selitys on yksinkertainen: sitä käyttävät lähinnä ammattilaiset. Tai no, käyttävät kyllä muutkin, mutta peruskäyttö on suhteellisen helppoa eivätkä vaikeimmat ominaisuudet tule tielle kuten Wordissä tai Powerpointissa.

Olen käyttänyt Exceliä noin vuodesta 1988 lähtien, jolloin se tuli Windowsille (alun perin kyse oli Mac-ohjelmasta). Olen vain hämärästi tietoinen kaikista sen hienouksista, mutta viime aikoina olen joutunut tutustumaan sen moninaisiin toimintoihin. Tässä työssä ChatGPT on ollut suureksi avuksi. Se neuvoo kädestä pitäen esimerkiksi VBA-ohjelmointiin ja tarjoaa valmiita kaavoja monimutkaisiin tehtäviin (ei tosin aina virheittä, mutta siitä lisää myöhemmin).

Jokaisen Excel-käyttäjän kannattaisi käydä verestämässä taitojaan koulutuksessa, jossa viimeisen 10 vuoden aikana tulleita ominaisuuksia opetettaisiin. 

Excel on mahtava työkalu vaikka millaisen aineiston käsittelyyn, mutta ikä näkyy. Erityisesti ärsyttää, miksi funktionimet piti aikoinaan mennä kääntämään suomeksi. Edes ChatGPT ei osaa neuvoa niitä, vaan arpoo hieman saman nimisiä funktioita, jotka eivät tietenkään toimi. Olenkin siirtynyt työkoneessa englanninkielisen Excel-version käyttöön, vaikka muut Office-sovellukset ovat suomeksi. 

Grafiikan suhteen mikään ei tunnu auttavan. Vaikka kuinka monta pylväs- ja viivagraafia olen piirtänyt, mutta aina akselit ja otsikot menevät väärin. 

Miksi Excel on näin tyhmä?

Yläkuvassa on kuukausien numerot ja kpl-määrät. Ei tarvita tekoälyä päättelemään, että kun sarakkeella on kaksi otsikkoa, ensimmäinen numerosarake ei ole "sarja" vaan... niin, mikä? Terminologia on yhtä hankala suomeksi ja englanniksi. Luulisi, että yllä olevan virheen korjaaminen on helppoa, mutta tämä ikkuna ei kyllä tee asiaa helpoksi:

Mikä ihme on "Selitteen osat (sarjat)"?

Kaavoissa $ absoluuttisena merkintänä näyttää sekavalta, mutta ehkä siihen ei ole parempaa vaihtoehtoa? Kaikki käyttäjät eivät tunne edes F4:n toimintaa. Kaavoja kirjoittaessa nuolinäppäinten käyttö saa yhä vieläkin itsellä kaiken sekoamaan, onko vika vain itsessäni? 

Funktioita on tullut koko ajan lisää, jolloin niiden nimeämislogiikka on hämärtynyt. IF-lauseet ovat alkeellisia ohjelmointiin tottuneille. IF (ehto; tosi; epätosi) muuttuu painajaiseksi, kun sisäkkäisiä ehtoja on useampia. Miksi ei voisi olla IF (A1>B1 OR C2>D2) jne?

Jotain yksinkertaisiakin tehtäviä on mahdoton suorittaa helposti. Esimerkiksi: jos A-sarakkeessa on päivämääriä, miten poimia niistä halutulle vuodelle osuvien kappalemäärä ilman apusaraketta ja niin, että haluttu vuosi voidaan lukea toisesta solusta? COUNTIF ei tässä riitä. Temppu kyllä onnistuu, mutta vaatii kikkailua, koska COUNTIF-funktion ehtona ei voi olla funkiota (tässä YEAR). Pitäisi olla tapa viitata kaavassa soluun itseensä (tyyliin COUNTIF(YEAR (tämä solu)=B1). 

Sellainenkin toiminto näyttää puuttuvan, joka synkronoisi välilehdet toisiinsa ts. kun vierittää laskenta-arkkia ja vaihtaa lehteä, se avautuisi samalta kohtaa kuin edellinen lehti.

Yksi kiustallinen harmi syntyy rivi- ja sarakeotsikoista. Miksi ne eivät voisi olla laskenta-arkin "ulkopuolella", niin että data alkaisi aina solusta A1 pysty- ja vaakasuuntaan?

En ihmettelisi, vaikka osa kokemistani puutteista olisi vain puuttuvan koulutuksen tulosta. Ehkä näihin on näppäriä ratkaisuja, mutta itse en ole löytänyt.

Omien funktioiden määrittely on näppärä ominaisuus, mutta voisi olla ihan itsenäinen toiminto VBA:n sijaan. Ja VBA käyttää hämäävästi erilaisia funktionimiä kuin Excel. Esimerkiksi neliöjuuri laskenta-arkissa on SQRT, mutta VBA:ssa SQR.

Itselle on tullut vastaan myös tarve käyttää ennen 1.1.1900 olevia päiväyksiä laskuissa. Se ei suoraan onnistu, koska Excelin ajanlasku alkaa vasta vuodesta 1900. Tätäkin voi kiertää VBA-ohjelmoinnilla.

Excel kaipaisi täydellisen remontin, jossa funktiot ja toiminnot luotaisiin tyhjältä pöydältä. Jokaisen funktion pitäisi toimia sekä yksittäiseen soluun että laajempaan alueeseen kerralla (YEAR-esimerkki edellä).

Jotain kehitystä on sentään tapahtunut. Uusissa Excel-versioissa soluihin voi upottaa Python-ohjelmia. Ennen pitkää tulee mahdolliseksi upottaa myös tekoälykomentoja ja tehtäviä. Google Docsissa tekoälyominaisuus on jo. 

Toisaalta uudet laajennukset vain rapauttavat entisestään 40 vuotta vanhaa Excelin pohjaa. Rakentamalla uutta vanhan päälle ei tule hyvää, pitäisi uusia myös perustukset.

Muokattu 2.6.2025

tiistai 23. huhtikuuta 2013

Excel on mainio ohjelma, Powerpoint ei

Excel-taulukkolaskenta on saanut kritiikkiä sen jälkeen kun paljastui, että kaksi tunnettua taloustieteilijää oli saanut mallistaan vääriä tuloksia. Taloussanomat kirjoitti Argh, mistä näitä Excel-virheitä tulee ja Talouselämä Peräti 88 % Excel-taulukoista sisältää virheitä.

Rohkenen olla eri mieltä. Excel on Microsoftin Office-sovelluksista paras. Ohjelma on pohjimmiltaan hyvin selkeä ja yleensä sen käyttäjät ovat alansa ammattilaisia. Maallikko voi tehdä henkilökohtaisen budjetin tai kalkuloida asuntolainansa vaihtoehtoja, mutta niissä ei juuri voi mokata. Valtaosa Excelin käyttäjistä on talousalan ammattilaisia, jotka tuntevat ohjelman metkut.

Exceliä on kehuttu parhaaksi ohjelmaksi ja ylistetty sovellusten MacGyveriksi, mikä onkin osuva vertaus.

Excelin ongelma on siinä, että laskentataulukon käsitteet periytyvät 1970-luvun Visicalcista, eivätkä enää vastaa tämän päivän tarpeita. Kaavat ja soluviittaukset ovat tarpeettoman hankalia. Lisäksi mallit laajenevat yleensä aiottua suuremmiksi, jolloin rivien ja sarakkaiden lisääminen johtaa virheisiin.

Excelissä on työkaluja viittausten jäljittämiseksi ja se varoittaa oma-aloitteisesti epäloogisuuksista, mutta käyttäjät eivät joko viitsi käyttää toimintoja tai välitä varoituksista. Ellei käyttäjä itse ole huolellinen, mikään ohjelma ei voi olla sitä hänen puolestaan.

Silti uskon, että jos Office-käyttäjien kesken järjestettäisiin kysely, juuri Excel saisi parhaat pisteet. Seuraavana olisi ehkä Word ja ehdottomana hännänhuippuna Powerpoint.

Powerpoint on epäsuosituin, koska tavallinen toimistotyöläinen tarvitsee sitä vain satunnaisesti. Harva tarvitsee ohjelmaa niin usein, että olisi käynyt siitä kurssia tai perehtynyt omin päin ohjelman saloihin. Yleensä Powerpoint otetaan esiin vasta, kun esityksen deadline painaa jo niskassa, ja silloin Powerpoint tuntuu kehnolta.

Vaikka itse käytän Powerpointia lähes päivittäin, olen samaa mieltä. Powerpointissa on kummallisuuksia, joita en 20 vuoden käytön jälkeenkään ole oppinut ymmärtämään. Miksei teksti esimerkiksi osaa kiertää kuvaa automaattisesti? Miksi ohjelma tiivistää rivinvälitystä automaattisesti niin, että tekstit menevät lähes päällekkäin? Miten määräytyy uuden viivan, laatikon tai muun elementin väri? Miksi diaan lisätty teksti leviää koko näytölle eikä rivity automaattisesti? Miten sivupohjat lopulta toimivat? Ja niin edelleen.

Harva meistä omaa graafista silmää, ja silti Powerpoint yrittää tehdä meistä graafikoita. Ei ole yksin ohjelman vika, että Powerpoint-esityksistä tulee huonompia kuin Excelin laskentamalleista. Mokaamista helpottaa sekin, että fontit sekoilevat siirrettäessä esitystä koneesta toiseen. Higgsin bosonin tiedotustilaisuudessa Comic Sans -fontti herätti suoranaista pahennusta. Onko vain sattumaa, että juuri Sveitsissä on perustettu Powerpointin kieltämiseen pyrkivä puolue: Anti-Powerpoint Party?

Onneksi Powerpointilla ei voi Excelin tavoin tehdä miljoonien laskuvirheitä. Tai voi, mutta niitä ei kukaan huomaa, sillä Powerpointin koko idea on yleisön manipulointi ja harhauttaminen.

Siksihän niitä presentaatioita pidetään.

PS. Olen nähnyt kaikenlaisia Excel-käyttäjiä. Mieleen jäi erityisesti henkilö, joka luuli yhteenlaskun vaativan aina summafunktiota -- niinpä hän kirjoitti =SUM(A1+A2). Mutta tällaisia mokia sattuu kaikkien sovellusten kanssa, jos joutuu opettelemaan työkalunsa yritys/erehdys-menetelmällä.