Spalte lässt sich nicht auf "Dauer" umschalten

Hallo,
ich will in einer Zeiterfassungstabelle alle Wochenendtage gesondert darstellen. Dazu habe ich eine Spalte {Tag}, die den Wochentag aus dem Datum ermittelt. Wenn diese Spalte nun Samstag oder Sonntag ist, sollen die angefallenen Stunden aus der Spalte {Anzahl Stunden} auch in die Spalte {Anzahl Stunden WE} eingetragen werden.
Dazu benutze ich folgende Formel:

if({Tag}="Sonntag",if(and({Schicht Beginn},{Schicht Ende}),{Anzahl Stunden}))

Nun müsste die Spalte {Anzahl Stunden WE} vom Format auf “Dauer” stehen, aber es wird immer automatisch “String” ermittelt, daher erhalte ich dann Einträge wie 43200 statt 12h.
Wie kann ich die automatische Ermittlunghier austricksen?

Hi @leclerke.

Versuche es mal mit einem text({Anzahl Stunden}, 'duration'). Das sollte den Wert als Dauer konvertieren. Du kannst auch das komplette If() mit einem text umschließen, wenn du dir sicher bist, dass alle Werte immer vom Typ Dauer sind.

1 Like

43200 ist 12h in Sekunden. Der Wert ist also schon mal nicht verkehrt.

Achte darauf, dass die Spalte “Anzahl Stunden” als Zahl oder als Dauer formatiert ist

(Ganz grundsätzlich ist bei einer Anfrage ein Screenshot hilfreich. Dann sieht man nämlich auf einen Blick, wie der Inhalt der von Dir verwendeten Spalte formatiert ist. Außerdem sagt ein Bild mehr als tausend Worte.)

Danke für die Antworten.
Die Spalte “Anzahl Stunden” ist bereits (automatisch) auf Zeit/Dauer eingestellt, die Spalte ist eine Formelspalte, ebenso wie die “Anzahl Stunden WE” eine Formelspalte ist. Die Zwangsumschaltung über text({Anzahl Stunden}, 'duration') funktioniert zwar erst mal in der Darstellung, aber die Spalte bleibt ein String, wenshalb die praktische Aufsummierung unterhalb der Gruppe nicht durchgefährt wird.

Screenshot 2022-12-09 at 13-52-55 Mitarbeiter - Arbeitszeiten

Der Ergebnistyp muss Zahl sein, damit die Summenfunktion funktioniert.

Das Ergebnis in der Spalte {Anzahl Stunden} ist eine Zahl. Das sieht man daran, dass die Zahlen rechts ausgerichtet sind. Das ist schon mal gut.

Ich vermute, dass das Problem darin begründet liegt, dass Deine Formel als ELSE-Wert etwas einträgt, was nicht als Zahl interpretiert werden kann. Das führt dazu, dass in allen Zeilen bei denen {Tag} ungleich Sonntag ist, ein nicht-Zahl-Wert eingetragen ist.

Probiere es bitte mal mit dieser Formel:
if(and({Tag}="Sonntag",{Schicht Beginn},{Schicht Ende}),{Anzahl Stunden},0)
Die ist auch konventioneller als Deine eher kreative Formel.