Supportnet / Forum / Tabellenkalkulation
Excel ohne VBA: mehrere Tagesdaten prüfen
Frage
Hallo Leute,
folgendes Problem möchte ich möglichst ohne Verwendung von VBA lösen. Geht das?
Das Problem:
Ich habe
a) die Bearbeitungsdauer und das (fixe) Endedatum eines Projektes
b) eine Liste von Daten (Tagen), die zur Projektbearbeitung wegen anderweitiger Verplanung nicht zur Verfügung stehen
Ich suche das tatsächlich notwendige Beginndatum für das Projekt unter Berücksichtigung der nicht zur Verfügung stehenden Daten.
Es ist mir gelungen, eine Formel zu basteln, die die Tageliste so auszuwertet, dass ich für einen einzelnen, fixen Tag feststellen kann "verfügbar" (d.h. in Tageliste nicht enthalten) oder "nicht verfügbar" (d.h. in Tageliste enthalten oder Wochenendtag).
Frage: kann ich ohne VBA eine Formel bauen, die mir aus Endedatum, Bearbeitungsdauer (in Arbeitstagen) und Sperrtage-Liste das Anfangsdatum berechnet?
Gruß
Karolina
Antwort 1 von Tomschi
Hi Karolina!
Habe so etwas ähnliches mal für einen Urlaubsantritt bei Dienstende gemacht.
Siehe dazu http://www.netupload.de/detail.php?img=ef9d090b54c14b883064c7300d727c35.xls
Vielleicht kannst Du damit was anfangen.
Tom
Habe so etwas ähnliches mal für einen Urlaubsantritt bei Dienstende gemacht.
Siehe dazu http://www.netupload.de/detail.php?img=ef9d090b54c14b883064c7300d727c35.xls
Vielleicht kannst Du damit was anfangen.
Tom
Antwort 2 von Pistenschreck
Hallo Karolina
Hab da mal eine Formel gebastelt. Siehe unter:
http://www.uploadagent.de/files/1172065110/Datum_minus_xx_Arbeitstage.xls
Diese Datei bleibt nur 100 Tage auf dem Server.
Dies wäre die Formel:
=WENN(WOCHENTAG(ARBEITSTAG(A2;-C2)-SUMMENPRODUKT((I1:I50<A2)*(I1:I50>=ARBEITSTAG(A2;-C2)));2)>5;ARBEITSTAG(A2;-C2)-SUMMENPRODUKT((I1:I50<A2)*(I1:I50>=ARBEITSTAG(A2;-C2)))-(WOCHENTAG(ARBEITSTAG(A2;-C2)-SUMMENPRODUKT(($I$1:$I$50<A2)*(I1:I50>=ARBEITSTAG(A2;-C2)));2)-5);ARBEITSTAG(A2;-C2)-SUMMENPRODUKT(($I$1:$I$50<A2)*($I$1:$I$50>=ARBEITSTAG(A2;-C2))))
In A2 ist das Enddatum; in C2 sind die Anzahl Arbeitstage die benötigt werden; In Spalte H2 bis H50 sind Feiertage, wobei der Bezug dann auf die Spalte I ist, da hier keine Sa. und So. angezeigt werden; in Zelle D2 ist das Beginndatum.
Gruss Werner
Hab da mal eine Formel gebastelt. Siehe unter:
http://www.uploadagent.de/files/1172065110/Datum_minus_xx_Arbeitstage.xls
Diese Datei bleibt nur 100 Tage auf dem Server.
Dies wäre die Formel:
=WENN(WOCHENTAG(ARBEITSTAG(A2;-C2)-SUMMENPRODUKT((I1:I50<A2)*(I1:I50>=ARBEITSTAG(A2;-C2)));2)>5;ARBEITSTAG(A2;-C2)-SUMMENPRODUKT((I1:I50<A2)*(I1:I50>=ARBEITSTAG(A2;-C2)))-(WOCHENTAG(ARBEITSTAG(A2;-C2)-SUMMENPRODUKT(($I$1:$I$50<A2)*(I1:I50>=ARBEITSTAG(A2;-C2)));2)-5);ARBEITSTAG(A2;-C2)-SUMMENPRODUKT(($I$1:$I$50<A2)*($I$1:$I$50>=ARBEITSTAG(A2;-C2))))
In A2 ist das Enddatum; in C2 sind die Anzahl Arbeitstage die benötigt werden; In Spalte H2 bis H50 sind Feiertage, wobei der Bezug dann auf die Spalte I ist, da hier keine Sa. und So. angezeigt werden; in Zelle D2 ist das Beginndatum.
Gruss Werner
Antwort 3 von Pistenschreck
Hallo Karolina
Ein Nachtrag:
Für eine Formel mit ARBEITSTAG benötigt man die Analyse-Funktionen
Unter Extras - Add-Ins-Manager..
ein Häckchen bei Analyse-Funktionen.
Musst ev. die Installations-CD bereitstellen.
Gruss Werner
Ein Nachtrag:
Für eine Formel mit ARBEITSTAG benötigt man die Analyse-Funktionen
Unter Extras - Add-Ins-Manager..
ein Häckchen bei Analyse-Funktionen.
Musst ev. die Installations-CD bereitstellen.
Gruss Werner
Antwort 4 von Karolina
Hallo Tom, hallo Werner,
vorerst schon mal Danke für die Unterstützung, ich muss die Sachen morgen auf Arbeit mal genauer prüfen. Problem ist, dass ich auf Arbeit keine Excel-Dateien runterladen kann (Sicherheitsmechanismen) und zu Hause unter Linux-Openoffice doch nicht alles exakt so läuft, wie auf Excel. Ich werd' die Dateien morgen auf der Arbeit mal genauer unter die Lupe nehmen.
Grüßle
Karolina
vorerst schon mal Danke für die Unterstützung, ich muss die Sachen morgen auf Arbeit mal genauer prüfen. Problem ist, dass ich auf Arbeit keine Excel-Dateien runterladen kann (Sicherheitsmechanismen) und zu Hause unter Linux-Openoffice doch nicht alles exakt so läuft, wie auf Excel. Ich werd' die Dateien morgen auf der Arbeit mal genauer unter die Lupe nehmen.
Grüßle
Karolina
Antwort 5 von Karolina
So, nochmal ich.
Also, die Lösung von Tomschi ist ganz raffiniert gebaut und insbesondere die Berechnung des Osterfestes finde ich interessant. Die Möglichkeit, das Ganze über einen Kalender aufzuziehen, war mir allerdings bewusst und zu raumgreifend. Ich verfüge ja über eine Liste von Projektphasen und Projektdauern und brauche dort in jeder einzelnen Zeile aus gegebenem Endezeitpunkt den richtigen Anfangszeitpunkt.
Was ich gesucht habe ist so etwas wie die Funktion "arbeitstag()" - Danke, Pistenschreck, für den Tipp! Das Einzige, was mir daran jetzt immer noch nicht so recht gefällt, ist, dass ich auch hierfür für die Urlaubszeiten recht umfangreiche Tagestabellen (Ausschlusstage) bauen muss. Und dies zu automatisieren, ist mir nicht gelungen, da das dritte Argument von Arbeitstag(Datum;Tage;Ausschlusstage) keine Leerzellen zu akzeptieren scheint, in denen Formeln stehen. Ich habe nämlich versucht, das ganze aus einer Liste aufzubauen, die mir z.B. für Urlaubsanfangtag und Urlaubsendetag alle dazwischen liegenden Tage selbst erzeugt.
Derzeit behelfe ich mir daher doch noch mit einem kleinen VBA-Programm, das mir die Arbeitstage-Funktion in dieser Art simuliert.
Grüßle
Karolina
Also, die Lösung von Tomschi ist ganz raffiniert gebaut und insbesondere die Berechnung des Osterfestes finde ich interessant. Die Möglichkeit, das Ganze über einen Kalender aufzuziehen, war mir allerdings bewusst und zu raumgreifend. Ich verfüge ja über eine Liste von Projektphasen und Projektdauern und brauche dort in jeder einzelnen Zeile aus gegebenem Endezeitpunkt den richtigen Anfangszeitpunkt.
Was ich gesucht habe ist so etwas wie die Funktion "arbeitstag()" - Danke, Pistenschreck, für den Tipp! Das Einzige, was mir daran jetzt immer noch nicht so recht gefällt, ist, dass ich auch hierfür für die Urlaubszeiten recht umfangreiche Tagestabellen (Ausschlusstage) bauen muss. Und dies zu automatisieren, ist mir nicht gelungen, da das dritte Argument von Arbeitstag(Datum;Tage;Ausschlusstage) keine Leerzellen zu akzeptieren scheint, in denen Formeln stehen. Ich habe nämlich versucht, das ganze aus einer Liste aufzubauen, die mir z.B. für Urlaubsanfangtag und Urlaubsendetag alle dazwischen liegenden Tage selbst erzeugt.
Derzeit behelfe ich mir daher doch noch mit einem kleinen VBA-Programm, das mir die Arbeitstage-Funktion in dieser Art simuliert.
Grüßle
Karolina

