Excel TOROW functie om bereik of matrix om te zetten naar rij

  • Deel Dit
Michael Brown

Een snelle manier om van een reeks cellen een enkele rij te maken met behulp van de TOROW functie.

Microsoft Excel 365 heeft verschillende nieuwe functies geïntroduceerd om verschillende manipulaties met arrays uit te voeren. Met TOROW kunt u in een handomdraai bereik-naar-rij transformaties uitvoeren. Hier is een lijst met taken die deze nieuwe functie kan uitvoeren:

    Excel TOROW functie

    De TOROW-functie in Excel wordt gebruikt om een matrix of een reeks cellen om te zetten in één rij.

    De functie neemt in totaal drie argumenten, waarvan alleen het eerste vereist is.

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

    Waar:

    Array (verplicht) - een array of bereik om te zetten in een enkele rij.

    Negeer (facultatief) - bepaalt of spaties en/of fouten moeten worden genegeerd. Kan een van deze waarden aannemen:

    • 0 of weggelaten (standaard) - alle waarden behouden
    • 1 - spaties negeren
    • 2 - fouten negeren
    • 3 - spaties en fouten negeren

    Scan_per_kolom (facultatief) - bepaalt hoe de matrix moet worden gescand:

    • FALSE of weggelaten (standaard) - scan de matrix horizontaal per rij.
    • TRUE - scan de matrix verticaal per kolom.

    Tips:

    • Gebruik de functie TOCOL om een matrix om te zetten in een enkele kolom.
    • Om de omgekeerde rij-naar-rij transformatie uit te voeren, gebruikt u ofwel de functie WRAPCOLS om in kolommen te wikkelen, ofwel de functie WRAPROWS om een matrix in rijen te wikkelen.
    • Gebruik de functie TRANSPOSE om van rijen kolommen te maken.

    Beschikbaarheid TOROW

    TOROW is een nieuwe functie, die alleen wordt ondersteund in Excel voor Microsoft 365 (voor Windows en Mac) en Excel voor het web.

    Basis TOROW-formule in Excel

    Voor een eenvoudige transformatie van bereik naar rij gebruikt u de TOROW-formule in haar basisvorm. Hiervoor hoeft u alleen het eerste argument ( array ).

    Om bijvoorbeeld van een tweedimensionale matrix bestaande uit 3 kolommen en 3 rijen één rij te maken, is de formule:

    =TOROW(A3:C6)

    U voert de formule in slechts één cel in (A10 in ons geval), en de formule loopt automatisch door naar zoveel cellen als nodig zijn om alle resultaten te bevatten. In Excel-termen wordt het uitvoerbereik omgeven door een dunne blauwe rand een overlooibereik genoemd.

    Hoe deze formule werkt:

    Eerst wordt een opgegeven reeks cellen omgezet in een tweedimensionale matrix. Let op de door komma's gescheiden kolommen en rijen met puntkomma:

    {"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}

    Vervolgens leest de TOROW-functie de matrix van links naar rechts en zet deze om in een eendimensionale horizontale matrix:

    {"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}

    Het resultaat gaat naar cel A10, vanwaar het overloopt naar de naburige cel rechts.

    Bereik omzetten naar rij, waarbij spaties en fouten worden genegeerd

    Standaard behoudt de TOROW-functie alle waarden van de bronmatrix, inclusief lege cellen en fouten. In de uitvoer verschijnen nulwaarden op de plaats van lege cellen, wat nogal verwarrend kan zijn.

    Naar blanco's uitsluiten stel de negeer argument op 1:

    =TOROW(A3:C5, 1)

    Naar fouten negeren stel de negeer argument naar 2:

    =TOROW(A3:C5, 2)

    Om beide over te slaan, blanco's en fouten gebruik 3 voor de negeer argument:

    =TOROW(A3:C5, 3)

    De onderstaande afbeelding toont alle drie de scenario's in actie:

    Matrix horizontaal of verticaal lezen

    Met het standaardgedrag verwerkt de TOROW-functie de array horizontaal van links naar rechts. Om de waarden per kolom van boven naar beneden te scannen, stelt u het 3e argument ( scan_by_column ) op TRUE of 1.

    Om bijvoorbeeld het bronbereik per rij te lezen, is de formule in E3:

    =TOROW(A3:C5)

    Om het bereik per kolom te scannen, is de formule in E8:

    =TOROW(A3:C5,,TRUE)

    In beide gevallen zijn de resulterende arrays even groot, maar zijn de waarden in een andere volgorde gerangschikt.

    Meerdere bereiken samenvoegen tot één rij

    Om verschillende niet-aangrenzende reeksen te combineren tot één rij, stapelt u ze eerst horizontaal of verticaal in één enkele matrix met behulp van respectievelijk HSTACK of VSTACK, en gebruikt u vervolgens de functie TOROW om de gecombineerde matrix om te zetten in een rij.

    Afhankelijk van uw bedrijfslogica zal een van de volgende formules de taak uitvoeren.

    Matrixen horizontaal stapelen en per rij omzetten

    Met het eerste bereik in A3:C4 en het tweede bereik in A8:C9, zal de onderstaande formule de twee bereiken horizontaal stapelen tot één matrix, en deze vervolgens transformeren tot een rij die de waarden van links naar rechts leest. Het resultaat staat in E3 in de afbeelding hieronder.

    =TOROW(HSTACK(A3:C4, A8:C9))

    Matrixen horizontaal stapelen en per kolom omzetten

    Om de gestapelde array verticaal van boven naar beneden te lezen, stelt u het 3e argument van TOROW in op TRUE, zoals weergegeven in E5 in onderstaande afbeelding:

    =TOROW(HSTACK(A3:C4, A8:C9),,TRUE)

    Arrays verticaal stapelen en per rij converteren

    Om elke volgende matrix aan de onderkant van de vorige matrix toe te voegen en de gecombineerde matrix horizontaal te lezen, is de formule in E12:

    =TOROW(VSTACK(A3:C4, A8:C9))

    Arrays verticaal stapelen en per kolom omzetten

    Om elke volgende matrix toe te voegen aan de onderkant van de vorige en de gecombineerde matrix verticaal te scannen, is de formule:

    =TOROW(VSTACK(A3:C4, A8:C9),,TRUE)

    Om de logica beter te begrijpen, let op de verschillende volgorde van de waarden in de resulterende arrays:

    Trek unieke waarden uit een bereik in een rij

    Vanaf Microsoft Excel 2016 hebben we een prachtige functie, genaamd UNIQUE, die gemakkelijk unieke waarden kan halen uit een enkele kolom of rij. De functie kan echter niet omgaan met arrays met meerdere kolommen. Om deze beperking te ondervangen, gebruikt u de functies UNIQUE en TOROW samen.

    Om bijvoorbeeld alle verschillende (afzonderlijke) waarden uit het bereik A2:C7 te halen en de resultaten in één rij te plaatsen, is de formule:

    =UNIQUE(TOROW(A2:C7), TRUE)

    Aangezien TOROW een eendimensionale horizontale matrix retourneert, stellen we de 2e ( by_col ) argument van UNIQUE op TRUE om de kolommen met elkaar te vergelijken.

    Indien u de resultaten in alfabetische volgorde gerangschikt wilt hebben, verpakt u de bovenstaande formule in de functie SORT:

    =SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )

    Net als bij UNIQUE is de by_col argument van SORT is ook ingesteld op TRUE.

    TOROW alternatief voor Excel 365 - 2010

    In Excel-versies waar de TOROW-functie niet beschikbaar is, kunt u een bereik omzetten in een enkele rij met behulp van een combinatie van een paar verschillende functies die werken in oudere versies. Deze oplossingen zijn complexer, maar werken wel.

    Om het bereik horizontaal te scannen, is de algemene formule:

    INDEX( reeks , QUOTIËNT(KOLOM (A1)-1, KOLOMMEN( reeks ))+1, MOD(KOLOM(A1)-1, KOLOMMEN( reeks ))+1)

    Om het bereik verticaal te scannen, is de algemene formule:

    INDEX( reeks , MOD(KOLOM(A1)-1, KOLOMMEN( reeks ))+1, QUOTIËNT(KOLOM (A1)-1, KOLOMMEN( reeks ))+1)

    Voor onze voorbeelddataset in A3:C5 zien de formules er als volgt uit:

    Om het bereik per rij te scannen:

    =INDEX($A$3:$C$5, QUOTIËNT(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1, MOD(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1)

    Deze formule is een alternatief voor de TOROW-functie met het derde argument op FALSE gezet of weggelaten:

    =TOROW(A3:C5)

    Om het bereik per kolom te scannen:

    =INDEX($A$3:$C$5, MOD(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1, QUOTIENT(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1)

    Deze formule komt overeen met de TOROW-functie met het derde argument ingesteld op TRUE:

    =TOROW(A3:C5,,TRUE)

    Merk op dat deze traditionele formules, in tegenstelling tot de dynamische array TOROW-functie, moeten worden ingevoerd in elke cel waar u wilt dat de resultaten verschijnen. In ons geval gaat de eerste formule (per rij) naar E3 en wordt gekopieerd door M3. De tweede formule (per kolom) komt terecht in E8 en wordt gesleept door M8.

    Om de formules correct te kopiëren, vergrendelen we het bereik met absolute verwijzingen ($A$3:$C$5). Een genoemd bereik is ook goed.

    Als je de formules naar meer cellen hebt gekopieerd dan nodig, verschijnt er een #REF! fout in "extra" cellen. Om dit op te lossen, wikkel je je formule in de IFERROR functie zoals dit:

    =IFERROR(INDEX($A$3:$C$5, QUOTIËNT(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1, MOD(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1), "")

    Hoe deze formules werken

    Hieronder volgt een gedetailleerde uitsplitsing van de eerste formule die de waarden per rij rangschikt:

    =INDEX($A$3:$C$5, QUOTIËNT(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1, MOD(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1)

    In het hart van de formule gebruiken we de INDEX-functie om de waarde van een cel te krijgen op basis van zijn relatieve positie in het bereik.

    De rijnummer wordt berekend met deze formule:

    QUOTIËNT(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1

    Het idee is om een repeterende getallenreeks te produceren zoals 1,1,1,2,2,3,3,3, ... waarbij elk getal even vaak wordt herhaald als er kolommen zijn in het bronbereik. En hier is hoe we dit doen:

    QUOTIENT geeft het gehele getal van een deling.

    Voor teller gebruiken we COLUMN(A1)-1, wat een volgnummer oplevert vanaf 0 in de eerste cel waar de formule is ingevoerd tot en met n (totaal aantal waarden in het bereik min 1) in de laatste cel waar de formule is ingevoerd. In dit voorbeeld hebben we 0 in E2 en 8 in M3.

    Voor noemer gebruiken we COLUMNS($A$3:$C$5)). Dit geeft een constant getal dat gelijk is aan het aantal kolommen in uw bereik (3 in ons geval).

    Het resultaat is dat de functie QUOTIENT 0 oplevert in de eerste 3 cellen (E3:G3), waaraan we 1 toevoegen, zodat het rijnummer 1 is.

    Voor de volgende 3 cellen (H3:J3) geeft QUOTIENT 1, en +1 het rijnummer 2. En zo verder.

    Om de kolomnummer bouw je een passende cijferreeks op met de MOD-functie:

    MOD(KOLOM(A1)-1, KOLOMMEN($A$3:$C$5))+1

    Aangezien er 3 kolommen in ons bereik zijn, moet de reeks er uitzien als: 1,2,3,1,2,3,...

    De MOD-functie geeft de rest na deling.

    In E3, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+

    wordt

    MOD(1-1, 3)+1)

    en geeft 1 terug.

    In F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+

    wordt

    MOD(2-1, 3)+1)

    en geeft 2 terug.

    Zodra de rij- en kolomnummers zijn vastgesteld, haalt INDEX gemakkelijk de waarde op het snijpunt van die rij en kolom op.

    In E3 levert INDEX($A$3:$C$5, 1, 1) een waarde op uit de eerste rij en de eerste kolom van het bereik waarnaar wordt verwezen, d.w.z. uit cel A3.

    In F3 levert INDEX($A$3:$C$5, 1, 2) een waarde op uit de eerste rij en de tweede kolom, dus uit cel B3.

    En zo verder.

    De tweede formule, die het bereik per kolom scant, werkt op dezelfde manier. Het verschil is dat we MOD gebruiken om het rijnummer te berekenen en QUOTIENT om het kolomnummer te achterhalen.

    TOROW functie werkt niet

    Als de TOROW-functie een fout oplevert, is een van deze redenen het meest waarschijnlijk:

    #NAME? fout

    Bij de meeste Excel-functies is een #NAME? foutmelding een duidelijke aanwijzing dat de naam van de functie verkeerd is gespeld. Bij TOROW kan het ook betekenen dat de functie niet beschikbaar is in uw Excel. Als uw Excel-versie anders is dan 365, probeer dan een TOROW-alternatief te gebruiken.

    #NUM fout

    Een #NUM-fout geeft aan dat de geretourneerde array niet in een rij past. Meestal gebeurt dat wanneer u naar hele kolommen en/of rijen verwijst in plaats van naar een kleiner bereik.

    #SPILL error

    In de meeste gevallen wijst een #SPILL-fout erop dat de rij waarin u de formule hebt ingevoerd niet genoeg lege cellen heeft om de resultaten in te morsen. Als de aangrenzende cellen visueel leeg zijn, controleer dan of er geen spaties of andere niet-afdrukbare tekens in staan. Zie voor meer informatie Wat #SPILL-fout betekent in Excel.

    Zo gebruikt u de TOROW-functie in Excel om een tweedimensionale matrix of bereik om te zetten in een enkele rij. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!

    Praktijk werkboek om te downloaden

    Excel TOROW functie - formulevoorbeelden (.xlsx bestand)

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.