Kombinieren Sie alle 15 Reihen in einer Reihe über zahlreiche Reihen

559
Jan Winkler

Ich habe Daten in 45000 Zeilen (einzelne Spalte) verteilt. Ich muss alle 15 Reihen zu einer Reihe zusammenfassen. Am Ende brauche ich 3000 Zeilen mit kombinierten Daten aus jeweils 15 Zeilen.

von:

row 1  row 2 row 3 row 4 etc... 

in:

row 1 (rows 1-15) row 2 (rows 16-30) row 3 (rows 31-45) row 4 (rows 46-60) etc... 

Ich weiß, wie man 15 Reihen in einer zusammenfasst, weiß aber nicht, wie man ein Modul erstellt, um dies in allen 45000 Reihen zu wiederholen.

Bisher habe ich die CONCATENATE-Funktion verwendet, um mehrere Zeilen (15) zu einer einzigen zu kombinieren. Es gibt jedoch einfach zu viele Zeilen (45000) und ich muss den Weg finden, dies automatisch über alle Zeilen hinweg durchzuführen. Ich denke, ich muss ein Makro mit VBA erstellen.

Die Daten in den Zeilen sind eine Kombination aus Zahlen und Strings. Hier ein Beispiel der ersten Zeilen:

20181102-112745254375,$IIGLL,4342.3344,N,01548.0639,E,102745.00,A,A*7E 20181102-112745306452,$IIHDG,264.0,,,3.90,E*18 20181102-112745342864,$IIHDT,267.9,T*28 20181102-112745385244,$IIHDM,264.0,M*22 
1
Möchten Sie uns zeigen, was Sie versucht haben? Ist das eine Formelfrage oder eine VBA-Frage? Wie wollen Sie zusammenführen / verketten? Was sind die Daten, sind es alle Zeichenfolgen oder Zahlen und Daten? dmb vor 5 Jahren 0
Da Sie CONCATENATE verwendet haben, können Sie INDEX mit der ROW-Funktion * 15 +1, +2, +3 bis +15 manipuliert übergeben, um alle 15 Zeilen in einer ansteckenden Art und Weise zu verketten. pat2015 vor 5 Jahren 0
Vielen Dank. Ich verstehe, was Sie meinen, ich weiß nicht, wie man diese Funktionen benutzt. Können Sie bitte die Formel angeben, die ich verwenden muss? Jan Winkler vor 5 Jahren 0

1 Antwort auf die Frage

1
pat2015

Basierend auf dem, was ich am besten verstehe, empfehle ich eine Lösung, die weiterhin CONCATENATE verwendet, jedoch in Kombination mit INDEX & ROW, um die Daten zu bearbeiten.

Die Beispieldaten befinden sich in Spalte A, beginnend mit A1 und darunter. Wenn diese Startzelle unterschiedlich ist, ist eine geringfügige Manipulation in der Formel erforderlich.

Die Formel ist länglich, um sie etwas zu verkürzen, habe ich in Name Manager einen Namen namens Name1 verwendet.

Gehen Sie zum Namensmanager und erstellen Sie einen neuen Namen namens Name1 mit der Formel als

=(ROW()-1)*15 

Jetzt in B1 die folgende Formel einfügen

=CONCATENATE(INDEX($A:$A,Name1+1),INDEX($A:$A,Name1+2),INDEX($A:$A,Name1+3),INDEX($A:$A,Name1+4),INDEX($A:$A,Name1+5),INDEX($A:$A,Name1+6),INDEX($A:$A,Name1+7),INDEX($A:$A,Name1+8),INDEX($A:$A,Name1+9),INDEX($A:$A,Name1+10),INDEX($A:$A,Name1+11),INDEX($A:$A,Name1+12),INDEX($A:$A,Name1+13),INDEX($A:$A,Name1+14),INDEX($A:$A,Name1+15)) 

und ziehen Sie es bis zu den vorgesehenen Reihen nach unten.

Nun werden alle 15 Zeilen von Spalte A ausgehend von der ersten Zelle in Zellen B1, B2 usw. eine einzige Zelle angeordnet, die untereinander gestapelt ist.

Ich danke dir sehr! Es läuft gut. Ich musste nur "," für ";" In der Formel wegen der unterschiedlichen Region, denke ich. Jan Winkler vor 5 Jahren 0
Ja, List Separator für Ihre Region in Windows ist wahrscheinlich; anstatt , pat2015 vor 5 Jahren 0