Konvertieren von Spalten/Zeilen in ein Array in Excel: WRAPCOLS & WRAPROWS Funktionen

  • Teile Das
Michael Brown

Der schnellste Weg, eine Spalte oder Zeile von Werten in ein zweidimensionales Array umzuwandeln, ist die Verwendung der Funktionen WRAPCOLS oder WRAPROWS.

Seit den ersten Tagen von Excel ist es sehr gut im Berechnen und Analysieren von Zahlen. Aber die Manipulation von Arrays war traditionell eine Herausforderung. Die Einführung von dynamischen Arrays hat die Verwendung von Array-Formeln sehr viel einfacher gemacht. Und jetzt gibt Microsoft eine Reihe von neuen dynamischen Array-Funktionen heraus, um Arrays zu manipulieren und neu zu formen. In diesem Tutorial lernen Sie, wie Sie zwei solcher Funktionen verwenden,WRAPCOLS und WRAPROWS, um eine Spalte oder Zeile im Handumdrehen in ein 2D-Array zu verwandeln.

    Excel WRAPCOLS-Funktion

    Die Funktion WRAPCOLS in Excel wandelt eine Zeile oder Spalte von Werten in ein zweidimensionales Array um, basierend auf der angegebenen Anzahl von Werten pro Zeile.

    Die Syntax hat die folgenden Argumente:

    WRAPCOLS(vector, wrap_count, [pad_with])

    Wo:

    • Vektor (erforderlich) - das eindimensionale Quell-Array oder der Quell-Bereich.
    • Umschlag_Zahl (erforderlich) - die maximale Anzahl von Werten pro Spalte.
    • auffüllen_mit (optional) - der Wert, der mit der letzten Spalte aufgefüllt werden soll, wenn nicht genügend Elemente vorhanden sind, um sie zu füllen. Wird er weggelassen, werden die fehlenden Werte mit #N/A aufgefüllt (Standard).

    Um zum Beispiel den Bereich B5:B24 in ein 2-dimensionales Array mit 5 Werten pro Spalte zu ändern, lautet die Formel:

    =WRAPROWS(B5:B24, 5)

    Sie geben die Formel in eine beliebige Zelle ein, und sie wird automatisch auf so viele Zellen wie nötig verteilt. In der WRAPCOLS-Ausgabe werden die Werte vertikal von oben nach unten angeordnet, basierend auf dem Umschlag_Zahl Wenn die Anzahl erreicht ist, wird eine neue Spalte begonnen.

    Excel-Funktion WRAPROWS

    Die Funktion WRAPROWS in Excel konvertiert eine Zeile oder Spalte von Werten in ein zweidimensionales Array auf der Grundlage der von Ihnen angegebenen Anzahl von Werten pro Zeile.

    Die Syntax lautet wie folgt:

    WRAPROWS(vector, wrap_count, [pad_with])

    Wo:

    • Vektor (erforderlich) - das eindimensionale Quell-Array oder der Quell-Bereich.
    • Umschlag_Zahl (erforderlich) - die maximale Anzahl von Werten pro Zeile.
    • auffüllen_mit (optional) - der Wert, der mit der letzten Zeile aufgefüllt werden soll, wenn nicht genügend Einträge vorhanden sind, um sie zu füllen. Der Standardwert ist #N/A.

    Um zum Beispiel den Bereich B5:B24 in ein 2D-Array mit 5 Werten in jeder Zeile umzuwandeln, lautet die Formel:

    =WRAPROWS(B5:B24, 5)

    Sie geben die Formel in die obere linke Zelle des Überlaufbereichs ein, und sie füllt alle anderen Zellen automatisch aus. Die Funktion WRAPROWS ordnet die Werte horizontal, von links nach rechts, auf der Grundlage der Umschlag_Zahl Wenn der Wert erreicht ist, wird eine neue Zeile begonnen.

    Verfügbarkeit von WRAPCOLS und WRAPROWS

    Beide Funktionen sind nur in Excel für Microsoft 365 (Windows und Mac) und Excel für das Web verfügbar.

    In früheren Versionen können Sie traditionelle, komplexere Formeln verwenden, um Transformationen von Spalte zu Zeile und von Zeile zu Zeile durchzuführen. Im weiteren Verlauf dieses Tutorials werden wir die alternativen Lösungen im Detail besprechen.

    Tipp: Um eine umgekehrte Operation durchzuführen, d.h. ein 2D-Array in eine einzelne Spalte oder Zeile umzuwandeln, verwenden Sie die Funktion TOCOL bzw. TOROW.

    Konvertierung von Spalten/Zeilen in Bereiche in Excel - Beispiele

    Nachdem Sie nun die grundsätzliche Verwendung verstanden haben, wollen wir uns nun ein paar spezifischere Fälle genauer ansehen.

    Festlegen der maximalen Anzahl von Werten pro Spalte oder Zeile

    Je nach der Struktur Ihrer Originaldaten können Sie diese in Spalten (WRAPCOLS) oder Zeilen (WRAPROWS) neu anordnen. Welche Funktion Sie auch immer verwenden, es ist die Umschlag_Zahl Argument, das die maximale Anzahl von Werten in jeder Spalte/Zeile bestimmt.

    Um zum Beispiel den Bereich B4:B23 in ein 2D-Array umzuwandeln, so dass jede Spalte maximal 10 Werte hat, verwenden Sie diese Formel:

    =WRAPCOLS(B4:B23, 10)

    Um denselben Bereich zeilenweise neu anzuordnen, so dass jede Zeile maximal 4 Werte enthält, lautet die Formel:

    =WRAPROWS(B4:B23, 4)

    Die folgende Abbildung zeigt, wie dies aussieht:

    Fehlende Werte im resultierenden Array auffüllen

    Falls nicht genügend Werte vorhanden sind, um alle Spalten/Zeilen des resultierenden Bereichs zu füllen, geben WRAPROWS und WRAPCOLS #N/A-Fehler zurück, um die Struktur des 2D-Arrays zu erhalten.

    Um das Standardverhalten zu ändern, können Sie einen benutzerdefinierten Wert für das optionale auffüllen_mit Argument.

    Um beispielsweise den Bereich B4:B21 in ein 2D-Array mit maximal 5 Werten umzuwandeln und die letzte Zeile mit Bindestrichen aufzufüllen, wenn nicht genügend Daten vorhanden sind, verwenden Sie diese Formel:

    =WRAPROWS(B4:B21, 5, "-")

    Um die fehlenden Werte durch Zeichenketten mit der Länge Null (Leerzeichen) zu ersetzen, lautet die Formel:

    =WRAPROWS(B4:B21, 5, "")

    Bitte vergleichen Sie die Ergebnisse mit dem Standardverhalten (Formel in D5), bei dem auffüllen_mit weggelassen wird:

    Mehrere Zeilen zu einem 2D-Bereich zusammenführen

    Um mehrere getrennte Zeilen in einem einzigen 2D-Array zusammenzufassen, stapeln Sie die Zeilen zunächst horizontal mit der Funktion HSTACK und umhüllen die Werte dann mit WRAPROWS oder WRAPCOLS.

    Um zum Beispiel die Werte aus 3 Zeilen (B5:J5, B7:G7 und B9:F9) zusammenzuführen und in Spalten mit jeweils 10 Werten zu packen, lautet die Formel:

    =WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

    Um Werte aus mehreren Zeilen in einem 2D-Bereich zu kombinieren, in dem jede Zeile 5 Werte enthält, nimmt die Formel folgende Form an:

    =WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

    Kombinieren Sie mehrere Spalten zu einem 2D-Array

    Um mehrere Spalten zu einem 2D-Bereich zusammenzufassen, stapeln Sie sie zunächst mit der Funktion VSTACK vertikal und fassen dann die Werte in Zeilen (WRAPROWS) oder Spalten (WRAPCOLS) zusammen.

    Um zum Beispiel die Werte aus 3 Spalten (B5:J5, B7:G7 und B9:F9) zu einem 2D-Bereich zu kombinieren, in dem jede Spalte 10 Werte enthält, lautet die Formel:

    =WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

    Um dieselben Spalten in einem 2D-Bereich zu kombinieren, in dem jede Zeile 5 Werte enthält, verwenden Sie diese Formel:

    =WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

    Einpacken und Sortieren des Arrays

    Wenn der Quellbereich Werte in zufälliger Reihenfolge enthält, die Ausgabe aber sortiert sein soll, gehen Sie folgendermaßen vor:

    1. Sortieren Sie das ursprüngliche Array mit der Funktion SORT nach Ihren Wünschen.
    2. Übergeben Sie das sortierte Array an WRAPCOLS oder WRAPROWS.

    Um zum Beispiel den Bereich B4:B23 in Zeilen mit jeweils 4 Werten zu packen und den resultierenden Bereich von A bis Z zu sortieren, konstruieren Sie eine Formel wie diese:

    =WRAPROWS(SORT(B4:B23), 4)

    Um denselben Bereich in Spalten mit jeweils 10 Werten zu packen und die Ausgabe alphabetisch zu sortieren, lautet die Formel:

    =WRAPCOLS(SORT(B4:B23), 10)

    Die Ergebnisse sehen wie folgt aus:

    Tipp: So ordnen Sie die Werte im resultierenden Array in absteigende Reihenfolge setzen Sie das dritte Argument ( sort_order ) der SORT-Funktion auf -1.

    WRAPCOLS Alternative für Excel 365 - 2010

    In älteren Excel-Versionen, in denen die Funktion WRAPCOLS nicht unterstützt wird, können Sie eine eigene Formel erstellen, um die Werte eines eindimensionalen Arrays in Spalten einzuschließen, indem Sie 5 verschiedene Funktionen zusammen verwenden.

    WRAPCOLS Alternative zur Umwandlung einer Zeile in einen 2D-Bereich:

    IFERROR(IF(ROW(A1)> n , "", INDEX( zeilen_bereich , , ZEILE(A1) + (SPALTE(A1)-1)* n )), "")

    WRAPCOLS Alternative zur Umwandlung einer Spalte in einen 2D-Bereich:

    IFERROR(IF(ROW(A1)> n , "", INDEX( spalten_bereich , ZEILE(A1) + (SPALTE(A1)-1)* n )), "")

    Wo n ist die maximale Anzahl von Werten pro Spalte.

    In der folgenden Abbildung verwenden wir die folgende Formel, um einen einzeiligen Bereich (D4:J4) in ein dreireihiges Array zu verwandeln.

    =IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) + (COLUMN(A1)-1)*3)), "")

    Und diese Formel ändert einen einspaltigen Bereich (B4:B20) in ein fünfzeiliges Feld:

    =IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) + (COLUMN(A1)-1)*5)), "")

    Die obigen Lösungen entsprechen den analogen WRAPCOLS-Formeln und führen zu denselben Ergebnissen:

    =WRAPCOLS(D4:J4, 3, "")

    und

    =WRAPCOLS(B4:B20, 5, "")

    Bitte beachten Sie, dass im Gegensatz zur dynamischen Array-Funktion WRAPCOLS die traditionellen Formeln dem Ansatz "eine Formel - eine Zelle" folgen. Unsere erste Formel wird also in D8 eingegeben und 3 Zeilen nach unten und 3 Spalten nach rechts kopiert. Die zweite Formel wird in D14 eingegeben und 5 Zeilen nach unten und 4 Spalten nach rechts kopiert.

    Wie diese Formeln funktionieren

    Im Mittelpunkt beider Formeln steht die Funktion INDEX, die auf der Grundlage einer Zeilen- und Spaltennummer einen Wert aus dem übergebenen Array zurückgibt:

    INDEX(array, zeilen_num, [spalten_num])

    Da wir es mit einem einzeiligen Array zu tun haben, können wir die zeilen_zahl Argument, so dass es standardmäßig 1 ist. Der Trick besteht darin, dass Spalte_Zahl automatisch für jede Zelle berechnet, in die die Formel kopiert wird, und zwar folgendermaßen

    ZEILE(A1)+(SPALTE(A1)-1)*3)

    Die Funktion ROW gibt die Zeilennummer der A1-Referenz zurück, die 1 ist.

    Die Funktion SPALTE gibt die Spaltennummer der Referenz A1 zurück, die ebenfalls 1 ist. Durch Subtraktion von 1 wird sie zu Null, und die Multiplikation von 0 mit 3 ergibt 0.

    Dann addiert man die von ROW zurückgegebene 1 und die von COLUMN zurückgegebene 0 und erhält als Ergebnis 1.

    Auf diese Weise wird die INDEX-Formel in der oberen linken Zelle des Zielbereichs (D8) dieser Transformation unterzogen:

    INDEX($D$4:$J$4, ,ZEILE(A1) + (SPALTE(A1)-1)*3))

    Änderungen an

    INDEX($D$4:$J$4, ,1)

    und gibt den Wert aus der 1. Spalte des angegebenen Arrays zurück, also "Äpfel" in D4.

    Wenn die Formel in die Zelle D9 kopiert wird, ändern sich die relativen Zellbezüge auf der Grundlage einer relativen Position der Zeilen und Spalten, während der absolute Bereichsbezug unverändert bleibt:

    INDEX($D$4:$J$4,, ZEILE(A2)+(SPALTE(A2)-1)*3))

    verwandelt sich in:

    INDEX($D$4:$J$4,, 2+(1-1)*3))

    wird:

    INDEX($D$4:$J$4,, 2))

    und gibt den Wert aus der 2. Spalte des angegebenen Arrays zurück, also "Aprikosen" in E4.

    Die Funktion IF prüft die Zeilennummer und gibt, wenn sie größer ist als die von Ihnen angegebene Zeilenzahl (in unserem Fall 3), eine leere Zeichenkette ("") zurück, ansonsten das Ergebnis der Funktion INDEX:

    IF(ROW(A1)>3, "", INDEX(...))

    Schließlich behebt die Funktion IFERROR einen #REF!-Fehler, der auftritt, wenn die Formel in mehr Zellen kopiert wird als tatsächlich benötigt.

    Die zweite Formel, die eine Spalte in einen 2D-Bereich umwandelt, funktioniert nach der gleichen Logik, mit dem Unterschied, dass Sie die Kombination ROW + COLUMN verwenden, um die zeilen_zahl Argument für INDEX. Das Spalte_Zahl Parameter wird in diesem Fall nicht benötigt, da das Quell-Array nur eine Spalte enthält.

    WRAPROWS Alternative für Excel 365 - 2010

    Um die Werte aus einem eindimensionalen Array in Excel 2019 und früher in Zeilen einzuschließen, können Sie die folgenden Alternativen zur Funktion WRAPROWS verwenden.

    Eine Zeile in einen 2D-Bereich umwandeln:

    IFERROR(IF(COLUMN(A1)> n , "", INDEX( zeilen_bereich , , SPALTE(A1)+(ZEILE(A1)-1)* n )), "")

    Ändern Sie eine Spalte in einen 2D-Bereich:

    IFERROR(IF(COLUMN(A1)> n , "", INDEX( spalten_bereich , SPALTE(A1)+(ZEILE(A1)-1)* n )), "")

    Wo n ist die maximale Anzahl von Werten pro Zeile.

    In unserem Beispieldatensatz verwenden wir die folgende Formel, um einen einzeiligen Bereich (D4:J4) in einen dreispaltigen Bereich zu konvertieren. Die Formel landet in Zelle D8 und wird dann über 3 Spalten und 3 Zeilen kopiert.

    =IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1)+(ROW(A1)-1)*3)), "")

    Um einen einspaltigen Bereich (B4:B20) in einen fünfspaltigen Bereich umzuformen, geben Sie die folgende Formel in D14 ein und ziehen Sie sie über 5 Spalten und 4 Zeilen.

    =IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1)+(ROW(A1)-1)*5)), "")

    In Excel 365 können die gleichen Ergebnisse mit den entsprechenden WRAPCOLS-Formeln erzielt werden:

    =WRAPROWS(D4:J4, 3, "")

    und

    =WRAPROWS(B4:B20, 5, "")

    Wie diese Formeln funktionieren

    Im Wesentlichen funktionieren diese Formeln wie im vorherigen Beispiel. Der Unterschied besteht darin, wie Sie die zeilen_nummer und Spalte_Zahl Koordinaten für die Funktion INDEX:

    INDEX($D$4:$J$4,, SPALTE(A1)+(ZEILE(A1)-1)*3))

    Um die Spaltennummer für die obere linke Zelle im Zielbereich (D8) zu erhalten, verwenden Sie diesen Ausdruck:

    SPALTE(A1)+(ZEILE(A1)-1)*3)

    die sich in:

    1+(1-1)*3

    und ergibt 1.

    Als Ergebnis gibt die folgende Formel den Wert aus der ersten Spalte des angegebenen Arrays zurück, nämlich "Äpfel":

    INDEX($D$4:$J$4,, 1)

    Bis jetzt ist das Ergebnis dasselbe wie im vorherigen Beispiel, aber schauen wir mal, was in anderen Zellen passiert...

    In Zelle D9 ändern sich die relativen Zellbezüge wie folgt:

    INDEX($D$4:$J$4,, SPALTE(A2)+(ZEILE(A2)-1)*3))

    Die Formel wird also zu:

    INDEX($D$4:$J$4,, 1+(2-1)*3))

    wird:

    INDEX($D$4:$J$4,, 4))

    und gibt den Wert aus der 4. Spalte des angegebenen Arrays zurück, also "Kirschen" in G4.

    Die Funktion IF prüft die Spaltennummer und gibt eine leere Zeichenkette ("") zurück, wenn sie größer ist als die von Ihnen angegebene Anzahl von Spalten, andernfalls das Ergebnis der Funktion INDEX:

    IF(COLUMN(A1)>3, "", INDEX(...))

    Schließlich verhindert IFERROR, dass #REF!-Fehler in "zusätzlichen" Zellen erscheinen, wenn Sie die Formel in mehr Zellen kopieren, als tatsächlich benötigt werden.

    WRAPCOLS oder WRAPROWS Funktion funktioniert nicht

    Wenn die "Umbruch"-Funktionen in Ihrem Excel nicht verfügbar sind oder zu einem Fehler führen, liegt das höchstwahrscheinlich an einem der folgenden Gründe.

    #NAME? Fehler

    In Excel 365 kann ein #NAME?-Fehler auftreten, weil Sie den Namen der Funktion falsch geschrieben haben. In anderen Versionen bedeutet dies, dass die Funktionen nicht unterstützt werden. Als Abhilfe können Sie die Alternativen WRAPCOLS oder WRAPROWS verwenden.

    #VALUE! error

    Ein #VALUE-Fehler tritt auf, wenn die Vektor Argument kein eindimensionales Array ist.

    #NUM!-Fehler

    Ein #NUM-Fehler tritt auf, wenn die Umschlag_Zahl Wert ist 0 oder eine negative Zahl.

    #SPILL! Fehler

    Meistens bedeutet ein #SPILL-Fehler, dass nicht genügend leere Zellen vorhanden sind, in die die Ergebnisse verschüttet werden können. Leeren Sie die benachbarten Zellen, und der Fehler ist behoben. Wenn der Fehler weiterhin besteht, lesen Sie, was #SPILL in Excel bedeutet und wie Sie ihn beheben können.

    So verwenden Sie die Funktionen WRAPCOLS und WRAPROWS, um einen eindimensionalen Bereich in ein zweidimensionales Feld in Excel zu konvertieren. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!

    Übungsheft zum Herunterladen

    WRAPCOLS und WRAPROWS Funktionen - Beispiele (.xlsx Datei)

    Michael Brown ist ein begeisterter Technologie-Enthusiast mit einer Leidenschaft für die Vereinfachung komplexer Prozesse mithilfe von Softwaretools. Mit mehr als einem Jahrzehnt Erfahrung in der Technologiebranche hat er seine Fähigkeiten in Microsoft Excel und Outlook sowie Google Sheets und Docs verfeinert. Michaels Blog widmet sich dem Teilen seines Wissens und seiner Expertise mit anderen und bietet leicht verständliche Tipps und Tutorials zur Verbesserung von Produktivität und Effizienz. Egal, ob Sie ein erfahrener Profi oder ein Anfänger sind, Michaels Blog bietet wertvolle Einblicke und praktische Ratschläge, wie Sie diese wichtigen Softwaretools optimal nutzen können.