Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Excelin aikalaskuongelmat

Macro [24.02.2013 15:49:22]

#

Olen koittanut laskea Excelillä aikojen erotuksia ja niiden keskiarvoja. Ei vain millän meinaa tuottaa oikeita vastauksia.

Sarakkeissa B ja C riveillä 7-13 on kellonaikoja, nukkumaanmeno- ja heräämisaikoja. D-sarakkeessa vastaavilla riveillä olen kaavalla 24-BX+CX laskenut nukutun ajan.

Kun koitan laskea näiden keskiarvoa funktiolla AVERAGE, saan tulokseksi jotain ihan muuta mitä pitäisi tulla. Jos ajat ovat 8.35, 8.30, 10.35, 8.20, 8.45, 8.45 ja 10.00, tulokseksi tulee 12.30.

Solut ovat muodossa Time (h:mm). Myöskään diagrammin piirtäminen näillä arvoilla ei onnistu, tulokseksi tulee täysin vääristynyt käyrä.

Toisella koneella kokeilin tehdä vastaavaa, jossa tämä toimi ihan hyvin. Omalla koneella pyöritän Windows 8:a Office 2010 -paketilla. Toisella koneella, jolla kokeilin, on Windows 7 ja Office 2007.

Excelissä maa-asetukset on säädetty Suomeen kuten tietokoneessakin.

Mitä pitäisi tehdä, jotta ajat toimisivat?

Grez [24.02.2013 16:28:09]

#

Excelin aika ja päivä ovat sisäisesti lukuja, joissa lasketaan vuorokausia vuoden 1899 viimeisestä päivästä.

Eli kun lasket 24-bx-cx ja oletetaan että saraakeiisa on vain kellonaika, niin tulokseksi tulee jokin kellonaika päivänä 23.1.1900. Jos sitten keskiarvoon tulee mukaan myös tunteja, joissa ei ole tuota 23 ylimääräistä päivää, niin keskiarvo on aika erikoinen.

Eli yksi korjausehdotus on että muutat kaavasta 24 tilalle 1.

Toinen, että tarkistat että kaikki tosiaan on kellonaikoja, eikä mukana ole esim. lukuja, tyyliin 18. (18:00 = 0,75)

neau33 [24.02.2013 16:49:50]

#

Moi Macro!

hoida jutska VBA:lla

Private Sub CommandButton1_Click()

    Dim summa, jakaja
    Range("D7:D15").NumberFormat = "0.00"

    For i = 7 To 13
       Cells(i, 4).Value = DateDiff("n", Cells(i, 2).Text, Cells(i, 3).Text) / 60
       summa = summa + Cells(i, 4).Value
       jakaja = jakaja + 1
    Next

    Range("C15").Value = "keskiarvo"
    Range("D15").Value = summa / jakaja
    Range("E15").Value = "tuntia"

End Sub

Macro [24.02.2013 16:53:37]

#

Kiitti Grez! Muutin 24:n ykköseksi, ja lähti toimimaan.. Diagrammeja ei kyllä vieläkään saa piirrettyä.

http://img827.imageshack.us/img827/9509/errorpg.png

Tosin ihmetyttää, että mikä mahtaa olla ongelmana, kun toisella koneella toimii...

Edit. Kyllähän se sieltä lähti, kun laittoi sarakkeen arvoksi customin ja sieltä t:mm.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta