[LibreOffice] Stundensumme fehlerhaft

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Hallo liebe Gemeinschaft, ich bin gerade am verzweifeln. Ich habe in der aktuellen LibreOffice-Calc-Version einen Stundenzettel erstellt u.a. mit der Summe der geleisteten Stunden. Leider wird die Summe aber nicht korrekt berechnet.

Spalte C = Datum und Uhrzeit Beginn
Spalte D = Datum und Uhrzeit Ende
Spalte E = Dauer =WENN(ODER(ISTLEER($D1);ISTLEER($D1));"";$D1-$C2)

Die Dauer ist ganz normal als Zeit formatiert (HH:MM). Bis hier her funktioniert es prima. Nun möchte ich Spalte E, also die Dauer, summieren. Ich mache dies mit der Formel:
=WENN(ANZAHL(E1:E10)>0; SUMME(E1:E10); "")
und formatiere die Summenzelle mit Zeit [HH]:MM

Für den ersten Monat hat es klappt es genau so, während alle weiteren zwar auch die Summe anzeigen, diese aber keinesfalls stimmt. Ich habe einiges probiert, viel in LibreOffice-Foren gelesen, aber dieses Problem konnte ich bisher einfach nicht lösen. Habe ich etwas übersehen? Freue mich sehr, wenn mit jemand einen neuen Impuls geben, oder sogar bei der Lösung helfen kann.
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Da ist - denke ich - ein Fehler in der Formel. Wenn alles in der Zeile 1 steht (Spalte C und Spalte D), warum lautet dann die Subtraktion D1 - C2? Muss das nicht C1 sein?
 

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Verzeihung, leider ein Tippfehler von mir. Es ist in meiner Tabelle schon richtig eingetragen - also so, wie du es auch gesehen hast. Leider ist das also nicht die Ursache meines Problems und es besteht weiterhin.. :(
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Was tritt denn für ein Fehler auf? Erreicht die Summe nie mehr als 24:00? Dann liegt es nur an der Formatierung.

Ich kenne deinen Tabelleneinhalt nicht genau, habe aber mal versucht das nachzubauen. Du musst - vermute ich - nur die Formatierung des Ergebnisses ändern. Bei mir lautet das korrekte Format

Zeit | 876613:37:46

(Ich hoffe, dass das nicht ergebnisabhängig ist, aber dieses ist ein anderes, also wird es hoffe ich bei dir auch so angezeigt werden.)
 
Zuletzt bearbeitet:

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Ich freue mich sehr über dein Interesse. Das Ergebnis ist eigentlich richtig formatiert mit Zeit -> [H]:MM So, wie du es auch schon raus gefunden hast. Es sind mehr als 24h, dennoch stimmt die Summe nicht. Ich habe die ODS-Tabelle mal hoch geladen, wenn du rein schauen möchtest.
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Ich habe mir die Tabelle geladen. Wo ist der Fehler? Ich kann - auf die Schnelle - nichts entdecken. Bei mir scheint die Arbeitszeit und auch der €-Betrag richtig berechnet zu sein (LibreOffice 4.2.5.2).
 

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Die Stundensumme rechnet er bei mir nicht richtig aus. In der Summe kommt er bei mir auf 48:20, aber manuelles nachrechnen hat 96:20 als Ergebnis. Was zeigt er bei dir über den Stunden als Summe an, wenn ich fragen darf?
..ich verwende die gleiche, aktuelle LibreOffice-Version..

Die Gesamtstundenanzahl ist schon wichtig und wenn die nicht stimmt und ich eigenhändig nachrechnen muss, macht es den Stundenzettel nahezu überflüssig. Die Summe des Stundenlohns in € ist korrekt, weil sich dessen Formel nicht auf die Gesamtstundenanzahl bezieht, sondern auf jeden einzelnen "Arbeitstag".
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Ich habe nirgendwo eine Stundensumme, sondern nur eine €-Summe. Die Beträgt 1.637,67 € und ist als Ergebnis der Multiplikation von 96,20 Stunden x dem Stundensatz korrekt. Wo soll denn 48,20 als Stundensumme stehen?
 

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Über jedem Monat ist eine kleine Zusammenfassung - wie viele Tage im Monat, Durchschnitt des Arbeitsbeginns, Ende des gleichen und dann die Summe der Arbeitszeit (dunkelgraue "Leiste" über den Einträgen des Monats)
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Stimmt, das ist äußerst seltsam. Ich bin auch ratlos.
 

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Hehe, genau das ist meine aktuelle Situation. Ich habe keinen Schimmer, wo der Fehler liegen könnte. Im Bugtracker LOs finde ich auch keinen Eintrag, der das Problem beschreibt. Ich habe die Tabelle auch neu aufgesetzt, mit dem gleichen Ergebnis. Ich nehme an, dass es sich um einen Bug handelt, schließlich habe ich Tabellen, in denen die Summe der Stunden auch funktioniert. Allerdings sind die nicht unter der aktuellen LO-Version entstanden...
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Ich hab' es mal als xls gespeichert und in Excel geöffnet. In E7 und E14 sind Daten vorhanden, die sich nicht rechnen lassen. Evtl. hilft dir das bei der Suche.
 

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Nein, das hilft mir leider nicht weiter. Aber ich bin der Ursache inzwischen schon ein Stückchen näher gekommen. Anscheinend wird in der neuen LibreOffice-Version etwas anders intern formatiert?
Ich habe die Dauer (Arbeitsende-Arbeitsbeginn) von H:MM auf [H]:MM umformatiert und schon stimmt auch die Summe der Stunden. Allerdings habe ich dadurch das 24-Stunden-Problem, sprich: Wenn die Arbeitszeit nach 00:00 endet, wird Murx gerechnet. Nun könnte ich natürlich zu der Zeit (Arbeitsbeginn und -ende) auch das Datum schreiben, aber der Aufwand ist einfach zu hoch. Hast du für diese Problemstellung vielleicht eine Lösung parat?
 

Schniko

Reinette Coulon
Registriert
01.08.08
Beiträge
953
Ich hab die Datei mit OpenOffice geöffnet und da kommen die korrekten 48:20 raus. Das scheint mir allerdings nur ein Hinweis darauf zu sein, dass die Formeln im Grunde ok sind.
 

flocke

Gloster
Registriert
06.07.06
Beiträge
60
@Schniko Jopp, und genau das ist der Fehler, denn es sind mehr als 48,20 Stunden, wenn man's korrekt summiert, aber vielen Dank, dass du's dir angeschaut hast.

Alsooo... die Rumrechnerei mit Zeitformaten hat mich den letzten Nerv gekostet. Nach etwas Recherche habe ich gelesen, dass Calc im Hintergrund sowie so mit Dezimalzahlen rechnet, unabhängig von jedweder Formatierung der Zahlen. Deshalb lasse ich mir die Dauer nun als Dezimalzahl anzeigen und die Summe dessen ebenfalls. Und so klappt auch endlich die korrekte Berechnung / Anzeige der Stunden.
Einziges Manko im Moment, dass Zeitangaben, die über 24h-Grenze laufen negativ berechnet werden. Da ich keine Lust habe auch da noch nach einer passenden Lösung zu suchen, gebe ich z.B. 01:35 am mit 25:35 an und die Berechnung, als auch die Anzeige ([HH]:MM) in Calc ist dann korrekt. Ein kleines Übel, wie ich finde.

Zum nachvollziehen meiner Änderungen habe ich die Demo-Tabelle aktualisiert :)
 
Zuletzt bearbeitet:

Schniko

Reinette Coulon
Registriert
01.08.08
Beiträge
953
Oh ha, da hab ich das direkt falsch herum gelesen.
Du kannst das Problem auch umgehen, indem zu die Zellen in E wie folgt anpasst:
=WENN(ODER(ISTLEER(D6);ISTLEER(D6));"";REST(D6-C6;1))

Da bei der Tagüberschreitung das Ergebnis negativ wird und das Programm die Uhrzeit als Dezimalzahl zwischen 0 und 1 interpretiert, reicht ein modulo 1 aus, um das Ergebnis immer ins positive zu bringen. Damit klappt dann die ganze Rechnung.

An der ursprünglichen Demotabelle reicht diese Änderung. Alles andere kann so bleiben, wie es ist.
 
Zuletzt bearbeitet:

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Wow, genau so habe ich mir das vorgestellt, Schniko. Wie kommst darauf? Hab's selbst nicht so mit Formeln und kann auch die REST-Funktion nicht ganz nachvollziehen, aber damit lässt sich's wieder mit Zeiten rechnen.
Um die (errechneten) Stunden mit einem Stundenlohn zu verrechnen, muss dann aber mit 24 multipliziert werden, sonst haut das nicht hin.

Ich danke vielmals! Es ist zwar "nur" optischer Natur, aber das Auge trägt ja mit in die Zellen ein :D
Die Demo-Tabelle habe ich dementsprechend aktualisiert, falls andere ähnliche Anliegen oder Schwierigkeiten haben.
 

Schniko

Reinette Coulon
Registriert
01.08.08
Beiträge
953
Um die (errechneten) Stunden mit einem Stundenlohn zu verrechnen, muss dann aber mit 24 multipliziert werden, sonst haut das nicht hin.
Genau, das ist aber auch nur logisch, wenn vorher die Uhrzeit in einem Intervall von 0 bis 1 angegeben worden sind.

Hab's selbst nicht so mit Formeln und kann auch die REST-Funktion nicht ganz nachvollziehen, aber damit lässt sich's wieder mit Zeiten rechnen.
Die Rest-Funktion ist die Implementierung der modulo-Funktion. Man kennt es noch aus der Schule: (3 Beispiele)
7 : 4 = 1 Rest 3
7 : 3 = 2 Rest 1
7 : 2 = 3 Rest 1
Das hat man gemacht, als man nur ganze Zahlen kannte und sonst die Aufgabe nicht hätte lösen können. Modulo gibt einem jetzt genau diesen Rest wieder, also:
7 mod 4 = 3
7 mod 3 = 1
7 mod 2 = 1
Damit man sich das mit negativen Zahlen, wie in deinem Beispiel vorstellen kann, könnte man auch sagen, dass im Beispiel 7 mod 4, die 4 so oft von der 7 abgezogen oder zu der 7 hinzuaddiert wird, dass eine Zahl zwischen 0 und 3 herauskommt. In dem Fall 7-1*4 = 3. Dann klappt das auch mit negativen Zahlen, also zum Beispiel -7 mod 4 = 1, da -7 + 2*4 = 1 ist.

Im Prinzip es ist genau das, das du haben möchtest. Wenn du um 21 Uhr anfängst du arbeiten und um 3 Uhr aufhörst, rechnet dein Programm:
3 Uhr - 21 Uhr => 0,125 - 0,875 => -0,75 => -18 Stunden

Das ist allerdings eine Angabe, die nicht innerhalb von 0..24 liegt, was du haben möchtest. Mit Rest-Funktion sieht es so aus:
3 Uhr - 21 Uhr => 0,125 - 0,875 => -0,75 => -0,75 mod 1 = 0,25 =>6 Stunde

Und schon passt alles :)
 
  • Like
Reaktionen: ImpCaligula

flocke

Gloster
Registriert
06.07.06
Beiträge
60
Ja, das verstehe ich und die Erinnerung an die Schule habe ich auch wieder ;) Tante Matik war nie mein Steckenpferd, aber so weit reicht mein Verständnis noch. Vielen, vielen Dank!
 

Ergebnis

Uelzener Rambour
Registriert
10.04.11
Beiträge
370
Kaum ist man mal ein paar Stunden offline, schon löst sich das Problem. Irgendwie toll hier in diesem Forum.