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.
Pari excel-ongelmaa
8
749
Vastaukset
- 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 15pkiitos 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
@KundeKiitos 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
Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?
Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä2011408Veli Sofia teki urosmehiläisen työn
Paljastaessaan kuinka TPS:ssä ei joukkuehenki toimi sooloilijoiden vuoksi, jonka takia koko seura ei pärjää kilpailussa463954Unisex-vessat
Ahdistaa. Miksi kaikki pitää tasapäistää tasa-arvon nimissä? Tasa-arvo on sitä, että kunnioitetaan sukupuolien erilaisu1133140Sosiaalidemokratia romahtanut kautta maailman
nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie1342454Miksi Seta ja Sofia Virta ei vaadi muslimeita kunnioittamaan priden-arvoja?
Kuten tiedetään niin islam ei hyväksy sitä mitä pride edustaa. Seta-pomo Mikkonen nosti hirveän äläkän kun yksi tepsin942166Vastuun ottaminen omasta hyvinvoinnista
Olen huomannut tuttavapiirissäni ihmisiä, joilla on mt-diagnooseja. Sen sijaan, että millekään asialle yritettäisiin teh2001804Sofia Virralle täydet 12 pistettä!
Kun ei jäänyt mukaan vähemmistöjen sortamista epäsuorasti tukevaan joukkueeseen. Urheilijoiden pitäisi olla esikuvia.3071069Miksi Hotelli Kainuuta dissataan?
Ihmetyttää tämä jatkuva yhden yrityksen arvosteleminen. Ikäänkuin mikään ei olisi hyvin. Kuitenkin yritys työllistää, ta18855Toisten elämän moralisointi
Eikö kukin voisi keskittyä lähinnä omaan elämäänsä? Jos jollakulla muulla on tunteita, ajatuksia, tai tekoja oman suhte143785- 53729