Exceli TOCOL-funktsioon, et teisendada vahemik ühte veergu

  • Jaga Seda
Michael Brown

Lihtne viis massiivi või vahemiku muutmiseks veeruks funktsiooniga TOCOL.

Võimalus transponeerida andmeid veergudest ridadesse ja vastupidi on Excelis olnud juba mõnda aega. Kuid lahtrite vahemiku teisendamine ühte veergu oli keeruline ülesanne. Nüüd on see lõpuks muutumas. Microsoft on kasutusele võtnud uue funktsiooni nimega TOCOL, mis suudab teha massiivi ümberkujundamist veergudeks hetkega. Allpool on toodud loetelu ülesannetest, mida see uus funktsioon saab hõlpsasti lahendada.

    Exceli TOCOL funktsioon

    Exceli funktsioon TOCOL teisendab lahtrite massiivi või vahemiku üheks veeruks.

    Funktsioon võtab kolm argumenti, kuid ainult esimene neist on vajalik.

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

    Kus:

    Array (nõutav) - massiivi või vahemik, mis teisendatakse veeruks.

    Ignoreeri (valikuline) - määrab, kas ignoreeritakse tühikuid ja/või vigu. Võib olla üks neist väärtustest:

    • 0 või jäetakse välja (vaikimisi) - kõik väärtused jäävad alles.
    • 1 - ignoreeri tühikuid
    • 2 - ignoreeri vigu
    • 3 - ignoreeri tühikuid ja vigu

    Scan_by_column (valikuline) - määrab, kas massiiv skaneeritakse horisontaalselt või vertikaalselt:

    • FALSE või jäetakse välja (vaikimisi) - skaneerib massiivi rea kaupa vasakult paremale.
    • TRUE - skaneerib massiivi veergude kaupa ülevalt alla.

    Näpunäited:

    • Massiivi teisendamiseks üheks reaks kasutage funktsiooni TOROW.
    • Vastupidise veerust ridadeks muutmise tegemiseks kasutage kas funktsiooni WRAPCOLS, et kerida veeru kaupa, või funktsiooni WRAPROWS, et kerida rea kaupa.
    • Massiivi transponeerimiseks horisontaalselt vertikaalseks või vastupidi, st ridade muutmiseks veergudeks, kasutage funktsiooni TRANSPOSE.

    TOCOLi kättesaadavus

    TOCOL on uus funktsioon, mida toetavad Excel for Microsoft 365 (Windows ja Mac) ja Excel for the web.

    Põhiline TOCOL valem, et muuta vahemik veergudeks

    TOCOLi valem oma lihtsaimal kujul nõuab ainult ühte argumenti - massiivi Näiteks selleks, et paigutada kolmest veerust ja neljast reast koosnevat kahemõõtmelist massiivi ühte veergu, on valem järgmine:

    =TOCOL(A2:C5)

    Valem sisestatakse ainult ühte lahtrisse (antud näites E2) ja valgub automaatselt allolevatesse lahtritesse. Exceli mõistes nimetatakse tulemust valgusvööndiks.

    Kuidas see valem töötab:

    Tehniliselt konverteeritakse vahemik A2:C5 kõigepealt kahemõõtmeliseks massiivi. Pange tähele semikooloniga eraldatud ridu ja komadega eraldatud veerge:

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

    Funktsioon TOCOL skaneerib massiivi vasakult paremale ja muudab selle ühemõõtmeliseks vertikaalseks massiivi:

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

    Tulemus paigutatakse lahtrisse E2, kust see valgub allpool olevatesse lahtritesse.

    Kuidas kasutada TOCOL-funktsiooni Excelis - valemite näited

    Et paremini mõista TOCOL-funktsiooni võimalusi ja seda, milliseid ülesandeid see võib katta, vaatame mõned valemite näited.

    Muutke massiivi veergudeks, ignoreerides tühikuid ja vigu

    Nagu eelmises näites võisite märgata, säilitab vaikimisi TOCOL-vormel kõik väärtused lähtemassiivist, sealhulgas tühjad lahtrid ja vead.

    Saadud massiivis on tühjad lahtrid esindatud nullidega, mis võib olla üsna segadusttekitav, eriti kui algses massiivis on 0 väärtust. Lahendus on järgmine tühikute vahelejätmine Selleks määrate 2. argumendi väärtuseks 1:

    =TOCOL(A2:C5, 1)

    aadressile ignoreerida vigu , seadke 2. argumendiks 2:

    =TOCOL(A2:C5, 2)

    Mõlemaid välistada, tühikud ja vead , kasutage 3 jaoks ignoreeri argument:

    =TOCOL(A2:C5, 3)

    Skaneeri massiivi horisontaalselt või vertikaalselt

    Mis vaikimisi scan_by_column argument (FALSE või jäetud), skaneerib funktsioon TOCOL massiivi horisontaalselt ridade kaupa. Väärtuste töötlemiseks veergude kaupa, seadke see argument TRUE või 1. Näiteks:

    =TOCOL(A2:C5, ,TRUE)

    Pange tähele, et mõlemal juhul on tagastatud massiivid sama suured, kuid väärtused on paigutatud erinevas järjekorras.

    Mitme vahemiku ühendamine ühte veergu

    Kui teil on tegemist mitme mittekohalduva vahemikuga, siis saate kõigepealt ühendada vahemikud vertikaalselt üheks massiiviks funktsiooni VSTACK abil ja seejärel kasutada funktsiooni TOCOL, et muuta kombineeritud massiiv veeruks.

    Eeldades, et esimene vahemik on A2:C4 ja teine vahemik on A8:C9, on valem järgmine:

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

    See valem näitab vaikimisi käitumist - loeb kombineeritud massiive horisontaalselt vasakult paremale, nagu on näidatud alloleva pildi veerus E.

    Väärtuste lugemiseks vertikaalselt ülevalt alla seate TOCOLi 3. argumendi väärtuseks TRUE:

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

    Pöörake tähelepanu sellele, et antud juhul tagastab valem kõigepealt mõlema massiivi veeru A väärtused, seejärel veeru B jne. Põhjus on selles, et TOCOL skaneerib ühte virnastatud massiivi, mitte algseid üksikuid vahemikke.

    Kui teie äriloogika nõuab algsete vahemike virnastamist pigem horisontaalselt kui vertikaalselt, siis kasutage VSTACKi asemel funktsiooni HSTACK.

    Iga järgneva massiivi lisamiseks eelmisest massiivi paremale poole ja kombineeritud massiivi lugemiseks horisontaalselt on valem järgmine:

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

    Iga järgneva massiivi lisamiseks eelmisest massiivi paremale poole ja kombineeritud massiivi vertikaalseks skaneerimiseks on valem järgmine:

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

    Unikaalsete väärtuste väljavõtmine mitme veeru vahemikust

    Exceli funktsioon UNIQUE suudab hõlpsasti leida unikaalseid väärtusi ühes veerus või reas ning tagastada unikaalseid ridu, kuid see ei suuda ekstraheerida unikaalseid väärtusi mitme veeru massiivist. Lahendus on kasutada seda koos funktsiooniga TOCOL.

    Näiteks, et eraldada kõik erinevad (erinevad) väärtused vahemikust A2:C7, on valem järgmine:

    =UNIQUE(TOCOL(A2:C7))

    Lisaks saate ülaltoodud valemit ümbritseda funktsiooniga SORT, et järjestada tagastatud massiivi tähestikulises järjekorras:

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

    Kuidas konverteerida vahemik Exceli 365 - 2010 veergudeks

    Exceli versioonides, kus funktsiooni TOCOL ei toetata, on olemas paar alternatiivset võimalust, kuidas muuta lahtrite vahemik veeruks. Need lahendused on küllaltki keerulised, kuid igatahes töötavad.

    Vahemiku lugemine rea kaupa:

    INDEX( vahemik , QUOTIENT(RIDA(A1)-1, VEERUD( vahemik ))+1, MOD(RIDA(A1)-1, VEERUD( vahemik ))+1)

    Vahemiku lugemine veergude kaupa:

    INDEX( vahemik , MOD(RIDA(A1)-1, READ( vahemik ))+1, KVOOTI(RIDA(A1)-1, RIDA( vahemik ))+1)

    Meie näidisandmestiku puhul on valemid järgmised:

    Vahemiku skaneerimiseks horisontaalselt vasakult paremale :

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

    See valem on samaväärne funktsiooniga TOCOL, mille kolmas argument on FALSE või jäetakse välja:

    =TOCOL(A2:C5)

    Vahemiku skaneerimiseks vertikaalselt ülevalt alla :

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

    See valem on võrreldav funktsiooniga TOCOL, mille kolmandaks argumendiks on seatud TRUE:

    =TOCOL(A2:C5, ,TRUE)

    Erinevalt TOCOList tuleb alternatiivsed valemid sisestada igasse lahtrisse, kus soovite tulemusi näha. Meie puhul lähevad valemid lahtritesse E2 (rea kaupa) ja G2 (veeru kaupa) ning seejärel kopeeritakse need alla reale 13.

    Kui valemid kopeeritakse rohkematele ridadele kui vaja, ilmub "ekstra" lahtritesse #REF! viga. Selle vältimiseks saate valemid funktsiooni IFERROR sisse pesitseda järgmiselt:

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

    Pange tähele, et valemite korrektseks kopeerimiseks lukustame vahemiku, kasutades absoluutseid lahtriviiteid ($A$2:$C$5). Selle asemel võite kasutada nimelist vahemikku.

    Kuidas need valemid toimivad

    Allpool on üksikasjalikult lahti kirjutatud esimene valem, mis järjestab lahtrid ridade kaupa:

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

    Idee on kasutada funktsiooni INDEX, et tagastada teatud lahtri väärtus selle suhteliste rea ja veeru numbrite alusel vahemikus.

    The rea number arvutatakse selle kombinatsiooni abil:

    QUOTIENT(RIDA(A1)-1, VEERUD($A$2:$C$5))+1

    QUOTIENT tagastab jagamise täisarvulise osa.

    Sest lugeja , siis kasutate ROW(A1)-1, mis tagastab järjekorranumbri alates 0-st E2-s (esimene lahter, kuhu valem on sisestatud) kuni 11-ni E13-s (viimane lahter, kuhu valem on sisestatud).

    The nimetaja COLUMNS($A$2:$C$5)) on konstantne ja võrdub teie vahemiku veergude arvuga (meie puhul 3).

    Kui nüüd kontrollida QUOTIENT'i tulemust esimese 3 lahtri (E2:E4) puhul, siis näete, et see on võrdne 0 (sest jagamise täisarvuline osa on null). 1 lisamine annab rea numbri 1.

    Järgmise 3 lahtri (E5:E5) puhul annab QUOTIENT tagasi 1 ja +1 operatsioon annab rea numbri 2. Ja nii edasi.

    Teisisõnu, see osa valemist loob korduva numbrite jada, näiteks 1,1,1,1,2,2,2,2,3,3,3,4,4,4,... Iga number kordub nii mitu korda, kui palju on teie vahemikus veerge.

    Arvutada veeru number , koostate sobiva numbrite jada, kasutades MOD-funktsiooni:

    MOD(RIDA(A1)-1, VEERUD($A$2:$C$5))+1

    Kuna meie vahemikus (A2:C5) on 3 veergu, peab järjestus olema 1,2,3,1,2,3,...

    Funktsioon MOD tagastab pärast jagamist jäägi.

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

    muutub

    MOD(1-1, 3)+1)

    ja tagastab 1.

    E3, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)

    muutub

    MOD(2-1, 3)+1)

    ja tagastab 2.

    Kui rea ja veeru numbrid on kindlaks määratud, ei ole INDEXil probleeme vajaliku väärtuse hankimisega.

    E2-s INDEX($A$2:$C$5, 1, 1) tagastab väärtuse viidatud vahemiku esimesest reast ja esimesest veerust, st lahtrist A2.

    E3-s INDEX($A$2:$C$5, 1, 2) tagastab väärtuse 1. reast ja 2. veerust, st lahtrist B2.

    Ja nii edasi.

    Teine valem, mis skaneerib vahemikku veergude kaupa, töötab sarnaselt. Erinevus seisneb selles, et ta kasutab MODi rea numbri saamiseks ja QUOTIENTi veergude numbri saamiseks.

    TOCOL funktsioon ei tööta

    Kui funktsioon TOCOL viskab vea, on see tõenäoliselt üks neist põhjustest:

    TOCOL ei ole teie Excelis toetatud

    Kui saate vea #NAME?, tuleb kõigepealt kontrollida funktsiooni nime õiget kirjapärastust. Kui nimi on õige, kuid viga püsib, ei ole funktsioon teie Exceli versioonis saadaval. Sellisel juhul kaaluge alternatiivse TOCOLi kasutamist.

    Array on liiga suur

    Viga #NUM näitab, et massiiv ei mahu ühte veergu. Tüüpiline juhtum on, kui viitate tervetele veergudele või ridadele.

    Ei ole piisavalt tühje lahtreid

    Kui ilmneb #SPILL-viga, kontrollige, et veerus, kuhu valem on sisestatud, on piisavalt tühje lahtreid. Kui lahtrid on visuaalselt tühjad, veenduge, et neis ei ole tühikuid ega muid trükkimata märke. Lisateavet leiate jaotisest Kuidas parandada #SPILL-viga Excelis.

    Nii saate kasutada Excel 365 funktsiooni TOCOL ja varasemate versioonide alternatiivseid lahendusi, et muuta 2-mõõtmeline massiivi üheks veeruks. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

    Praktiline töövihik

    Excel TOCOL funktsioon - valemite näited (.xlsx fail)

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.