Keskiarvo

Minulla on taulukko, jossa on kuukausittaisia henkilöstömääriä. Joka kuukausi on siis omalla välilehdellään, ja taulukossa on eri ammatteja ja kyseisen ammatin edustajien lukumäärä. Ongelmana on keskiarvon laskeminen siten, että laskennassa ei oteta huomioon kuukausia, joita ei ole vielä täytetty. Eli esim. maaliskuun lopussa otettaisiin laskuun mukaan vain alkuvuoden luvut, eikä loppuvuoden nollia. Ja huhtikuussa osaisi taas automaattisesti ottaa laskuun myös huhtikuun, mutta ei loppuvuotta jne. Olipa vaikeasti selitetty?!

Onko tähän olemassa yksinkertaista kaavaa/ratkaisua?
6765
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Aika "hakuammuntaa" tämä on.
Keskiarvo-funktio laskee nollat mukaan, mutta kun jätät solun tyhjäksi ei laske.
TKESKIARVO-funktiolla voi hakea ehtoihin perustuvia keskiarvoja. Jos jossain sarakkeessa on päivämäärät, voi ehdoksi laittaa "

Äänestä
  • pitää olla
    ="

    Äänestä

Tuskimpa tämä kysymystä selventää, mutta yritetään...

Kyseessä on taulukkokokonaisuus, johon on linkitetty useita taulukoita ja tarkoitus on ollut tehdä homma mahdollisimman automaattiseksi. En voi jättää nolla-arvoja tyhjiksi, kun ne tulevat linkitettynä ja yhteenlaskettuna muista taulukoista. TKESKIARVO funktiota en ole saanut toimimaan kun siinä pitäisi kai olla yhtenäinen alue, josta luvut poimitaan. Tässä tapauksessa näin ei ole, vaan keskiarvo lasketaan 12:lla eri välilehdellä olevasta taulukosta.

Joku Excel-opettajakin tätä joskus mietti, muttei äkkiseltään ratkaisua keksinyt. Nyt asia on hoidettu lisäämällä joka kuun lopussa keskiarvokaavaan kulunut kuukausi. Toimii kyllä näinkin, mutta luulisi Excelissä olevan tähänkin joku ratkaisu.

Äänestä
  • Sisäkkäisillä JOS-funktioilla voi kyseisen lisäyksen määrätä tapahtumaan kuunvaihteessa.
    Kaavasta tulee kyllä aika pitkä ja se pitää osittain tehdä toiseen soluun.
    Tein esimerkin joka laskee keskiarvon kolmesta taulukosta kun TÄMÄ.PÄIVÄ() on isompi kuin 31.3.2005, kahdesta kun on isompi kuin 28.2.2005, yhdestä kun isompi kuin 31.1.2005, jos pienempi kuin 31.1.2005 solu on tyhjä.
    Päivämäärät on kaavassa yleisinä lukuina.
    =JOS(TÄMÄ.PÄIVÄ()>38442;KESKIARVO(Taul1!B1:B8;Taul2!B1:B8;Taul3!B1:B8);JOS(TÄMÄ.PÄIVÄ()>38411;KESKIARVO(Taul1!B1:B8;Taul2!B1:B8);JOS(TÄMÄ.PÄIVÄ()>38383;KESKIARVO(Taul1!B1:B8);"")))

    Äänestä

Jos käytät kokoomataulukkoa niin seuraava kaava laskee keskiarvot esim. soluista C1 tammikuu-joulukuu taulukoista.Keskiarvo päivittyy kuukauden ensimmäisenä päivänä. Tarvitset lisätä aputyökaluista analyysityökalut,jolloin saat käyttöösi EoMonth funktion.
=SUMMA(tammikuu:joulukuu!C1)/JOS(TÄMÄ.PÄIVÄ()>EoMonth(TÄMÄ.PÄIVÄ();0);;KUUKAUSI(TÄMÄ.PÄIVÄ())-1)
Kunde :)

Äänestä
  • En nyt ole aivan varma, kun en ehdi perusteellisemmin testailemaan, mutta näyttäisi ainakin siltä että tämä toimii. Kiitokset! :)

    Äänestä

Kommentoi aloitusta


hanna kirjoitti:

Minulla on taulukko, jossa on kuukausittaisia henkilöstömääriä. Joka kuukausi on siis omalla välilehdellään, ja taulukossa on eri ammatteja ja kyseisen ammatin edustajien lukumäärä. Ongelmana on keskiarvon laskeminen siten, että laskennassa ei oteta huomioon kuukausia, joita ei ole vielä täytetty. Eli esim. maaliskuun lopussa otettaisiin laskuun mukaan vain alkuvuoden luvut, eikä loppuvuoden nollia. Ja huhtikuussa osaisi taas automaattisesti ottaa laskuun myös huhtikuun, mutta ei loppuvuotta jne. Olipa vaikeasti selitetty?!

Onko tähän olemassa yksinkertaista kaavaa/ratkaisua?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu