Date: prev next · Thread: first prev next last
2024 Archives by date, by thread · List index


Hallo Boris,

Boris Kirkorowicz schrieb am 05.11.2024 um 00:35:
Hallo,
gerade brüte ich über einer Zeiterfassung. Diese soll in einer Zelle die
Sollarbeitszeit enthalten, die sich aus der Anzahl der Arbeitstage des
Monats und der täglichen Arbeitszeit ergibt.

Die Feiertage habe ich in einem extra Tabellenblatt gelistet und den
Bereich "Feiertagsdatum" genannt:
Mo., 01.01.2024
Fr., 08.03.2024
Fr., 29.03.2024
So., 31.03.2024
Mo., 01.04.2024
Mi., 01.05.2024
Do., 09.05.2024
Mo., 20.05.2024
Do., 03.10.2024
Mi., 25.12.2024
Do., 26.12.2024
Di., 31.12.2024

Zur Errechnung der Arbeitstage dient im ersten Anlauf die Formel

=NETTOARBEITSTAGE(A3;MONATSENDE(A3;0);Feiertagsdatum;{1;0;0;0;0;0;1})*8

Die geschweiften Klammern im Beispiel sind Kennzeichen einer Inline-Liste. Das ist eine Liste aus konstanten Zahlen und kann keine Berechnungen enthalten.

für eine übliche 40-Stunden-Woche. Das funktioniert soweit, ist jedoch
an einer Stelle etwas unhandlich: da jeder Kollege an unterschiedlichen
Tagen arbeitet (manche Mo-Fr, andere Mo-Do, usw.) und dazu
unterschiedlich viele Stunden täglich, habe ich diese Angaben ebenfalls
in benannte Bereiche ausgegliedert, um die Anpassung für die einzelnen
Kollegen zu vereinfachen. So finden sich die Tagesarbeitsstunden in
einer Zelle Namens "Fehltag" (historisch bedingt), und die individuellen
Wochenarbeitstage in einem Bereich Namens "Arbeitstage":
2       Montag
3       Dienstag
4       Mittwoch
5       Donnerstag
        
Du benötist eine Liste mit genau sieben Werten. Ein freier Tag bekommt die Nummer 1, ein Arbeitstag die Nummer 0.
        
        
(Hier für eine 4-Tage-Woche)

In A3 steht jeweils der Monatserste. Daraus habe ich für die Errechnung
der Sollarbeitszeit folgende Formel gebastelt:

=NETTOARBEITSTAGE(A3;MONATSENDE(A3;0);Feiertagsdatum;{ISTFEHLER(SVERWEIS(1;Arbeitstage;1;0));ISTFEHLER(SVERWEIS(2;Arbeitstage;1;0));ISTFEHLER(SVERWEIS(3;Arbeitstage;1;0));ISTFEHLER(SVERWEIS(4;Arbeitstage;1;0));ISTFEHLER(SVERWEIS(5;Arbeitstage;1;0));ISTFEHLER(SVERWEIS(6;Arbeitstage;1;0));ISTFEHLER(SVERWEIS(7;Arbeitstage;1;0))})*Fehltag

Anstelle von {1;0;0;0;1;1;1} in dem Beispiel, müsste bei dir eine Referenz zu der Liste des Kollegen stehen, also sowas wie

=NETTOARBEITSTAGE(A3;MONATSENDE(A3;0);Feiertagsdatum;IndividuelleArbeitstage)*Fehltag

Wenn die Werte für den Kollegen in einer Zeile C2:I2 stehen dann
=NETTOARBEITSTAGE(A3;MONATSENDE(A3;0);Feiertagsdatum;C2:I2)*Fehltag
oder wenn in einer Spalte C3:C9 dann
=NETTOARBEITSTAGE(A3;MONATSENDE(A3;0);Feiertagsdatum;C3:C9)*Fehltag

Du möchtest wahrscheinlich keinen direkten Zellbereich in deiner Formel haben. Aber um da weiterzuhelfen müsste man genauer wissen, wie die Daten organisiert sind und mit welcher Version von LibreOffice du arbeitest. Mit der Version 24.8 steht dir beispielsweise die Funktion FILTERN zur Verfügung um aus einem rechteckigen Bereich eine einzelne Zeile oder Spalte zu extrahieren.


Damit dachte ich eigentlich, die richtige Syntax getroffen zu haben,
doch es gibt nur einen Fehler: 539
Auch andere Abwandlungen mit unterschiedlicher Klammrpositionierung u.ä.
habe ich mehr oder weniger intuitiv durchprobiert, aber außer der
Fehlernummer änderte sich nicht wirklich etwas.

Die Hilfe nennt die Syntax

NETTOARBEITSTAGE(Startdatum; Enddatum [; [Freie Tage]; [Wochenende]])

und als Beispiel

=NETTOARBEITSTAGE(DATUM(2016;9;12);DATUM(2016;9;25);;{1;0;0;0;1;1;1})

was 6 ergeben soll.

Was mache ich falsch, wie geht es richtig?



Mit freundlichen Grüßen
Regina

--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.