Pari excel-ongelmaa

Pahus71

Kaksi erillistä taulukkoa ja ongelmaa. Toisessa taulukossa seurataan kulutuksia (vesi ja sähkö), miten saisin siihen vuosikeskiarvon päivämäärien ja lukemien avulla, löytyykö kaavaa? Toinen taulukko; ikä merkitty muodossa dd.mm.yyyy, miten saisin keski-iän laskettua useamman iän ryhmästä? Ensimmäinen luku ruudussa D3 ja siitä alaspäin.

8

741

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • odotellessa

      vähän selvennyksiä molempiin kysymyksiin. Vuosikeskiarvo? Vuosikeskiarvo on yhden vuoden kulutus, vai tarkoitatko päivää kohti, kuukautta kohti, annettujen päivien väliselle ajalle?
      Ikä tarkoittanee tässä kaiketi syntymäaikaa, eikä kuinka vanha on?

      • Pahus71

        Siis tuossa kulutusasiassa: jos kulutus vaikka välillä 7.3.-6.12.2010 on ollut 123 yksikköä, paljonko on kulutus vuositasolla? Eli kaava, joka laskee 365 päivän kulutuksen vaikka tuon aikavälin tiedoilla. Ei tarvitse olla sidottu kalenterivuoteen vaan voi olla siis jatkuvasti muuttuva seuranta.
        Ikäasiassa: pitäisi siis saada mahdollisimman tarkka keskiarvo vaikka 25 ihmisen syntymäaikojen perusteella. Sellaisen kaavan sain jo tehtyä, jossa jokaisen ikä lasketaan ensin täysinä vuosina ja niistä otetaan sitten keskiarvo, mutta jos jotenkin saisin ne iät vähän tarkempaan muotoon, vaikka ykden desimaalin tarkkuuteen.


      • Pahus71 kirjoitti:

        Siis tuossa kulutusasiassa: jos kulutus vaikka välillä 7.3.-6.12.2010 on ollut 123 yksikköä, paljonko on kulutus vuositasolla? Eli kaava, joka laskee 365 päivän kulutuksen vaikka tuon aikavälin tiedoilla. Ei tarvitse olla sidottu kalenterivuoteen vaan voi olla siis jatkuvasti muuttuva seuranta.
        Ikäasiassa: pitäisi siis saada mahdollisimman tarkka keskiarvo vaikka 25 ihmisen syntymäaikojen perusteella. Sellaisen kaavan sain jo tehtyä, jossa jokaisen ikä lasketaan ensin täysinä vuosina ja niistä otetaan sitten keskiarvo, mutta jos jotenkin saisin ne iät vähän tarkempaan muotoon, vaikka ykden desimaalin tarkkuuteen.

        moduuliin...

        souun kaava esim. =kulutus("B1";"B2";"C1";"C2"),
        jossa B1=alkupvm
        jossa B2=loppupvm
        jossa C1=alkulukema
        jossa C2=loppulukema

        soluosoite voi olla mikä vaan

        Function Kulutus(Alkupvm As String, Loppupvm As String, Alkulukema As String, Loppulukema As String) As Double
        Dim kokokulutus As Double
        Application.Volatile True
        pvlkm = CDate(Range(Loppupvm)) - CDate(Range(Alkupvm))
        kokokulutus = Range(Loppulukema) - Range(Alkulukema)
        Kulutus = Int(365 / pvlkm * kokokulutus)
        End Function

        laskee nyt D3 alaspäin viimeiseen soluun keskiarvon ijille(= mitenkähän pitäs kirjottaa ;-)). Kaavasolussa sitten säätelet desimaalit sopivaksi solumuotoilulla...


        Function ikä() As Double
        Dim vika As Long
        Dim syntymäaika As Double
        Dim ikäka As Double
        Dim laskuri As Long
        Application.Volatile True
        vika = Range("D65536").End(xlUp).Row

        For Each solu In Range("D3:D" & vika)
        laskuri = laskuri 1
        syntymäaika = CDate(solu)
        ikä = ikä CDate(Date) - CDate(syntymäaika)
        Next
        ikäka = ikä / laskuri
        ikäka = DateDiff("m", Date - ikäka, Date)
        ikä = ikäka / 12
        End Function


        Keep EXCELing
        @Kunde


      • Pahus71
        kunde kirjoitti:

        moduuliin...

        souun kaava esim. =kulutus("B1";"B2";"C1";"C2"),
        jossa B1=alkupvm
        jossa B2=loppupvm
        jossa C1=alkulukema
        jossa C2=loppulukema

        soluosoite voi olla mikä vaan

        Function Kulutus(Alkupvm As String, Loppupvm As String, Alkulukema As String, Loppulukema As String) As Double
        Dim kokokulutus As Double
        Application.Volatile True
        pvlkm = CDate(Range(Loppupvm)) - CDate(Range(Alkupvm))
        kokokulutus = Range(Loppulukema) - Range(Alkulukema)
        Kulutus = Int(365 / pvlkm * kokokulutus)
        End Function

        laskee nyt D3 alaspäin viimeiseen soluun keskiarvon ijille(= mitenkähän pitäs kirjottaa ;-)). Kaavasolussa sitten säätelet desimaalit sopivaksi solumuotoilulla...


        Function ikä() As Double
        Dim vika As Long
        Dim syntymäaika As Double
        Dim ikäka As Double
        Dim laskuri As Long
        Application.Volatile True
        vika = Range("D65536").End(xlUp).Row

        For Each solu In Range("D3:D" & vika)
        laskuri = laskuri 1
        syntymäaika = CDate(solu)
        ikä = ikä CDate(Date) - CDate(syntymäaika)
        Next
        ikäka = ikä / laskuri
        ikäka = DateDiff("m", Date - ikäka, Date)
        ikä = ikäka / 12
        End Function


        Keep EXCELing
        @Kunde

        ... kovasti, mutta nyt meni helmiä sioille. Olisi tietysti pitänyt jo heti alkuunsa tarkentaa, että olen varsin kädetön näissä, toisinsanoen en tajunnut tuosta edellisestä juuri mitään. Tuon soluun menevän kaavan ymmärsin, mutta mihin tuo function pitäisi laittaa? Käytössäni on siis excel 2002 eli melkoisen vanha versio.

        Sori nyt vaan, mutta pyytäisin selittämään avuttomalle hieman tarkemmin.


      • näinmäälaskisin
        Pahus71 kirjoitti:

        ... kovasti, mutta nyt meni helmiä sioille. Olisi tietysti pitänyt jo heti alkuunsa tarkentaa, että olen varsin kädetön näissä, toisinsanoen en tajunnut tuosta edellisestä juuri mitään. Tuon soluun menevän kaavan ymmärsin, mutta mihin tuo function pitäisi laittaa? Käytössäni on siis excel 2002 eli melkoisen vanha versio.

        Sori nyt vaan, mutta pyytäisin selittämään avuttomalle hieman tarkemmin.

        A1=7.3.2010
        B1=6.12.2010
        C1=123
        D1=(C1/(B1-A1))*365 - vastaus on 163,9 yksikköä vuodessa
        Kaava jakaa 123 päivien määrällä ja kertoo sen sitten 365:llä (vuosikulutus)

        Ikä kysymys
        A1=1.1.2000
        B1=(TÄMÄ.PÄIVÄ()-A1)/365.25 (365,25 ottaa huomioon karkausvuodet) - vastaus 10,96 tai 11,0

        Bonus:
        A1=1.1.2000
        B1=(PVMERO(A1;NYT();"Y")&"v "&TEKSTI(PVMERO(A1;NYT();"YM");"00")&"kk "&TEKSTI(PVMERO(A1;NYT();"MD");"00")&"p")
        Vastaus on 10v 11kk 15p


      • Pahus71
        näinmäälaskisin kirjoitti:

        A1=7.3.2010
        B1=6.12.2010
        C1=123
        D1=(C1/(B1-A1))*365 - vastaus on 163,9 yksikköä vuodessa
        Kaava jakaa 123 päivien määrällä ja kertoo sen sitten 365:llä (vuosikulutus)

        Ikä kysymys
        A1=1.1.2000
        B1=(TÄMÄ.PÄIVÄ()-A1)/365.25 (365,25 ottaa huomioon karkausvuodet) - vastaus 10,96 tai 11,0

        Bonus:
        A1=1.1.2000
        B1=(PVMERO(A1;NYT();"Y")&"v "&TEKSTI(PVMERO(A1;NYT();"YM");"00")&"kk "&TEKSTI(PVMERO(A1;NYT();"MD");"00")&"p")
        Vastaus on 10v 11kk 15p

        kiitos kovasti! Tuota keskikulutuskaavaa hieman muokkaamalla pääsin tulokseen. Voiko tuota jotenkin muokata siten, että kun syötän seuraaviin soluihin uudet päivämäärät ja kulutuslukemat, tulisi suoraan tuore lukema keskikulutukseksi? Nyt pitäisi siis jokaisen uuden lukeman jälkeen muuttaa kaavaa viimeisimmän solun mukaiseksi. Hankala selittää, toivottavasti saatte selvän. :)


      • Pahus71 kirjoitti:

        kiitos kovasti! Tuota keskikulutuskaavaa hieman muokkaamalla pääsin tulokseen. Voiko tuota jotenkin muokata siten, että kun syötän seuraaviin soluihin uudet päivämäärät ja kulutuslukemat, tulisi suoraan tuore lukema keskikulutukseksi? Nyt pitäisi siis jokaisen uuden lukeman jälkeen muuttaa kaavaa viimeisimmän solun mukaiseksi. Hankala selittää, toivottavasti saatte selvän. :)

        näinmäätonlaskisin...
        kaavasi ei kylläkään laske solusta D3 alaspäin soluissa olevien ikien keskiarvoa?

        Ihan perustasolla toi munkin juttu on. Jos osaa kopioida kaavat moduuliin niin sen jälkeen löytyy kaavat normaali kaavaluettelosta ja loppu on ihan samaa kuin käyttäisit "peruskaavoja" lisää funktion avulla, mutta nyt hommat vaan paljon helpommalla. Esim. olkoon nyt ikä mallina kaavasta

        soluun kaava =ikä()
        ja laskee automaattisesti D3 alaspäin keskiarvon ijille. Jos tarttee muuttaa aluetta ei ole iso ongelma, muuttaa yhdellä kaavarivillä osoitetta, toisin kuin dynaamisella "perustason kaavalla", jonka ehkä saat nikkaroitua. Katellaan mitä tuleman pitää...

        Vaikeatako?

        Keep VBAing
        @Kunde


      • Pahus71
        kunde kirjoitti:

        näinmäätonlaskisin...
        kaavasi ei kylläkään laske solusta D3 alaspäin soluissa olevien ikien keskiarvoa?

        Ihan perustasolla toi munkin juttu on. Jos osaa kopioida kaavat moduuliin niin sen jälkeen löytyy kaavat normaali kaavaluettelosta ja loppu on ihan samaa kuin käyttäisit "peruskaavoja" lisää funktion avulla, mutta nyt hommat vaan paljon helpommalla. Esim. olkoon nyt ikä mallina kaavasta

        soluun kaava =ikä()
        ja laskee automaattisesti D3 alaspäin keskiarvon ijille. Jos tarttee muuttaa aluetta ei ole iso ongelma, muuttaa yhdellä kaavarivillä osoitetta, toisin kuin dynaamisella "perustason kaavalla", jonka ehkä saat nikkaroitua. Katellaan mitä tuleman pitää...

        Vaikeatako?

        Keep VBAing
        @Kunde

        Kiitos kovasti molemmille. Jostain syystä tuo näinmäälaskisin teki mulle paremmin aukeavan mallin, lienee Kunden kaava liian vaikea mulle. Varmaan hyvä sekin, mutta tuolla toisellakin sain asian selväksi. Olisi varmaan syytä lähteä jollekin syvälliselle excel-kurssille, näyttäisi olevan paljon tuntemattomia sovelluskeinoja tuossa...


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Maatalous- ja yritystuet pois, työeläkevaroilla valtion velka pois

      Suomi saadaan eheytettyä kädenkäänteessä, kun uskalletaan tehdä rohkeita ratkaisuja. Maatalous- ja yritystuet ovat hait
      Maailman menoa
      149
      3989
    2. Hei! Halusin vain kertoa.

      En tiedä luetko näitä, mutta näimme n.4vk sitten, vaihdoimme muutaman sanan ja tunsin edelleen kipinän välillämme. Katso
      Tunteet
      13
      3667
    3. Riikka on siis suomalaisille velkaa 84 mrd

      Jos kauhukabinetti istuu vaalikauden loppuun. Keskimäärin yli 20 miljardia uutta velkaa rikkaiden veronalennuksiin jokai
      Maailman menoa
      52
      2999
    4. Miksi ikävä ei helpotu vuosien jälkeenkään?

      Tänään olin ensimmäistä kertaa sinun lähtösi jälkeen tilassa, jossa vuosia sitten nähtiin ensimmäistä kerta. Ollessani
      Rakkaus ja rakastaminen
      12
      2992
    5. Sanna on suomalaisille siis velkaa 24 mrd euroa

      Muistanette vielä kuinka Italian remonttirahoja perusteltiin sillä, että italialaiset ostaa suomalaisilta paidatkin pääl
      Maailman menoa
      145
      2561
    6. Teboili alasajo on alkanut

      Niinhän siinä kävi että teebboili loppuu...
      Suomussalmi
      58
      2369
    7. Luotathan siihen tunteeseen, joka välillämme on?

      Uskothan myös, että se kestää tämän? Kaipaan sinua valtavasti. Vielä tehdään yhdessä tästä jotain ihmeellistä ja kaunist
      Ikävä
      28
      2033
    8. "Sanna Marinin kirja floppasi", kertoo eräs median otsikko

      "Miljardien tappio - Sanna Marin vaikenee", kertoo toinen otsikko. Marin ei siis siinä kirjassaan kerro sanallakaan For
      Maailman menoa
      107
      1485
    9. Tiesitkö? Suomessa lääkäri voi toimia ammatissaan, vaikka hän olisi seksuaalirikollinen

      Järkyttävää… Motin mukaan Suomessa lääkäri voi toimia ammatissaan, vaikka hän olisi yksityiselämässään syyllistynyt es
      Maailman menoa
      63
      1344
    10. Pystyisitkö pitämään

      Näppejä erossa jos tulisi siihen tilaisuus
      Ikävä
      23
      1237
    Aihe