Supportnet / Forum / Tabellenkalkulation
Excel - Auslesen von Daten aus einem Zellenbereich/einer Matrix
Frage
Ich habe 2 Tabellenblätter, nennen wir sie "Jahresplan" und "Event":
"Jahresplan"
Im Jahresplan möchte ich in Spalte A Namen einfüllen und in Zeile 1 Datums. Sagen wir 8 Namen (A2:A9) und 10 Daten (B1:K1). Dann möchte ich bei den Datums ein "X" machen, wo die entsprechende Person arbeitet (in dem Zellbereich B2:K9).
"Event"
Auf dem Tabellenblatt Event sind folgende Zellen:
A1: "Datum" und A2: "Name".
in B1 soll nun ich ein Datum eingeben werden.
Nun bin ich auf der Suche nach einer Formel für B2, die schaut:
1.) was für ein Datum steht in B1?
2.) hat es im "Jahresplan" unter dem Datum ein "X"
3.) auf welcher Zeile steht das "X", was steht für ein Name Spalte A dieser Zeile?
4.) dieser Name wird bei "Event" in B2 eingefügt.
Etwas komplizierter wirds, wenn an einem Datum 2 Personen arbeiten?!...
Wenn mir jemand helfen könnte, wäre das M.E.G.A!
Than.x a lot
Samuel
Antwort 1 von public
hallo saarbauer,
wo bleibt denn dein üblicher beitrag
versteh nix und helfen kann ich auch nicht
wo bleibt denn dein üblicher beitrag
versteh nix und helfen kann ich auch nicht
Antwort 2 von CaroS
Hallo Gruzzi,
das klingt doch ganz furchtbar nach VERWEISen u. ä.
Schlage vor, Du schreibst im "Jahresplan" unter Deinen X-Bereich (B2:K9) in die Zeile B10:K10 jeweils die "Namen" Datum01, Datum02, Datum03, ..., Datum10.
Definiere für die eben angegeben Namen folgende Zellbereiche: Datum01: =Jahresplan!$B$2:$B$9, Datum02: =Jahresplan!$C$2:$C$9, Datum03: =Jahresplan!$D$2:$D$9, ..., Datum10: =Jahresplan!$K$2:$K$9 (Einfügen -- Namen -- Definieren...).
Schreibe dann in "Event" in B2: =VERWEIS("X";INDIREKT(WVERWEIS(B1;Jahresplan!B1:K10;10;FALSCH));Jahresplan!A2:A9)
Als Arbeits-Kennzeichen habe ich das große "X" vorausgesetztz. Wenn unter einem Datum mehr als ein "X" steht, wird immer der letzte Name (unterste Zeile) ermittelt.
Ausgehend von diesem Ansatz kann man ja noch über Verbesserungen nachdenken.
Gruß,
CaroS
das klingt doch ganz furchtbar nach VERWEISen u. ä.
Schlage vor, Du schreibst im "Jahresplan" unter Deinen X-Bereich (B2:K9) in die Zeile B10:K10 jeweils die "Namen" Datum01, Datum02, Datum03, ..., Datum10.
Definiere für die eben angegeben Namen folgende Zellbereiche: Datum01: =Jahresplan!$B$2:$B$9, Datum02: =Jahresplan!$C$2:$C$9, Datum03: =Jahresplan!$D$2:$D$9, ..., Datum10: =Jahresplan!$K$2:$K$9 (Einfügen -- Namen -- Definieren...).
Schreibe dann in "Event" in B2: =VERWEIS("X";INDIREKT(WVERWEIS(B1;Jahresplan!B1:K10;10;FALSCH));Jahresplan!A2:A9)
Als Arbeits-Kennzeichen habe ich das große "X" vorausgesetztz. Wenn unter einem Datum mehr als ein "X" steht, wird immer der letzte Name (unterste Zeile) ermittelt.
Ausgehend von diesem Ansatz kann man ja noch über Verbesserungen nachdenken.
Gruß,
CaroS
Antwort 3 von Gruzzi
Lieber CaroS!
vielen Dank!
ich konnte Deine Lösung zwar nicht exakt nachbauen (bzw. beim in meinen Augen exakten nachbauen funktionierte es nicht) aber der Tip mit den W-VERWEIS war Gold wert!
Falls jemand "meine" Lösung möchte, kann er mir gerne seine E-Mail Adresse im Kontaktformular auf www.samuelwaters.ch mitteilen (bitte mit dem Vermerk "Matrixabfrage")...
oder runterladen: www.samuelwaters.ch/matrix.xls
Vielen Dank nochmals und liebe Grüsse!!
Gruzzi / Samuel
vielen Dank!
ich konnte Deine Lösung zwar nicht exakt nachbauen (bzw. beim in meinen Augen exakten nachbauen funktionierte es nicht) aber der Tip mit den W-VERWEIS war Gold wert!
Falls jemand "meine" Lösung möchte, kann er mir gerne seine E-Mail Adresse im Kontaktformular auf www.samuelwaters.ch mitteilen (bitte mit dem Vermerk "Matrixabfrage")...
oder runterladen: www.samuelwaters.ch/matrix.xls
Vielen Dank nochmals und liebe Grüsse!!
Gruzzi / Samuel
Antwort 4 von Saarbauer
Hallo,
eine Lösung als Makro
Sub Übertragen()
Datum = Range("Event!B1").Value
Spalte = Range("IV2").End(xlToLeft).Column
For i = 2 To Spalte
If Cells(1, i).Value = Datum Then
For j = 2 To 50
If Cells(j, i).Value = "x" Then
Range("Event!B" & Range("Event!b5536").End(xlUp).Offset(1, 0).Row).Value = Cells(j,1).Value
End If
Next j
End If
Next i
End Sub
Bei Ausführung des Makros ist die aktive Tabelle "Jahresplan" und in der Tabelle "Event" ist ausser dem Datum in Spalte B keine weitere Eintragung. Ich gehe hier von maximal 50 Zeilen mit Mitarbeiter im Jahresplan aus, müsste vielleicht geändert werden
Gruß
Helmut
eine Lösung als Makro
Sub Übertragen()
Datum = Range("Event!B1").Value
Spalte = Range("IV2").End(xlToLeft).Column
For i = 2 To Spalte
If Cells(1, i).Value = Datum Then
For j = 2 To 50
If Cells(j, i).Value = "x" Then
Range("Event!B" & Range("Event!b5536").End(xlUp).Offset(1, 0).Row).Value = Cells(j,1).Value
End If
Next j
End If
Next i
End Sub
Bei Ausführung des Makros ist die aktive Tabelle "Jahresplan" und in der Tabelle "Event" ist ausser dem Datum in Spalte B keine weitere Eintragung. Ich gehe hier von maximal 50 Zeilen mit Mitarbeiter im Jahresplan aus, müsste vielleicht geändert werden
Gruß
Helmut
Antwort 5 von CaroS
Hallo Gruzzi,
habe mir Deine Datei matrix.xls angesehen. Da Du in Event!B4:F11 2 Kennzeichen "o" und "x" verwendest, kann (muss) es bei VERWEIS Schwierigkeiten geben.
Excel-Hilfe VERWEIS (Vektorversion):
Wenn "x" über "o" steht, wird Funktion 1: (x) falsch ermittelt. Es gilt "o" < "x" ( 111 = CODE("o") < CODE("x") = 120 ), um es mal ganz einfach zu begründen.
Mit einer Hilfsspalte rechts neben Event!B4:F11 und SVERWEIS könntest Du die schreckliche verschachtelte WENN-Formel stark vereinfachen, (blöde) Einschränkung hier: SVERWEIS kann nur "von links nach rechts" (deshalb die Hilfsspalte).
Gruß,
CaroS
habe mir Deine Datei matrix.xls angesehen. Da Du in Event!B4:F11 2 Kennzeichen "o" und "x" verwendest, kann (muss) es bei VERWEIS Schwierigkeiten geben.
Excel-Hilfe VERWEIS (Vektorversion):
Zitat:
Wichtig Die zu Suchvektor gehörenden Werte müssen in aufsteigender Reihenfolge angeordnet sein: ...,-2, -1, 0, 1, 2, ..., A-Z, FALSCH, WAHR; andernfalls gibt VERWEIS möglicherweise einen falschen Wert zurück.
Wichtig Die zu Suchvektor gehörenden Werte müssen in aufsteigender Reihenfolge angeordnet sein: ...,-2, -1, 0, 1, 2, ..., A-Z, FALSCH, WAHR; andernfalls gibt VERWEIS möglicherweise einen falschen Wert zurück.
Wenn "x" über "o" steht, wird Funktion 1: (x) falsch ermittelt. Es gilt "o" < "x" ( 111 = CODE("o") < CODE("x") = 120 ), um es mal ganz einfach zu begründen.
Mit einer Hilfsspalte rechts neben Event!B4:F11 und SVERWEIS könntest Du die schreckliche verschachtelte WENN-Formel stark vereinfachen, (blöde) Einschränkung hier: SVERWEIS kann nur "von links nach rechts" (deshalb die Hilfsspalte).
Gruß,
CaroS
Antwort 6 von Saarbauer
Hallo @public,
ausser AW1, die aus meiner Sicht abolut unpassend, hast du wohl auch keine Lösunung parat oder?
Gruß
Helmut
ausser AW1, die aus meiner Sicht abolut unpassend, hast du wohl auch keine Lösunung parat oder?
Gruß
Helmut