Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1080to1084
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilenweise Werte mit x ausgeben

Zeilenweise Werte mit x ausgeben
Marc
Hallo,
ich habe folgende Aufgabe:
Ich habe eine Excel Datei wo in der in der Spalte A die Artikel stehen. Danach kommen in der Überschrift KOmponenten. Hat nun ein Artikel eine Komponente ist ein x in der Zelle.
Ich brauche nun eine Liste in der in einer Zeile jeder Artikel mit einer Komponente drinsteht. Beispiel wie folgt:
https://www.herber.de/bbs/user/62676.xlsx
Ist Zustand ist die Tabelle1 Sollzustand ist Tabelle2.
D.h. er soll mir für jede Komponente eine Zeile mit dem jeweiligen Artikel kreiren.
Geht das überhaupt?
Lieben Gruß und danke im Vorraus
Marc

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilenweise Werte mit x ausgeben
23.06.2009 12:57:42
David
Hallo Marc,
hab hier keine Excel 2007, vermute aber, das dies deine Frage beantwortet:
Tabelle1
 ABC
1 Artikel Komponente 
2 100  101
3 101 x 104
4 102  106
5 103  109
6 104 x 117
7 105  121
8 106 x 124
9 107  #ZAHL!
10 108  #ZAHL!
11 109 x 
12 110   
13 111   
14 112   
15 113   
16 114   
17 115   
18 116   
19 117 x 
20 118   
21 119   
22 120   
23 121 x 
24 122   
25 123   
26 124 x 
27 125   

Zelle Formel
C2 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C1)))}
C3 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C2)))}
C4 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C3)))}
C5 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C4)))}
C6 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C5)))}
C7 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C6)))}
C8 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C7)))}
C9 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C8)))}
C10 {=INDEX($A$1:$A$27;KKLEINSTE(WENN($B$2:$B$27="x";ZEILE($B$2:$B$27);"");ZEILE(C9)))}
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren


Rückmeldung wäre nett.
Gruß
David
Anzeige
AW: Zeilenweise Werte mit x ausgeben
23.06.2009 13:22:42
Ralf
Marc,
leider kann ich mit deiner zip-Datei nichts anfangen. Da stehen irgendwelche xml-Sachen anstelle einer xlsx-Datei.
Ich glaube aber dein Problem auch so verstanden zu haben. Ich sende dir hier einen Lösungsansatz (ist Excel 2003, müsste aber in Excel 2007 auch funktionieren).
https://www.herber.de/bbs/user/62681.xls
Die Spalte A in Sheet2 ist eine Hilfsspalte. Sie ermittelt die Position der relevanten Zeilen in der Tabelle. Gesucht wird in Spalte B in Sheet1 nach "x", und zwar immer im verbleibenden Bereich nach der bereits ermittelten Position. Deshalb die BEREICH.VERSCHIEBEN-Funktion. Wichtig ist, dass die komplette Tabelle erfasst wird. Da ich die Größe der Tabelle nicht kenne, durchsuche ich die gesamte Spalte. Damit bin ich variabel. (65536 ist die maximale Zeilenanzahl in Excel 2003. In Excel 2007 ist dieser Wert größer. Wenn die Größe der Tabelle fest ist, nimmst du die Zeilenanzahl der Tabelle +1.)
In Spalte B ermittle ich den zur Position gehörigen Artikel. Weitere zum Artikel gehörigen Werte kann man mit der INDEX-Funktion oder der SVERWEIS-Funktion (wie gezeigt) übernehmen.
Der einzige Nachteil ist, dass man nicht weiß, wie viele Zeilen zu übernehmen sind. Deshalb muss man die Formel in Spalte A so weit nach unten kopieren, bis #NV erscheint. Falls sich die Größe der Ursprungstabelle ändert, muss man das immer wider prüfen. Vielleicht findest du da etwas eleganteres.
Viel Spaß
Ralf
Anzeige
AW: Zeilenweise Werte mit x ausgeben
23.06.2009 13:41:35
Marc
Hi,
ich fürchte Ihr habt mich falsch verstanden.
Habe nun die Datei nochmal im xls Format abgespeichert. Hoffe Ihr kommt damit klar.
Lieben Gruß
Marc
https://www.herber.de/bbs/user/62682.xls
AW: Zeilenweise Werte mit x ausgeben
23.06.2009 14:00:00
D.Saster
Hallo,
ganz einfach:

Sub tt()
Dim rngC As Range
For Each rngC In Sheets(1).Range("A1").CurrentRegion
If rngC = "x" Then
With Sheets(2)
.Cells(Rows.Count, 1).End(xlUp).Offset(1) = rngC.Offset(, -rngC.Column + 1)
.Cells(Rows.Count, 2).End(xlUp).Offset(1) = rngC.Offset(-rngC.Row + 1)
End With
End If
Next
End Sub


Gruß
Dierk

Anzeige
AW: Zeilenweise Werte mit x ausgeben
23.06.2009 14:33:51
Marc
Hallo Dierk,
Danke!! Das war´s!!
Klasse!!!! Hast mir ca. 4 Stunden Arbeit erspart!!
Danke!!
Marc
AW: Zeilenweise Werte mit x ausgeben
23.06.2009 15:00:47
Ralf
Marc,
falls du an einer VBA-freien Lösung interessiert bist, schau mal hier rein.
https://www.herber.de/bbs/user/62686.xls
Viel Spaß
Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige