Zeile zu Matrix

Zeile blockweise im mehrere Zeilen aufteilen

Diese Beispieltabelle hat eine Zeile mit 14 Spalten. Das Ziel ist es nun, daraus eine Matrix mit 3 Spalten und n Zeilen zu machen. In diesem Fall wäre n = 5, weil 14/3 aufgerundet 5 ergibt. (Das dürfen Sie auch gerne in Excel in eine Formel bringen  😉 ).

Plain Excel

In A1:N1 stehen unterschiedliche Werte, in der Musterdatei sind das die Texte Spalte 1 bis Spalte 14. Die Aufgabe besteht -wie bereits oben beschrieben, in A2:C2 die ersten drei Werte zu schreiben, in A3:C2 die nächsten drei Werte, und so weiter. Geben Sie dazu in A2 diese Formel ein: =INDEX($1:$1; SPALTE(A1)+(ZEILE(A1)-1)*3).

Wenn Sie keinerlei Erfahrung mit etwas komplexeren Formeln haben, bedarf es einer kleinen Erklärung. In diesem Fall gibt INDEX() den Wert aus der nten Position in der Zeile 1 ($1:$1) zurück. Was noch wichtig ist: Die Multiplikation mit 3 am Ende der Formel bestimmt, dass jeweils 3 Spalten gefüllt werden sollen. Der Teil direkt nach dem Semikolon berechnet die Position in Zeile 1.

Das Ganze macht aber erst Sinn, wenn Sie diese Formel bis C2 rüber ziehen und dann bis mindestens Zeile 5 nach unten ziehen. Wenn es mehr Zeilen sind, macht das erst einmal nicht viel aus, weil die in Zeile 1 leeren Zellen hier mit einer Null gefüllt werden. Im Anschluss können Sie entweder die Zellen mit den Nullwerten löschen oder Sie verwenden ein benutzerdefiniertes Zahlenformat: Standard;Standard; also exakt so mit dem letzten Semikolon. Dann werden die Nullen unterdrückt.

Wenn Sie nur die Matrix ohne die Zeile 1 behalten wollen, dann können Sie nicht einfach die erste Zeile löschen. Schließlich beziehen die Formeln in der Matrix sich auf die dortigen Daten. Wollen Sie nur die Matrix in dem Arbeitsblatt haben, dann werden Sie erst den Bereich der Matrix kopieren und dann Als Wert wieder einfügen. Dadurch ist die Verbindung zu den ursprünglichen Daten aufgehoben und Sie können die erste Zeile leeren oder komplett löschen.

▲ nach oben …

Per Makro&VBA

Aus meiner Sicht um einiges transparenter ist der in VBA verwendete Code. Ich finde auch, dass er viel leichter anzupassen ist, wenn beispielsweise die Spaltenzahl oder der Zielbereich geändert werden soll. Der Code könnte so aussehen:

Sie brauchen nur noch das Makro ausführen und die Anzahl der Spalten für die Matrix anzupassen, die Zeile mit den Ursprungsdaten vielleicht anzupassen oder die Zeile für die Ziel-Ausgabe zu ändern.


Selbstredend ist es in beiden Varianten, plain Excel und VBA möglich, dass die Daten nicht in Spalte 1 beginnen. Das können Sie sich gerne selbst erarbeiten.

▲ nach oben …

Dieser Beitrag wurde unter Mit VBA/Makro, Musterlösungen, Ohne Makro/VBA, Tabelle und Zelle, Wege nach Rom abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.