tiistai 14. elokuuta 2012

Excel viikkonumeroiden arvoitus

Haluatko taulukkoon viikkonumeroinnin? Excelissä on VIIKKO.NRO-funktio, joka palauttaa annetun päiväyksen viikkonumeron. Valitettavasti kyseinen funktio ei toimi eurooppalaisen kalenterin kanssa. Mistä tämä johtuu? Syynä saattaa olla, että ohjelmisto on tehty jenkeissä ja heillä on eri viikkonumerointi. Jenkeissä vuoden ensimmäinen viikko on se, jossa on 1. päivä. Euroopassa käytetään ISO 8601-standardia, joka määrittää että vuoden ensimmäinen viikko on se, jossa on vuoden ensimmäinen torstaipäivä. Hämmentävää. Euroopan tavassa on etuna, että vuosi koostuu kokonaisista viikoista. Tästä viikkonumeroiden erosta johtuen, viikkonumerointi puuttuu varmasti monista muistakin sovelluksista.

Excelin versioissa 1997-2007 ongelmaan on ollut tarjolla pitkähkö kaavaratkaisu, jota Outi Lammi käsittelee blogissaan.

Excel 2010-versiossa Eurooppastandardi on päivitetty VIIKKO.NRO-funktioon. Tämän linkin takana tietoa uudistetusta funktiosta Microsoftin sivuilta.

Tässä uuden funktion käyttö kootusti:

VIIKKO.NRO(päivämäärä;[palauta_tyyppi])

Viikko.nro-funktio voi perustua kahteen eri järjestelmään.
  • Järjestelmä 1    Tammikuun 1. päivän sisältävä viikko on vuoden ensimmäinen viikko, joten sen numero on 1.
  • Järjestelmä 2    Vuoden ensimmäisen torstain sisältävä viikko on vuoden ensimmäinen viikko, joten sen numero on 1. Tämä on ISO 8601 ‑standardin mukainen järjestelmä, jota kutsutaan yleisesti eurooppalaiseksi järjestelmäksi.
Haluamme käyttää siis järjestelmää 2. Järjestelmä kaksi vaatii, että funktion palauta_tyyppi argumentti on 21. VIIKKO.NRO(päivämäärä;[palauta_tyyppi])

Eli esimerkiksi näin:

=VIIKKO.NRO(PÄIVÄYS(2012;1;1); 21)
palauttaa soluun arvon 52. Eli 1.1.2012 on vuoden 2011 52 viikolla.

1 kommentti:

  1. Juurikin näin. Esimerkiksi työviikkojen tuntiseuranta on joissain tapauksissa pielessä, jos (kun!) on käytetty funktiota ilman parametria: a) on tehty töitä sunnuntaina (viikon ensimmäinen päivä on oletuksena sunnuntai) b) vuoden vaihtuessa (muu kuin ISO-viikkonumerointi). Hyvä tietää, että vasta 2010:ssa on ratkaistu asia. Makroja varten tein aikoinaan funktion, joka tarkastaa/korjaa Excel VBA:n antaman tuloksen. Samaa ongelmaa voi esiintyä myös melkein missä tahansa Excel-riippumattomassa järjestelmässä, jossa päivittäistä tietoa niputetaan viikkojen alle.

    VastaaPoista