ARBEITSTAG.INTL mit Ausgangsdatum als Wochenende oder FreierTag
#11
Hast Du meinen Hinweis mit der benutzerdefinierten Datengültigkeit übersehen?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#12
Hallo Andreas,
 
ich habe dich dann wohl falsch verstanden. Vielleicht erläuterst du mit 2-3 Bsp. nochmals, was du GENAU suchst.

Aus deinem Post #6 entnehme ich, dass du Mitarbeitereinsätze im In- und Ausland disponierst.
Zitat: „... wann muss dann wer los um rechtzeitig am Einsatzort zu sein und wann ist er dann wieder zu Hause.“

Da denke ich, dass ARBEITSTAG() nicht geeignet ist, da zu ungenau für deinen Zweck. Du brauchst eine relativ genaue Zeitberechnung (evtl. nach Std.) um den Ablauf zu planen: Anreise (ca. 6h) – Arbeitsauftrag vor Ort (ca. 20h) – Rückreise (ca. 5h). So in der Art?

Der Arbeitsauftrag vor Ort erfordert Arbeitzeiten, Feiertage und WoEnde nach den Regeln vor Ort. Die An- und Abreise können aber jederzeit erfolgen (auch an WoE u. FT)? Richtig?
Und jetzt soll das Ganze rückwärts gerechnet werden? Fix ist nur der Termin vor Ort? Du willst wissen, wann muss er los und wann ist er wieder zurück?
 
Gruß Sigi
Antworten Top
#13
(26.01.2026, 07:11)RPP63 schrieb: Hast Du meinen Hinweis mit der benutzerdefinierten Datengültigkeit übersehen?

Hallo Ralf,

nein, habe ich nicht. Eine benutzerdefinierte Datengültigkeit wäre nur eine Begrenzung das der User nur ein korrektes Datum eingeben kann... welches man ja auch erstmal ausrechnen/prüfen muss ob es korrekt ist und damit sind wir wieder beim Grundproblem.

Andreas.
Antworten Top
#14
(25.01.2026, 13:04)Andreas Killer schrieb: Theoretisch könnte man in diesem Fall das Ausgangsdatum bis zum nächsten Arbeitstag weiter rechnen, das ist mit Formeln jedoch nur schwer machbar. Außerdem würde ein solches Konstrukt das Ergebnis verschleiern und nur schwer nachvollziehbar machen. Gerade wenn man Fälle bedenkt das die Anzahl der Tage auch mal 0 sein kann, was bedeutet die Arbeit am selben Tag erledigt wird.

Wenn ich Dich richtig verstehe, suchst Du ja eigentlich nur nach dem Datum des 1. Arbeitstages eines definierten Zeitraums?
Wenn es nicht unbedingt eine Formellösung sein muss, hätte ich folgende Alternative:
Du benötigst eine Abfrage "Periodentabelle" mit den Spalten Datum und Wochentag für den betreffenden Zeitraum und eine Feiertagstabelle, die mindestens eine Datumsspalte enthält und könntest darauf aufbauend diese PQ-Abfrage verwenden:

PHP-Code:
let
    Periode
= Periodentabelle,
    SortiereDat = Table.Sort(Periode,{{"Datum", Order.Ascending}}),
    OhneWE = Table.SelectRows(SortiereDat, each ([Wochentag] <> "Samstag" and [Wochentag] <> "Sonntag")),
    IstFeiertag = Table.AddColumn(OhneWE, "Feiertag", each List.Contains(Feiertagstabelle[Datum],[Datum])),
    NurWerktage = Table.SelectRows(IstFeiertag, each ([Feiertag] = false)),
    ErsterAT = Table.SelectRows(NurWerktage, let earliest = List.Min(NurWerktage[Datum]) in each [Datum] = earliest),
    Dat = try ErsterAT[Datum]{0} otherwise null
in
    Dat
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#15
(26.01.2026, 09:36)Sigi.21 schrieb: Da denke ich, dass ARBEITSTAG() nicht geeignet ist, da zu ungenau für deinen Zweck. Du brauchst eine relativ genaue Zeitberechnung (evtl. nach Std.) um den Ablauf zu planen: Anreise (ca. 6h) – Arbeitsauftrag vor Ort (ca. 20h) – Rückreise (ca. 5h). So in der Art?
Hallo Sigi,

Nene, das passt schon, die Grundeinheit sind Tage. In den Details stehen dann zwar Stunden, aber die werden dann auf Tage aufgerundet, das ist alles nicht das Problem.

