Hi Leute,
ich weiß nicht, ob die Überschrift passend gewählt ist, aber ich versuche mal mein Problem zu erläutern.
Was habe ich bisher:
Ich habe einen ewigen Kalender mit allem drum und dran. Dazu steht neben dem Datum eine bestimmte und nach einem Monatsrhythmus wiederkehrende Arbeitsschichtfolge (Früh, Spät, Nacht etc.). Auch die ist bereits erfolgreich eingebaut und ändert sich mit dem Datum.
Nun soll der Kalender dazu dienen, dass sich die Mitarbeiter Urlaubswünsche auf einem anderen Tabellenblatt eintragen können. Jeder Mitarbeiter hat einen eigenen Bereich, in dem er Urlaubsanfang und -ende einträgt.
Was möchte ich:
Ziel ist es jetzt, dass berechnet wird, wieviel Urlaub ein bestimmter Wunsch kostet.
Es ist jetzt so, dass die jedem Mitarbeiter zustehenden Urlaubstage in Stunden umgerechnet werden. Das bedeutet auch, dass ein Tag, an dem der Mitarbeiter regulär frei hat, nichts "kostet". Eine Frühschicht "kostet" jedoch X Stunden, eine Spätschicht Y etc.
Leider bin ich noch am Anfang meiner Calc-Kenntnisse und komme nicht weiter. Vielleicht habe ihr ja eine Idee.
Über eine extrem verschachtelte Zählenwenn-Sverweis-Funktion komme ich nicht hinaus...das muss doch besser gehen
Gruß
Mh ich tüftel seit Stunden ... mein bisheriger Ansatz funktioniert, ist aber so überdimensioniert, dass man es keinesfalls als Ressourcenschonend bezeichnen kann.
In Worten möchte ich ausdrücken: Suche die Anzahl aller F (für Frühdienst) raus, die in dem angegebenen Datumsbereich liegen:
In Kalender.A5:HX35 liegt der gesamte Kalender. C4 ist das Urlaubswunschstartdatum, D4 das -enddatum. In den anderen Zellbereichen findet man die Schichtabfolge
=SUMMENPRODUKT(($Kalender.$A$5:$HX$35>=C4)*($Kalender.$A$5:$HX$35<=D4)*($Kalender.$E$5:$E$35:$Z$5:$Z$35:$AU$5:$AU$35:$BP$5:$BP$35:$CK$5:$CK$35:$DF$5:$DF$35:$EA$5:$EA$35:$EV$5:$EV$35:$FQ$5:$FQ$35:$GL$5:$GL$35:$HG$5:$HG$35:$IB$5:$IB$35="F"))
Die Anzahl wird mit der Stundenanzahl für Frühdienst multipliziert und dann addiert er alle "S" (für Spätdienst) dazu und multipliziert usw.
Also er spuckt letztendendes das richtige Ergebnis aus, nur berechnet er bei jedem Urlaubsdatum mindestens 2 Sekunden ... hat jemand eine Optimierungsidee?
ich weiß nicht, ob die Überschrift passend gewählt ist, aber ich versuche mal mein Problem zu erläutern.
Was habe ich bisher:
Ich habe einen ewigen Kalender mit allem drum und dran. Dazu steht neben dem Datum eine bestimmte und nach einem Monatsrhythmus wiederkehrende Arbeitsschichtfolge (Früh, Spät, Nacht etc.). Auch die ist bereits erfolgreich eingebaut und ändert sich mit dem Datum.
Nun soll der Kalender dazu dienen, dass sich die Mitarbeiter Urlaubswünsche auf einem anderen Tabellenblatt eintragen können. Jeder Mitarbeiter hat einen eigenen Bereich, in dem er Urlaubsanfang und -ende einträgt.
Was möchte ich:
Ziel ist es jetzt, dass berechnet wird, wieviel Urlaub ein bestimmter Wunsch kostet.
Es ist jetzt so, dass die jedem Mitarbeiter zustehenden Urlaubstage in Stunden umgerechnet werden. Das bedeutet auch, dass ein Tag, an dem der Mitarbeiter regulär frei hat, nichts "kostet". Eine Frühschicht "kostet" jedoch X Stunden, eine Spätschicht Y etc.
Leider bin ich noch am Anfang meiner Calc-Kenntnisse und komme nicht weiter. Vielleicht habe ihr ja eine Idee.
Über eine extrem verschachtelte Zählenwenn-Sverweis-Funktion komme ich nicht hinaus...das muss doch besser gehen
Gruß
Ergänzung ()
Mh ich tüftel seit Stunden ... mein bisheriger Ansatz funktioniert, ist aber so überdimensioniert, dass man es keinesfalls als Ressourcenschonend bezeichnen kann.
In Worten möchte ich ausdrücken: Suche die Anzahl aller F (für Frühdienst) raus, die in dem angegebenen Datumsbereich liegen:
In Kalender.A5:HX35 liegt der gesamte Kalender. C4 ist das Urlaubswunschstartdatum, D4 das -enddatum. In den anderen Zellbereichen findet man die Schichtabfolge
=SUMMENPRODUKT(($Kalender.$A$5:$HX$35>=C4)*($Kalender.$A$5:$HX$35<=D4)*($Kalender.$E$5:$E$35:$Z$5:$Z$35:$AU$5:$AU$35:$BP$5:$BP$35:$CK$5:$CK$35:$DF$5:$DF$35:$EA$5:$EA$35:$EV$5:$EV$35:$FQ$5:$FQ$35:$GL$5:$GL$35:$HG$5:$HG$35:$IB$5:$IB$35="F"))
Die Anzahl wird mit der Stundenanzahl für Frühdienst multipliziert und dann addiert er alle "S" (für Spätdienst) dazu und multipliziert usw.
Also er spuckt letztendendes das richtige Ergebnis aus, nur berechnet er bei jedem Urlaubsdatum mindestens 2 Sekunden ... hat jemand eine Optimierungsidee?
Zuletzt bearbeitet: