Excel: Zeitstrahl befüllen/berechnen

Hallo,
folgende knifflige Aufgabe:
ich habe ein Tabellenblatt in welchem ich Aufgaben (Spalte a) und geschätzte Aufwandstage (Spalte b) habe.

in einem zweiten Tabellenblatt habe ich nun einen Kalender eingerichtet (jede Zeile ein Tag). Ich möchte nun, dass mir für jeden (Aufwands)tag im Kalenderblatt die Aufgabe reingeschrieben wird.

Beispiel:
Aufgabe:

  • „Projekt Hamburg“, 3 Tage
  • „Projekt Mainz“, 2 Tage

Im zweiten (Kalenderblatt) sollte nun folgendes stehen:

Spalte A Spalte B
1.Zeile (1.1.2012) Projekt Hamburg
1.Zeile (2.1.2012) Projekt Hamburg
1.Zeile (3.1.2012) Projekt Hamburg
1.Zeile (4.1.2012) Projekt Mainz
1.Zeile (5.1.2012) Projekt Mainz

Hallo,

also wenn in einem Tabellenblatt „Kalender“

  • die Tage in Spalte A stehen und
  • die Projekte in Spalte B,
    und wenn in einem Tabellenblatt „Aufwandtage“
  • die Projekte in Spalte A stehen,

dann lautet in Tabellenblatt Aufwandtage die Formel
in Zelle B1: =ZÄHLENWENN(Kalender!B:B;Aufwandstage!A1)
in Zelle B2: =ZÄHLENWENN(Kalender!B:B;Aufwandstage!A2)

usw…

Hallo vooodooo1974,

tut mir leid, mir ist nicht klar was Du bezweckst bzw.
was Du mit diesen Einträgen erreichen willst. Wenn ich die Aufwandstage nicht kenne, muss ich diese doch nachträglich eintragen. Da kann ich doch gleich das zweite Blatt mit den Infos füllen, oder???

  1. Erkläre bitte Deine Planung (warum - wieso - weshalb) Meine Fahigkeit Gedanken zu lesen hat meine Frau gänzlich verbraucht (ist generell ein Frauenproblem, dass Männer grundsätzlich Gedanken lesen können)

  2. Nachdem ich Dein Vorhaben begriffen habe, kann ich vielleicht auch Deine Anfrage verstehen. Aber Du kannst dann auch vielleicht die Frage konkreter Stellen.

Gruß

OnkelAtze

Hallo,

wenn ichs richtig verstanden hab,
ist die lösung
SUMMENPRODUCK((a1:a30=kalender!a1)*1)

wennst mir eine beispiel excel datei sendest,
kann ich besser helfen.

LG Fred

Hallo,
bzw. „aber hallo“ - das ging ja richtig schnell. Vielen Dank!!!
o.k - ich versuche nochmal genauer zu erklären - das war nich perfekt von mir beschrieben:

Ausgangspunkt ist das Tabellenblatt „Aufgaben“ mit den Projekten und den geschätzten Tagen.
Berechnet (bzw. optisch dargestellt) werden soll "ab wann ich wieder verfügbar für weitere Projekte bin … und damit an welchen Tagen ich vermutlich in welchem Projekt unterwegs bin.

Hintergrund: ich muss ein Team von 11 Leuten mit vielfältigen (ressourcenmässig geschätzten) Aufgaben steuern. Wenn jetzt mein Chef mit einer superwichtig Aufgabe kommt möchte ich im sagen, dass Person ist erst wieder aber dem xx.xx.2012 verfügbar ist.

Hilft diese ERläuterung weiter?

Vielen Dank / Gruß

Tom

Hallo,
bzw. „aber hallo“ - das ging ja richtig schnell. Vielen Dank!!!
o.k - ich versuche nochmal genauer zu erklären - das war nich perfekt von mir beschrieben:

Ausgangspunkt ist das Tabellenblatt „Aufgaben“ mit den Projekten und den geschätzten Tagen.
Berechnet (bzw. optisch dargestellt) werden soll "ab wann ich wieder verfügbar für weitere Projekte bin … und damit an welchen Tagen ich vermutlich in welchem Projekt unterwegs bin.

Hintergrund: ich muss ein Team von 11 Leuten mit vielfältigen (ressourcenmässig geschätzten) Aufgaben steuern. Wenn jetzt mein Chef mit einer superwichtig Aufgabe kommt möchte ich im sagen, dass Person ist erst wieder aber dem xx.xx.2012 verfügbar ist.

Hilft diese ERläuterung weiter?

Vielen Dank / Gruß

Tom

Hallo,
bzw. „aber hallo“ - das ging ja richtig schnell. Vielen Dank!!!
o.k - ich versuche nochmal genauer zu erklären - das war nich perfekt von mir beschrieben:

Ausgangspunkt ist das Tabellenblatt „Aufgaben“ mit den Projekten und den geschätzten Tagen.
Berechnet (bzw. optisch dargestellt) werden soll "ab wann ich wieder verfügbar für weitere Projekte bin … und damit an welchen Tagen ich vermutlich in welchem Projekt unterwegs bin.

Hintergrund: ich muss ein Team von 11 Leuten mit vielfältigen (ressourcenmässig geschätzten) Aufgaben steuern. Wenn jetzt mein Chef mit einer superwichtig Aufgabe kommt möchte ich im sagen, dass Person ist erst wieder aber dem xx.xx.2012 verfügbar ist.

Hilft diese ERläuterung weiter?

Vielen Dank / Gruß

Tom
.

Hallo,

bzw. „aber hallo“ - das ging ja richtig schnell. Vielen

als busfahrer geht so was leichter, schnell zu antworten, wenn mann auf der richtigen linie fährt. wo genug pausen hat.

sie dir die formel arbeitstag an, die ist die lösung.
die formel arbeitstag rechnet von montag-freitag.
wenn ein arbeitstag rein rechnerrisch auf samstag fällt wird der monatag verwendet.
die zelle noch alls datum foramtieren das wars.

LG Fred

Sub zeitstrahl()
Set ws1 = Worksheets(„tabelle1“)
Set ws2 = Worksheets(„tabelle2“)
datum = ws2.Range(„A1“) ’ hier Anfangsdatum eintragen
zeile = 1
With ws1
For Each project In Intersect(.UsedRange, .Range(„A:A“))
For zeile = zeile To zeile + project.Offset(0, 1) - 1
With ws2.Cells(zeile, 1)
.Value = datum
.Offset(0, 1).Value = project
End With
datum = datum + 1
If Weekday(datum) = 7 Then datum = datum + 2 ’ Wochenende
Next zeile
Next project
End With
End Sub

Hallo vooodooo1974,

hier mein Vorschlag zur Frage:

Sub Verteilung()
'Sofern Werte im Blatt1 verändert wurden,
'können durch erneute Berechnung die Änderungen eingefügt werden

Dim i As Integer
Dim x As Integer
Dim Letzte As Integer
Dim Aufg As String
Dim zaehl As Integer
'Anzahl Aufgaben ermitteln
Letzte = Range(„A65536“).End(xlUp).Row
'Zähler auf aktull zu beschriftende Celle in Blatt2 setzen
zaehl = 1
'Schleife für die Aufgaben starten
For i = 2 To Letzte
'Schleife auf Anzahl Tage der aktuellen Aufgabe setzen
For x = Sheets(„Tabelle1“).Cells(i, 2) To 1 Step -1
'In Blatt2 das Prjekt eintragen
Sheets(„Tabelle2“).Cells(zaehl, 2) = Sheets(„Tabelle1“).Cells(i, 1)
'nächste zu beschriftende Zelle auswählen
zaehl = zaehl + 1
Next x
Next i
End Sub

Hruß Hugo

Wahnsinn - genau das ist es was ich brauche!! Vielen Dank! - ich kenne mich im VBA zwar (noch) überhaupt nicht aus, aber das konnte sogar ich abtippen und in den richtigen Kontext bringen.

ich traue es mich kaum zu fragen, aber wäre es möglich noch eine Komplexitätstufe höher zu gehen (ich hoffe das artet dann nicht in richtige Arbeit aus - sonst hätte ich halt Pech).

Als weitere Spalte gebe es noch den „Zuständigen“.
Die Logik-Vorgaben wären dann wie folgt.

Tabelle1
„Projekt Hamburg“; Max Muster; 3 Tage
„Projekt Berlin“; Max Muster, 4 Tage
„Projekt Mainz“; Bernd Becker; 2 Tage
etc.

Tabelle2 sollte auswerfen
;;

wenn Sie mir hier nochmals helfen könnten: superklasse! Wenn nicht, trotzdem vielen Dank - der ersten Ansatz habe ich ja bekommen!

Danke schön und freundlicher Gruß aus Stuttgart

hallo vooodooo1974,

von Kalenderprojekten hab ich mich im Rahmen der Experten-Hilfe verabschiedet.

Sie ufern meistens aus.
Dein Problem so wie du es beschrieben hast wäre per Makro einfach zu lösen.
Aber als nächstes kommen dan Wünsche wie an Wochendenden keine Einträge, Feitage überspringen, Betriebsferien/Urlaub berücksichtigen etc.

Anders herum wird ein Schuh draus.
Trage deine Projekte in den Kalender ein–> volle Flexibilität. Deine Projekte trägst du als Liste (mit einem Bereichsnamen) in einem separaten Tabellenblatt
In deinem Kalenderblatt legst du in der Projekt-Spalte eine Gültigkeitsprüfung mit Dropdown-Auswahl an, als Erleichterung und Kontrolle der Werteingabe.

Per Formel (ZÄHLENWENN) oder auch Pivot-Tabellenbericht kannst du dann in einer Projektliste den Aufwand ermitteln.

Gruß
Franz

ich habe es mal uminterpretiert:

Tabelle1
„Projekt Hamburg“; Max Muster; 3 Tage
„Projekt Berlin“; Max Muster, 4 Tage
„Projekt Mainz“; Bernd Becker; 2 Tage
etc.

Tabelle2
;; ;; ;;;;;;;
etc.; ;etc.; ;etc.

Meine Lösung:

Sub Zeitstrahl()
Set ws1 = Worksheets(„Tabelle1“) ’ Anpassen
Set ws2 = Worksheets(„Tabelle2“) ’ Anpassen

Set wf = WorksheetFunction
Dim Zeile&(1 To 256), Datum&(1 To 256), Start&
Start = DateValue(Right(InputBox(„Anfangsdatum“, , Format(Now, „DDD DD.MM.YY“)), 8))

With ws2
.Cells.Clear
Set Ueberschrift = .Range(„1:1“)
With .Range(„A1“)
.Value = ws1.Range(„B1“) ’ Erster Zuständiger
.EntireColumn.NumberFormat = „DDD DD.MM.YY“
End With
Zeile(1) = 2
Datum(1) = Start
End With

With ws1
For Each Projekt In Intersect(.UsedRange, .Range(„A:A“))

On Error Resume Next
Spalte = wf.Match(Projekt.Offset(0, 1), Ueberschrift, False)
If Err.Number = 1004 Then ’ Neuer Zuständiger
With ws2
Spalte = .UsedRange.Columns.Count + 2
With .Cells(1, Spalte)
.Value = Projekt.Offset(0, 1)
.EntireColumn.NumberFormat = „DDD DD.MM.YY“
End With
Zeile(Spalte) = 2
Datum(Spalte) = Start
End With
End If
On Error GoTo 0

For Zeile(Spalte) = Zeile(Spalte) To Zeile(Spalte) + Projekt.Offset(0, 2) - 1
With ws2.Cells(Zeile(Spalte), Spalte)
.Value = Datum(Spalte)
.Offset(0, 1).Value = Projekt
End With
Datum(Spalte) = Datum(Spalte) + 1
If Weekday(Datum(Spalte)) = 7 Then Datum(Spalte) = Datum(Spalte) + 2 ’ Wochenende
Next Zeile(Spalte)

Next Projekt
End With
End Sub

du kannst in der spalte mit den projektnamen diese formel einfügen (diese formel wäre gültig für die Zelle B3):

=WENN(ISTFEHLER(INDEX(Aufgabenblatt!A:A;VERGLEICH(B2;Aufgabenblatt!B:B;0)));
„“;
WENN(ZÄHLENWENN(B$1:B2;B2)=>INDEX(Aufgabenblatt!A:A;VERGLEICH(B2;Tabelle1!B:B;0));
INDEX(Aufgabenblatt!B:B;VERGLEICH(B2;Aufgabenblatt!B:B;0)+1);
B2)
)
im Aufgabenblatt habe ich angenommen, dass in der Spalte B der Projektname steht, in der Spalte A die Anzahl Tage als Zahl(!) abspeichern. Wenn man noch das Wort Tage dabeihaben will, dann über die Zahlenformatierung „Tage“ vom Format her automatisch hinzufügen lassen.

In der Zelle B1 steht Projekt (oder ein anderer Titel), der gleiche Titel sollte als Titel über den Projekten der Aufgabentabelle stehen. Wenn dann im Kalenderblatt von der Zelle B1 bis runter z.B.: der Zelle 400 (das Jahr hat 365 Tage) runter kopiert, findet er auch das erste Projekt im Aufgabenblatt.

Im Kalenderblatt musst du jetzt noch eine Formel für das Datum abfüllen. wenn du das richtig machst, kannst du sogar Samstage und Sonntage rausfiltern

grüsse
m

Hallo Tom,

also jetzt sehe ich klarer. Das bedeutet , dass die Tabellenblätter einen Jahreskalender erkennen können/müssen (Formel Jahreskalender?) und eingetragene Tage oder Zeiträume automatisch im zweiten Blatt eingetragen werden (die Wochenenden und Feiertage müssen dabei berücksichtigt bzw. mitgerechnet werden). Das setzt voraus, dass die WE und FT vorab im 2. Blatt eingetragen werden und diese dann in der Formel berücksichtigt werden.

Das wird schwer, da kenne ich keine Lösung. Hast Du Dir das Problem mal gegoogelt? Das hat mir bis jetzt immer weiter geholfen.

Gruß

OnkelAtze

Hallo Namenlose®,

ohne die Angabe des Startdatums der Aufgabe im ersten Tabellenblatt geht das schon mal gar nicht.
Wenn ein Datum da ist, müsste man ein Makro dafür schreiben, dass die Daten in Dein Kalenderblatt umsetzt. Das ist kein Problem, wenn man ein wenig VBA kann. Da kann ich Dich gerne unterstützen - wenn es denn so gewollt ist. Mit Formeln alleine wird es sehr kompliziert und aufwändig.

Gruß,
Jochen

Hossa-die-Waldfee!, das war knifflig…

Also, auf dem Tabellenblatt „Aufgaben“:

  • in Zelle A1 „Projekt Name“ (Namensgebung wichtig!)
  • in den darunterliegenden Zellen die Projekte
  • in Zelle B1 „Projekttage“
  • darunter die geschätzten Projekttage als Zahl

Auf dem Tabellenblatt „Kalender“:

  • in Zelle A1 „Datum“
  • in Zelle A2 das erste Datum (nach unten aufsteigend)
  • in Zelle B1 „Projekt“
  • in Zelle B2 =WVERWEIS(„Projekt Name“;Aufgaben!A:A;C2+1;WAHR)
  • in Zelle C1 „Projekt-Nr“
  • in Zelle C2 =WENN((SVERWEIS(B1;Aufgaben!A:B;2;0))>(ZÄHLENWENN($B1:B$2;B1));C1;C1+1)
  • die Formeln nach unten „ziehen“ (Zirkelbezug ignorieren)
  • die Zelle C2 mit „1“ überschreiben

Voilá

Hi - ich noch mal,

habe mal auf die schnelle ein Makro geschrieben, das funktioniert. Leider kann ich hier keine Datei uploaden. Bei Interesse schick doch mal eine Mailadresse und ich schicke Dir die Lösung.

Gruß,
Jochen

danke für die freundlichen zeilen. wie ist es denn weitergegangen … ?