Lass uns mal bei der Schachtelung bleiben so wie Du sie vorgeschlagen hast, bei mir ist der Groschen noch nicht gefallen, aber er rutscht schon mal. Also für alle Fälle (WE = Wochenende, FT=FreieTage):
=ARBEITSTAG.INTL(ARBEITSTAG.INTL(Ausgangsdatum-1;1; WE; FT); Tage; WE; FT))

Zuerst muss ich dafür mal eine Prüfung machen: Liefert diese Formel für alle korrekten Ausgangsdatum und Tage das gleiche Ergebnis wie
=ARBEITSTAG.INTL(Ausgangsdatum; Tage; WE; FT)

Wenn das der Fall ist, dann muss ich prüfen ob es bei falschem Ausgangsdatum ein korrektes Ergebnis "im Sinne des Users" liefert... und je länger ich darüber nachdenke könnte das tatsächlich passen.

Das Problem ist ganz einfach, wenn das Ausgangsdatum falsch ist, dann fehlt in der Rechnung 1 Tag. Also für Regulär-Deutschland dieses Jahr:

3.4. ist Karfreitag
6.4. ist Ostermontag

Fall a) Wenn ich eine Arbeit habe die 1 Tag dauert und am 2.4. anfange, dann ist der Mitarbeiter an dem Tag fertig.
Fall b) Wenn die Arbeit 2 Tage dauert, dann ist er am Dienstag den 7.4. fertig.

Wenn nun durch eine Blödheit das Ausgangsdatum am 3.4. gesetzt wird, dann kommt für Fall a) der 3.4. raus und das ist falsch, das ist ein Feiertag an dem der Mitarbeiter nicht arbeitet, er kann erst nach Ostern arbeiten.

.xlsx   Mappe1.xlsx (Größe: 10,46 KB / Downloads: 1)

Mit Deiner Formel passt das schon mal. Die Frage ist: Passt das für alle möglichen Konstellationen die vorkommen können, gerade auch in Hinblick auf ARBEITSTAG.INTL und veränderliche Wochenenden?

Irgendwie hab ich da einen Knoten im Kopf, man wird halt alt. Mein Gefühl sagt ja... aber das hatte ich letztens selber bei jemand hier angemeckert, nach Gefühl kann auch total daneben sein. Smile)

Andreas.
Antworten Top
#16
Hallo Andreas,

ich denke so sollte es jetzt passen. (s. Mappe)
Null od. negative Tage müssen ausgeschlossen werden!

Gruß Sigi


Angehängte Dateien
.xlsx   Arbeitstag spezial.xlsx (Größe: 11,19 KB / Downloads: 2)
Antworten Top
#17
Hallo Sigi,

das funktioniert auch nicht so richtig:

   
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#18
gelöscht
Gruß Anton.

Windows 11 64bit
Microsoft365 Insider 64bit
Antworten Top
#19
Hallo Edgar,

ich hatte es so verstanden, wie umgesetzt.

Zitat Andreas: " Fall a) Wenn ich eine Arbeit habe die 1 Tag dauert und am 2.4. anfange, dann ist der Mitarbeiter an dem Tag fertig.
Fall b) Wenn die Arbeit 2 Tage dauert, dann ist er am Dienstag den 7.4. fertig."

Also wenn er am 01.04.  oder 02.04. beginnt und nur 1 Tag angesetzt wird, ist er am selben Tag fertig.
Wenn Starttag ein WoEnde oder FT ist, ist er - bei 1 Tag angesetzt - am ersten Arbeitstag nach dem WoE fertig.

-- Geändert: ---

Ja, doch ein inkl. Fehlerchen. Jetzt mit Korrektur!


Gruß Sigi


Angehängte Dateien
.xlsx   Arbeitstag spezial.xlsx (Größe: 11,35 KB / Downloads: 4)
Antworten Top
#20
Hi,

folgende Formel ergibt automatisch den aktuellen bzw. nächsten Arbeitstag, falls ein WE/Feiertag angegeben wurde.

=ARBEITSTAG.INTL(ARBEITSTAG.INTL(A2;-1;1;Tabelle1[Datum]);1;1;Tabelle1[Datum])

Bei Eingabe eines Sa/So in A2 wird das Datum des Montags zurückgegeben. Selbst der Karfreitag gibt korrekterweise den folgenden Dienstag aus.
Wie funktioniert's? Es wird zunächst ein Arbeitstag zurück gesprungen, dann ein AT nach vorne. Damit hat man immer den nächsten AT.
Gruß,
Helmut

Win11 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste