Anzeige
Archiv - Navigation
1744to1748
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

Daten von Zellen in eine Spalte

Daten von Zellen in eine Spalte
19.03.2020 07:54:40
Zellen
Hallo,
ich möchte gerne Daten von Zellen aus mehreren Spalten (Anzahl der Spalten variabel) in einer Liste (neues Registerblatt), somit in einer Spalte untereinander schreiben.
Beispiel:
Tabelle 1
Spalte A: ArtNr
Spalte B: Kategorie 1
Spalte C: Kategorie 2
Spalte D: Kategorie 3 usw. (Die Anzahl der Kategorien ist immer variabel)
Das Ergebnis sollte dann so aussehen
Tabelle 2
$A$1 Artikel 1 $B$1 Kategorie 1
$A$2 Artikel 1 $B$2 Kategorie 2
$A$3 Artikel 1 $B$3 Kategorie 3
$A$4 Artikel 2 $B$4 Kategorie 1
$A$5 Artikel 2 $B$5 Kategorie 2
$A$6 Artikel 3 $B$6 Kategorie 1
$A$7 Artikel 3 $B$7 Kategorie 2
$A$8 Artikel 3 $B$8 Kategorie 3
$A$9 Artikel 3 $B$9 Kategorie 4
Bereits vielen Dank im Vorraus für Eure Hilfe... Alex

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von Zellen in eine Spalte
19.03.2020 08:19:36
Zellen
Hi
mal so auf die schnelle (aber nicht unbedingt der schnellste Code):
dim z as Long
dim s as Long
dim z2 as Long
with Sheets("Tabelle1").cells(1, 1).currentregion
for z = 1 to .rows.count
for s = 2 to .columns.count
if .cells(z, s)  "" then
z2 = z2 + 1
Sheets("Tabelle2").cells(z2, 1) = .cells(z, 1)
Sheets("Tabelle2").Cells(z2, 2) = .cells(z, s)
end if
next
next
end with
Gruß Daniel
AW: Daten von Zellen in eine Spalte
19.03.2020 08:32:03
Zellen
Hi Alex,
vielleicht so:
Sub Transponieren()
Dim lngZeile As Long
Dim intAnzahl As Integer
Dim lngZiel As Long
Dim arrWerte
lngZiel = 1
With Worksheets("Tabelle1")
For lngZeile = 1 To IIf(IsEmpty(.Cells(Rows.Count, 1)), _
.Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
intAnzahl = IIf(IsEmpty(.Cells(lngZeile, Columns.Count)), _
.Cells(lngZeile, Columns.Count).End(xlToLeft).Column, Columns.Count)
Worksheets("Tabelle2").Cells(lngZiel, 1).Resize(intAnzahl - 1, 1) = Cells(lngZeile,  _
1)
arrWerte = Application.Transpose(Range(Cells(lngZeile, 2), Cells(lngZeile, 1 +  _
intAnzahl)))
Worksheets("Tabelle2").Cells(lngZiel, 2).Resize(intAnzahl, 2) = arrWerte
On Error Resume Next
Erase arrWerte
On Error GoTo 0
lngZiel = lngZiel + intAnzahl - 1
Next lngZeile
End With
End Sub


Anzeige
AW: alternativ als Formellösung ...
19.03.2020 08:42:19
neopa
Hallo Alex,
... und da am einfachsten mit einer Hilfsspaltenformel.
Angenommen Deine Kategorien in Tabelle1 reichen bis z.B. max Spalte Y und die Daten stehen ab Zeile2, dann wie folgt
In Z1 schreibe 0 und in Z2 folgende Formel: =ANZAHL2(B2:Y2)+Z1 und kopiere diese bis zum Datensatzende.
In Tabelle2 dann
in A1: =WENN(A1="";"";INDEX(Tabelle1!B:Y;VERGLEICH(A1;Tabelle1!A:A;0);ZÄHLENWENN(A$1:A1;A1)))
in B1: =WENN(A1="";"";INDEX(Tabelle1!B:Y;VERGLEICH(A1;Tabelle1!A:A;0);ZÄHLENWENN(A$1:A1;A1)))
und beide Formeln weit genug nach unten ziehend kopieren.
Gruß Werner
.. , - ...

Anzeige
AW: alternativ als Formellösung ...
20.03.2020 06:56:30
Alex
Hallo Werner,
vielen Dank für die wahnsinnig schnelle Antwort.
Die Formeln für Tabelle1 funktionieren.
Aber die Formel für Tabelle2 funktionieren leider nicht. Beide identischen Formeln liefern mir als Ergebnis immer 0, egal welche Anzahl an Spalten bzw. Zeilen ich in Tabelle 1 eingetragen haben.
Bin etwas ratlos.
Alex
AW: zweimal die gleiche Formel kopiert ...
20.03.2020 11:09:03
neopa
Hallo Alex,
... sorry, in Tabelle2!A1 sollte natürlich folgende Formel einkopiert werden:
=INDEX(Tabelle1!A:A;VERGLEICH(ZEILE()-1;Tabelle1!Z:Z)+1)&""
und in B1 die Formel, die ich aus Versehen Dir auch für A1 einkopiert hatte.
Dann sollte es auch funktionieren.
Gruß Werner
.. , - ...
Anzeige
AW: zweimal die gleiche Formel kopiert ...
21.03.2020 07:29:59
Alex
Hallo Werner,
vielen Dank für Deine Hilfe und Geduld.
Jetzt zeigt er mir in Tabelle2 Spalte A meine Artikelnummern in der entsprechenden Anzahl an.
In Spalte B aber kommt kein Ergebnis (#NV). Ändere ich aber die Formel "VERGLEICH(A2;Tabelle1!A:A;0)" so ab, dass "VERGLEICH(A2;Tabelle1!A:A;-1)" steht, dann werden mir die Kategorienbeschriftungen angezeigt (Tabelle1, Zeile 1).
Da aber in meiner Tabelle jeweils verschiedene Kategorien den Artikelnummern zugewiesen sind, passt das natürlich nicht.
Hast Du auch dafür eine Lösung?
Wozu brauche ich eigentlich die Hilfsformel in Tabelle1, Spalte Z?
Alex....
Anzeige
AW: diese Beispieldatei gleich eingestellt ...
21.03.2020 09:06:00
neopa
Hallo Alex,
... hätte keine andere Interpretation Deiner Angaben bei mir hervorgerufen. Jetzt ist es eindeutig.
Die Hilfsspaltenformel in Tabelle1 (verkürzen die Auswertungsformel in Tabelle2 erheblich) bleibt wie gehabt.
Dir Formel in Tabelle2! verkürzen sich etwas zu:
in A1: =INDEX(Tabelle1!A:A;VERGLEICH(ZEILE()-1;Tabelle1!Z:Z)+1)
in B1: =WENN(A1="";"";INDEX(Tabelle1!B:Y;VERGLEICH(A1;Tabelle1!A:A;0);ZÄHLENWENN(A$1:A1;A1)))
Gruß Werner
.. , - ...
Anzeige
AW: diese Beispieldatei gleich eingestellt ...
21.03.2020 14:27:21
Alex
Hallo Werner,
1000 Dank für Deine Hilfe... Jetzt ist es genau so wie ich es mir vorgestellt haben.
Ich bin mehr als begeistert!
Alex
AW: bitteschön owT
21.03.2020 15:42:56
neopa
Gruß Werner
.. , - ...

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige