Excel TOCOL-Funktion zur Umwandlung eines Bereichs in eine einzelne Spalte

  • Teile Das
Michael Brown

Eine einfache Möglichkeit, ein Array oder einen Bereich mit der Funktion TOCOL in eine Spalte umzuwandeln.

Die Möglichkeit, Daten von Spalten in Zeilen und umgekehrt zu transponieren, gibt es in Excel schon seit geraumer Zeit. Aber die Umwandlung eines Bereichs von Zellen in eine einzelne Spalte war eine knifflige Aufgabe. Jetzt ändert sich das endlich. Microsoft hat eine neue Funktion namens TOCOL eingeführt, mit der eine Array-zu-Spalte-Transformation im Handumdrehen durchgeführt werden kann. Im Folgenden finden Sie eine Liste von Aufgaben, die mit dieser neuen Funktion leicht gelöst werden können.

    Excel TOCOL-Funktion

    Die Funktion TOCOL in Excel wandelt ein Feld oder einen Bereich von Zellen in eine einzelne Spalte um.

    Die Funktion benötigt drei Argumente, aber nur das erste ist erforderlich.

    TOCOL(array, [ignore], [scan_by_column])

    Wo:

    Array (erforderlich) - ein Array oder ein Bereich, der in eine Spalte umgewandelt werden soll.

    Ignorieren Sie (optional) - legt fest, ob Leerzeichen oder/und Fehler ignoriert werden sollen; kann einer dieser Werte sein:

    • 0 oder weggelassen (Standard) - alle Werte behalten
    • 1 - Leerzeichen ignorieren
    • 2 - Fehler ignorieren
    • 3 - Leerstellen und Fehler ignorieren

    Scan_by_column (optional) - bestimmt, ob das Feld horizontal oder vertikal gescannt werden soll:

    • FALSE oder weggelassen (Standard) - scannt das Array zeilenweise von links nach rechts.
    • TRUE - scannt das Array spaltenweise von oben nach unten.

    Tipps:

    • Um ein Array in eine einzelne Zeile umzuwandeln, verwenden Sie die Funktion TOROW.
    • Um die umgekehrte Umwandlung von Spalten in Reihen vorzunehmen, verwenden Sie entweder die Funktion WRAPCOLS für den spaltenweisen Umbruch oder die Funktion WRAPROWS für den zeilenweisen Umbruch.
    • Um ein Array von der Horizontalen in die Vertikale oder umgekehrt zu transponieren, d.h. Zeilen in Spalten umzuwandeln, verwenden Sie die Funktion TRANSPOSE.

    TOCOL-Verfügbarkeit

    TOCOL ist eine neue Funktion, die in Excel für Microsoft 365 (für Windows und Mac) und Excel für das Web unterstützt wird.

    Grundlegende TOCOL-Formel zur Umwandlung eines Bereichs in eine Spalte

    Die TOCOL-Formel in ihrer einfachsten Form benötigt nur ein Argument - Array Um zum Beispiel ein zweidimensionales Feld, das aus 3 Spalten und 4 Zeilen besteht, in einer einzigen Spalte unterzubringen, lautet die Formel:

    =TOCOL(A2:C5)

    Die Formel wird nur in eine Zelle (in diesem Beispiel E2) eingegeben und läuft automatisch in die darunter liegenden Zellen über. In Excel wird das Ergebnis als Überlaufbereich bezeichnet.

    Wie diese Formel funktioniert:

    Technisch gesehen wird der Bereich A2:C5 zunächst in ein zweidimensionales Array umgewandelt, wobei die Zeilen durch Semikolon und die Spalten durch Komma getrennt sind:

    {"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}

    Die Funktion TOCOL scannt das Array von links nach rechts und wandelt es in ein eindimensionales vertikales Array um:

    {"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}

    Das Ergebnis wird in die Zelle E2 eingetragen, von wo aus es in die darunter liegenden Zellen fließt.

    Wie verwendet man die TOCOL-Funktion in Excel - Formelbeispiele

    Um ein besseres Verständnis für die Möglichkeiten der TOCOL-Funktion zu bekommen und welche Aufgaben sie abdecken kann, sehen wir uns einige Formelbeispiele an.

    Array in Spalte umwandeln, Leerzeichen und Fehler ignorieren

    Wie Sie vielleicht im vorherigen Beispiel bemerkt haben, behält die Standardformel TOCOL alle Werte aus dem Quellfeld, einschließlich leerer Zellen und Fehler.

    Im resultierenden Array werden leere Zellen durch Nullen dargestellt, was ziemlich verwirrend sein kann, insbesondere wenn das ursprüngliche Array 0 Werte hat. Die Lösung ist Leerzeichen überspringen Hierfür setzen Sie das 2. Argument auf 1:

    =PROTOKOLL(A2:C5, 1)

    An Fehler ignorieren setzen Sie das 2. Argument auf 2:

    =PROTOKOLL(A2:C5, 2)

    Um beides auszuschließen, Leerstellen und Fehler , verwenden Sie 3 für die ignorieren. Argument:

    =PROTOKOLL(A2:C5, 3)

    Array horizontal oder vertikal scannen

    Mit dem Standard scan_by_column (FALSE oder weggelassen), scannt die Funktion TOCOL das Array horizontal zeilenweise. Um Werte spaltenweise zu verarbeiten, setzen Sie dieses Argument auf TRUE oder 1. Zum Beispiel:

    =PROTOKOLL(A2:C5, ,TRUE)

    Beachten Sie, dass die zurückgegebenen Arrays in beiden Fällen die gleiche Größe haben, die Werte aber in einer anderen Reihenfolge angeordnet sind.

    Mehrere Bereiche in einer Spalte zusammenfassen

    Wenn Sie es mit mehreren nicht zusammenhängenden Bereichen zu tun haben, können Sie die Bereiche zunächst mit Hilfe der Funktion VSTACK vertikal zu einem einzigen Array zusammenfassen und dann TOCOL verwenden, um das kombinierte Array in eine Spalte umzuwandeln.

    Angenommen, der erste Bereich ist A2:C4 und der zweite Bereich ist A8:C9, dann sieht die Formel wie folgt aus:

    =PROTOKOLL(VSTACK(A2:C4, A8:C9))

    Diese Formel veranschaulicht das Standardverhalten - sie liest die kombinierten Felder horizontal von links nach rechts, wie in Spalte E in der folgenden Abbildung gezeigt.

    Um Werte vertikal von oben nach unten zu lesen, setzen Sie das 3. Argument von TOCOL auf TRUE:

    =PROTOKOLL(VSTACK(A2:C4, A8:C9), ,TRUE)

    Bitte beachten Sie, dass die Formel in diesem Fall zuerst Werte aus Spalte A der beiden Arrays zurückgibt, dann aus Spalte B usw. Der Grund dafür ist, dass TOCOL ein einzelnes gestapeltes Array durchsucht und nicht die ursprünglichen einzelnen Bereiche.

    Wenn Ihre Geschäftslogik erfordert, dass die ursprünglichen Bereiche horizontal und nicht vertikal gestapelt werden, verwenden Sie die Funktion HSTACK anstelle von VSTACK.

    Um jedes nachfolgende Array rechts an das vorherige Array anzuhängen und die kombinierten Arrays horizontal zu lesen, lautet die Formel:

    =PROTOKOLL(HSTACK(A2:C4, A8:C10))

    Um jedes nachfolgende Feld rechts vom vorherigen Feld zu addieren und die kombinierten Felder vertikal zu scannen, lautet die Formel:

    =PROTOKOLL(HSTACK(A2:C4, A8:C10), ,TRUE)

    Eindeutige Werte aus einem mehrspaltigen Bereich extrahieren

    Die Excel-Funktion UNIQUE kann leicht eindeutige Werte in einer einzelnen Spalte oder Zeile finden und eindeutige Zeilen zurückgeben, aber sie kann keine eindeutigen Werte aus einem mehrspaltigen Array extrahieren. Die Lösung ist, sie zusammen mit der Funktion TOCOL zu verwenden.

    Um z. B. alle verschiedenen (unterschiedlichen) Werte aus dem Bereich A2:C7 zu extrahieren, lautet die Formel:

    =EINZIGARTIG(TOCOL(A2:C7))

    Zusätzlich können Sie die obige Formel in die Funktion SORT einschließen, um das zurückgegebene Array in alphabetischer Reihenfolge anzuordnen:

    =SORT(UNIQUE(TOCOL(A2:C7)))

    Wie konvertiert man in Excel 365 - 2010 einen Bereich in eine Spalte?

    In Excel-Versionen, in denen die Funktion TOCOL nicht unterstützt wird, gibt es einige alternative Möglichkeiten, einen Zellbereich in eine Spalte umzuwandeln. Diese Lösungen sind zwar recht kompliziert, funktionieren aber trotzdem.

    Um den Bereich zeilenweise zu lesen:

    INDEX( Bereich , QUOTIENT(ZEILE(A1)-1, SPALTEN( Bereich ))+1, MOD(ZEILE(A1)-1, SPALTEN( Bereich ))+1)

    Um den Bereich spaltenweise zu lesen:

    INDEX( Bereich , MOD(ROW(A1)-1, ROWS( Bereich ))+1, QUOTIENT(ZEILE(A1)-1, ZEILEN( Bereich ))+1)

    Für unseren Beispieldatensatz lauten die Formeln wie folgt:

    So scannen Sie den Bereich Horizontal von links nach rechts :

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    Diese Formel entspricht der Funktion TOCOL, wobei das dritte Argument auf FALSE gesetzt oder weggelassen wird:

    =TOCOL(A2:C5)

    So scannen Sie den Bereich vertikal von oben nach unten :

    =INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)

    Diese Formel ist vergleichbar mit der Funktion TOCOL, wobei das dritte Argument auf TRUE gesetzt wird:

    =PROTOKOLL(A2:C5, ,TRUE)

    Im Gegensatz zu TOCOL müssen die Alternativformeln in jede Zelle eingegeben werden, in der die Ergebnisse erscheinen sollen. In unserem Fall gehen die Formeln in die Zellen E2 (zeilenweise) und G2 (spaltenweise) und werden dann nach unten in Zeile 13 kopiert.

    Wenn die Formeln in mehr Zeilen als nötig kopiert werden, wird in den "zusätzlichen" Zellen ein #REF!-Fehler angezeigt. Um dies zu verhindern, können Sie die Formeln in der Funktion IFERROR wie folgt verschachteln:

    =IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1), "")

    Damit die Formeln korrekt kopiert werden können, müssen wir den Bereich mit absoluten Zellbezügen ($A$2:$C$5) sperren. Stattdessen können Sie einen benannten Bereich verwenden.

    Wie diese Formeln funktionieren

    Im Folgenden wird die erste Formel, die die Zellen nach Zeilen ordnet, detailliert beschrieben:

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    Die Idee ist, die Funktion INDEX zu verwenden, um den Wert einer bestimmten Zelle auf der Grundlage ihrer relativen Zeilen- und Spaltennummern im Bereich zurückzugeben.

    Die Zeilennummer wird durch diese Kombination berechnet:

    QUOTIENT(ZEILE(A1)-1, SPALTEN($A$2:$C$5))+1

    QUOTIENT gibt den ganzzahligen Anteil einer Division zurück.

    Für Zähler verwenden Sie ROW(A1)-1, was eine fortlaufende Nummer von 0 in E2 (erste Zelle, in der die Formel eingegeben wurde) bis 11 in E13 (letzte Zelle, in der die Formel eingegeben wurde) ergibt.

    Die Nenner COLUMNS($A$2:$C$5)) ist konstant und entspricht der Anzahl der Spalten in Ihrem Bereich (in unserem Fall 3).

    Wenn Sie nun das Ergebnis von QUOTIENT für die ersten 3 Zellen (E2:E4) überprüfen, werden Sie feststellen, dass es gleich 0 ist (weil der ganzzahlige Teil der Division gleich Null ist). Die Addition von 1 ergibt die Zeilennummer 1.

    Für die nächsten 3 Zellen (E5:E5) gibt QUOTIENT die Zahl 1 zurück, und die Operation +1 liefert die Zeilennummer 2. Und so weiter.

    Mit anderen Worten, dieser Teil der Formel erstellt eine sich wiederholende Zahlenfolge wie 1,1,1,2,2,2,3,3,3,4,4,4,... Jede Zahl wiederholt sich so oft, wie es Spalten in Ihrem Bereich gibt.

    Zur Berechnung der Spaltennummer bilden Sie mit der Funktion MOD eine entsprechende Zahlenfolge:

    MOD(ZEILE(A1)-1, SPALTEN($A$2:$C$5))+1

    Da es in unserem Bereich 3 Spalten gibt (A2:C5), muss die Reihenfolge 1,2,3,1,2,3,... sein.

    Die Funktion MOD gibt den Rest nach der Division zurück.

    In E2, MOD(ZEILE(A1)-1, SPALTEN($A$2:$C$5))+1)

    wird

    MOD(1-1, 3)+1)

    und gibt 1 zurück.

    In E3, MOD(ZEILE(A2)-1, SPALTEN($A$2:$C$5))+1)

    wird

    MOD(2-1, 3)+1)

    und gibt 2 zurück.

    Wenn die Zeilen- und Spaltennummern feststehen, hat INDEX keine Probleme, den gewünschten Wert zu finden.

    In E2 gibt INDEX($A$2:$C$5, 1, 1) den Wert aus der ersten Zeile und der ersten Spalte des referenzierten Bereichs zurück, d. h. aus Zelle A2.

    In E3 gibt INDEX($A$2:$C$5, 1, 2) den Wert aus der ersten Zeile und der zweiten Spalte zurück, d.h. aus Zelle B2.

    Und so weiter.

    Die zweite Formel, die den Bereich spaltenweise durchsucht, funktioniert ähnlich, mit dem Unterschied, dass sie MOD verwendet, um die Zeilennummer zu erhalten, und QUOTIENT, um die Spaltennummer zu erhalten.

    TOCOL-Funktion funktioniert nicht

    Wenn die TOCOL-Funktion einen Fehler auslöst, hat das höchstwahrscheinlich einen dieser Gründe:

    TOCOL wird in Ihrem Excel nicht unterstützt

    Wenn Sie eine #NAME?-Fehlermeldung erhalten, sollten Sie zunächst die korrekte Schreibweise des Funktionsnamens überprüfen. Wenn der Name korrekt ist, der Fehler aber weiterhin auftritt, ist die Funktion in Ihrer Excel-Version nicht verfügbar. In diesem Fall sollten Sie eine TOCOL-Alternative verwenden.

    Array ist zu groß

    Ein #NUM-Fehler zeigt an, dass das Array nicht in eine Spalte passt. Ein typischer Fall ist, wenn Sie sich auf ganze Spalten oder Zeilen beziehen.

    Es gibt nicht genügend leere Zellen

    Wenn ein #SPILL-Fehler auftritt, überprüfen Sie, ob die Spalte, in die die Formel eingegeben wird, genügend leere Zellen hat, um mit den Ergebnissen gefüllt zu werden. Wenn die Zellen visuell leer sind, stellen Sie sicher, dass sie keine Leerzeichen und andere nicht druckbare Zeichen enthalten. Weitere Informationen finden Sie unter Behebung des #SPILL-Fehlers in Excel.

    So können Sie die Funktion TOCOL in Excel 365 und alternative Lösungen in früheren Versionen verwenden, um ein 2-dimensionales Array in eine einzelne Spalte umzuwandeln. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche auf unserem Blog zu sehen!

    Arbeitsbuch für die Praxis

    Excel TOCOL-Funktion - Formelbeispiele (.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.