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.