NETTOARBEITSTAGE.INTL als Matrixformel
12.10.2021 16:41:42
Thilo
seit zwei Tagen beiße ich mir die Zähne an einem Problem mit NETTOARBEITSTAGE.INTL aus und kann weder selber herausfinden, was es ist, noch habe ich online etwas Hilfreiches finden können.
Aktuell vermute ich, dass NETTOARBEITSTAGE.INTL nicht als Matrixformel verwendbar ist. - Kann das sein?
Das Problem
Wie so oft, soll ein Excel für die Zeiterfassung und Urlaube verwendet werden.
Es gibt eine Tabelle "Arbeitszeiten", in der ALLE Zeiten ALLER Mitarbeiter stehen. Hier funktioniert alles wie gewünscht.
Dann gibt es eine Tabelle "Urlaube", in der ALLE Urlaube ALLER Mitarbeiter stehen.
Natürlich soll jeder Urlaub "am Stück" eingetragen werden, d.h. nicht in mehreren Teilen auf die betroffenen Kalendermonate verteilt, wenn ein Urlaub mal über die Monatsgrenze hinweggeht oder über den Jahreswechsel.
Außerdem ist in einer Tabelle "Arbeitszeitmodelle" für jeden Mitarbeiter hinterlegt, welche Tage Arbeitstage sind und wieviele Stunden an welchem Tag zu leisten sind.
Hier ist auch die Vorbereitung der Definition [Wochenenden] für jeden Mitarbeiter drin, sodass ich mit der Funktion NETTOARBEITSTAGE.INTL direkt darauf zugreifen kann (als Textstring).
Der Knackpunkt ist dann die Tabelle "Auswertungen".
Hier sind, nach Monaten gegliedert, die Soll- und Ist-Zeiten aller Mitarbeiter drin - sowie die Urlaubstage, die IM JEWEILIGEN MONAT zusammenkommen.
Aus der großen Tabelle "Urlaube" soll die Funktion jeweils aufsummieren, wieviele Arbeitstage für den jeweiligen Mitarbeiter (siehe Arbeitszeitmodell) IN DIESEM MONAT als Urlaub abgezogen werden müssen. (Auch die Feiertage müssen beachtet werden. Aber das lass ich erstmal weg, weil es nicht einfach mit dem [FEIERTAGE]-Parameter in der Funktion zu machen ist. Und ich glaub, das Problem liegt auch nicht daran.)
Gedanklich splitte ich die Lösung zunächst in vier Fälle:
Selbst wenn ich nur einen dieser Fälle betrachte, gibt mir, als Matrixformel, die Funktion NETTOARBEITSTAGE.INTL einen #WERT! Fehler aus.
Hier die (noch reduzierte Funktion, die ich benutze:
=SUMME(N(Urlaube[Mitarbeiter]=K$1) * N(Urlaube[Erster freier Tag]>(DATWERT(VERKETTEN("01.";J9;I9))-1)) * N(Urlaube[Letzter freier Tag]
Wenn ich mir die Formelauswertung ansehe, dann zieht Excel Schritt für Schritt die richtigen Werte aus der Matritze - nur in der Funktion NETTOARBEITSTAGE.INTL fügt er den Bereich der Matrix ein, anstatt die einzelnen Werte zu ziehen:Das macht Excel für die "Bis"-Matrix noch einmal, danach läuft die Formelprüfung weiter korrekt. Wenn es dann aber daran geht, die Funktion auszuführen, dann sieht es so aus:
Und dann passiert Folgendes:
Meine Fragen:
Bitte entschuldigt, dass das hier so lang geworden ist. Ich hoffe, ich habe alles verständlich dargestellt und würde mich RIESIG freuen, wenn jemand von Euch etwas zum Thema beisteuern kann.
Vielen, lieben Dank!
Der Thilo