Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
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

@all: Ein gutes neues Jahr! / Daten umsortieren

@all: Ein gutes neues Jahr! / Daten umsortieren
01.01.2015 11:19:44
Burghard

Hallo,
Ich suche eine VBA-Lösung. Ich habe immer wieder eine lange Liste (mehrere hundert Daten) mit drei Angaben (s.u.), diese stehen allerdings alle in Spalte A untereinander. Ich möchte die drei Werte, die sich in Spalte A wiederholen umsortieren in:
Spalte A = Materialnummer, Spalte B = Hersteller, Spalte C = P-Datum
Beispiel:
ABC-123
Siemens
15.04.2008
NFC27K
Toshiba
16.01.2002
etc.
Das soll nach dem Umsortieren dann so aussehen:
Spalte A Spalte B Spalte C
ABC-123 Siemens 15.04.2008
NFC27K Toshiba 16.01.2002
etc.
Hilfe wäre nett.
Grüße Burghard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Danke!
01.01.2015 17:04:10
Burghard
Hallo Hajo,
vielen Dank für den aufgezeigten Lösungsweg. Muss ich mir noch genauer anschauen.
Grüße Burghard

AW: @all: Ein gutes neues Jahr! / Daten umsortieren
01.01.2015 11:34:53
Daniel
Hi
in B1 kommt die Formel:
=Index($A:$A;(Zeile(A1)-1)*3+Spalte(A1))
diese bis D1 ziehen und soweit nach unten wie benötigt.
dann Spalte B:D kopieren und an gleicher Stelle als Wert einfügen.
Danach dann Spalte A löschen.
funktioniert für den Fall, dass es immer genau drei Zeilen für jeden Datensatz sind.
Frohes neues, Daniel

Anzeige
AW: Danke!
01.01.2015 17:05:40
Burghard
Hallo Daniel,
vielen Dank für Deinen Lösungsweg!
Danke Burghard

wenn doch mit Formel ...
01.01.2015 12:13:44
neopa C
Hallo Burghard,
... und kein VBA zum Einsatz kommen kann, dann würde ich es ähnlich wie von Daniel vorgeschlagen tun.
Allerdings würde ich die Datenspalte zuvor verschieben, nachfolgend beispielsweise nach Spalte E.
und die Formel müsste dann noch eine Datenanzahl Prüfung geben, damit nicht unnötige 0-Werte ausgegeben werden.
Deshalb in A1:

=WENN((SPALTE(A1)>3)+((ZEILE(A1)-1)*3+SPALTE(A1)>ANZAHL2($E:$E));"";INDEX($E:$E;(ZEILE(A1)-1) *3+SPALTE(A1))) 
und Formel nach rechts und unten kopieren.
Gruß Werner
.. , - ...

Anzeige
AW: Danke!
01.01.2015 17:06:42
Burghard
Hallo Werner,
vielen Dank für Deinen Lösungsweg!
Danke Burghard

AW: formelfreier Ansatz
01.01.2015 12:22:41
Gerd L
Allen ein gutes Neues!
Hallo Burghard!
Sub test()
Const lngAnz As Long = 3 'Zeilen pro Datensatz
Const ersteZeile As Long = 2
Dim lngZeile As Long
Dim arrDaten() As Variant
Dim lngIndex As Long
Dim lngLZ As Long
lngLZ = Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile in Spalte A
ReDim arrDaten(1 To (lngLZ - ersteZeile + 1) / lngAnz, 1 To lngAnz)
For lngZeile = ersteZeile To lngLZ Step lngAnz
lngIndex = lngIndex + 1
arrDaten(lngIndex, 1) = Cells(lngZeile, 1)
arrDaten(lngIndex, 2) = Cells(lngZeile + 1, 1)
arrDaten(lngIndex, 3) = Cells(lngZeile + 2, 1)
Next
'Ausgabe ab D2-F2
Cells(ersteZeile, 4).Resize(UBound(arrDaten), lngAnz) = arrDaten
End Sub
Gruß Gerd

Anzeige
AW: Danke! VBA / formelfreier Ansatz
01.01.2015 17:08:41
Burghard
Hallo Gerd,
vielen Dank für Deine VBA-Lösung! Funktioniert wie gewünscht und ist superschnell!
Danke Burghard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige