Excel TOCOL -toiminto alueen muuntamiseksi yhdeksi sarakkeeksi

  • Jaa Tämä
Michael Brown

Helppo tapa muuttaa joukko tai alue sarakkeeksi TOCOL-funktiolla.

Excelissä on jo pitkään ollut mahdollisuus siirtää tietoja sarakkeista riveille ja päinvastoin. Solualueen muuntaminen yhdeksi sarakkeeksi oli kuitenkin hankala tehtävä. Nyt tämä on vihdoin muuttumassa. Microsoft on ottanut käyttöön uuden TOCOL-nimisen funktion, joka voi muuttaa sarakkeita sarakkeiksi silmänräpäyksessä. Alla on luettelo tehtävistä, jotka tämä uusi funktio voi helposti ratkaista.

    Excel TOCOL-toiminto

    Excelin TOCOL-toiminto muuntaa solumassan tai solualueen yhdeksi sarakkeeksi.

    Funktio ottaa kolme argumenttia, mutta vain ensimmäistä tarvitaan.

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

    Missä:

    Array (pakollinen) - sarakkeeksi muutettava joukko tai alue.

    Älä välitä (valinnainen) - määrittelee, jätetäänkö tyhjät kohdat ja/tai virheet huomiotta. Voi olla jokin näistä arvoista:

    • 0 tai jätetään pois (oletus) - kaikki arvot säilytetään.
    • 1 - jätä tyhjät kohdat huomiotta
    • 2 - jätä virheet huomiotta
    • 3 - jätä tyhjät kohdat ja virheet huomiotta

    Scan_by_column (valinnainen) - määrittää, skannataanko joukko vaaka- vai pystysuunnassa:

    • FALSE tai jätetään pois (oletusarvo) - skannaa sarjan riveittäin vasemmalta oikealle.
    • TRUE - skannaa sarakekohtaisesti ylhäältä alaspäin.

    Vinkkejä:

    • Jos haluat muuntaa joukon yhdeksi riviksi, käytä TOROW-funktiota.
    • Jos haluat tehdä päinvastaisen sarakkeesta riviin -muunnoksen, käytä joko WRAPCOLS-funktiota sarakekohtaiseen käärimiseen tai WRAPROWS-funktiota rivikohtaiseen käärimiseen.
    • Jos haluat transponoida matriisin vaakasuorasta pystysuoraan tai päinvastoin, eli vaihtaa rivit sarakkeiksi, käytä TRANSPOSE-funktiota.

    TOCOLin saatavuus

    TOCOL on uusi toiminto, jota tuetaan Excel for Microsoft 365:ssä (Windows ja Mac) ja Excel for the webissä.

    Perus TOCOL-kaava alueen muuttamiseksi sarakkeeksi

    TOCOL-kaava vaatii yksinkertaisimmillaan vain yhden argumentin - array Jos esimerkiksi haluat sijoittaa kaksiulotteisen, 3 sarakkeesta ja 4 rivistä koostuvan sarakkeen yhteen sarakkeeseen, kaava on seuraava:

    =TOCOL(A2:C5)

    Kaava syötetään vain yhteen soluun (tässä esimerkissä E2), ja se valuu automaattisesti alla oleviin soluihin. Excelissä tulosta kutsutaan valuma-alueeksi.

    Miten tämä kaava toimii:

    Teknisesti ottaen alue A2:C5 muunnetaan ensin kaksiulotteiseksi matriisiksi. Huomaa, että rivit on erotettu puolipisteellä ja sarakkeet pilkulla:

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

    TOCOL-funktio skannaa joukon vasemmalta oikealle ja muuttaa sen yksiulotteiseksi pystysuoraksi joukoksi:

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

    Tulos sijoitetaan soluun E2, josta se valuu alla oleviin soluihin.

    TOCOL-funktion käyttö Excelissä - kaavaesimerkkejä

    Jotta ymmärtäisit paremmin TOCOL-toiminnon mahdollisuudet ja sen kattamat tehtävät, tarkastellaan joitakin kaavaesimerkkejä.

    Muunna array sarakkeeksi jättämällä tyhjät kohdat ja virheet huomiotta

    Kuten ehkä huomasit edellisessä esimerkissä, oletusarvoisen TOCOL-kaavan avulla säilytetään kaikki lähdemäärityksen arvot, myös tyhjät solut ja virheet.

    Tuloksena syntyvässä matriisissa tyhjät solut esitetään nollina, mikä voi olla melko hämmentävää, varsinkin jos alkuperäisessä matriisissa on 0-arvoja. Ratkaisu on seuraava ohita aihiot Tätä varten asetetaan 2. argumentin arvoksi 1:

    =TOCOL(A2:C5, 1)

    Osoitteeseen jättää virheet huomiotta , aseta toisen argumentin arvoksi 2:

    =TOCOL(A2:C5, 2)

    Kummankin poissulkemiseksi, aihiot ja virheet , käytetään 3:aa jätä huomiotta argumentti:

    =TOCOL(A2:C5, 3)

    Skannaa joukko vaaka- tai pystysuunnassa

    Oletusarvoisen scan_by_column argumentti (FALSE tai jätetty pois), TOCOL-funktio skannaa matriisin vaakasuunnassa riveittäin. Jos haluat käsitellä arvoja sarakkeittain, aseta tämän argumentin arvoksi TRUE tai 1. Esimerkiksi:

    =TOCOL(A2:C5, ,TRUE)

    Huomaa, että molemmissa tapauksissa palautetut taulukot ovat samankokoisia, mutta arvot on järjestetty eri järjestykseen.

    Yhdistä useita alueita yhdeksi sarakkeeksi

    Jos kyseessä on useampi kuin yksi vierekkäinen alue, voit ensin yhdistää alueet pystysuunnassa yhdeksi sarakkeeksi VSTACK-funktion avulla ja muuttaa yhdistetyn sarakkeen sarakkeeksi TOCOL-funktiolla.

    Jos oletetaan, että ensimmäinen alue on A2:C4 ja toinen alue on A8:C9, kaava on seuraavanlainen:

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

    Tämä kaava osoittaa oletuskäyttäytymisen - se lukee yhdistetyt taulukot vaakasuoraan vasemmalta oikealle, kuten alla olevan kuvan sarakkeessa E näkyy.

    Jos haluat lukea arvot pystysuoraan ylhäältä alaspäin, aseta TOCOL-kohdan kolmanneksi argumentiksi TRUE:

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

    Huomaa, että tässä tapauksessa kaava palauttaa ensin arvot molempien sarakkeiden sarakkeesta A, sitten sarakkeesta B ja niin edelleen. Syy tähän on se, että TOCOL skannaa yhden päällekkäisen sarakkeen, ei alkuperäisiä yksittäisiä sarakkeita.

    Jos liiketoimintalogiikkasi edellyttää alkuperäisten alueiden pinoamista vaakasuoraan eikä pystysuoraan, käytä HSTACK-funktiota VSTACK-funktion sijasta.

    Jos haluat liittää jokaisen seuraavan matriisin edellisen matriisin oikealle puolelle ja lukea yhdistettyjä matriiseja vaakasuunnassa, kaava on seuraava:

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

    Jos haluat lisätä jokaisen seuraavan matriisin edellisen matriisin oikealle puolelle ja skannata yhdistetyt matriisit pystysuoraan, kaava on seuraava:

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

    Yksilöllisten arvojen poimiminen usean sarakkeen alueesta

    Excelin UNIQUE-funktio voi helposti etsiä uniikkeja yksittäisen sarakkeen tai rivin uniikkeja arvoja ja palauttaa uniikkeja rivejä, mutta se ei pysty poimimaan uniikkeja arvoja usean sarakkeen joukosta. Ratkaisu on käyttää sitä yhdessä TOCOL-funktion kanssa.

    Jos esimerkiksi haluat poimia kaikki eri (erilliset) arvot alueelta A2:C7, kaava on seuraava:

    =UNIQUE(TOCOL(A2:C7))

    Lisäksi voit kietoa yllä olevan kaavan SORT-funktioon järjestelläksesi palautetun matriisin aakkosjärjestykseen:

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

    Miten muunnetaan alue sarakkeeksi Excel 365 - 2010:ssä?

    Excel-versioissa, joissa TOCOL-toimintoa ei tueta, on olemassa pari vaihtoehtoista tapaa muuttaa solualue sarakkeeksi. Nämä ratkaisut ovat melko hankalia, mutta toimivat kuitenkin.

    Alueen lukeminen riveittäin:

    INDEX( alue , QUOTIENTTI(RIVI(A1)-1, SARAKKEET( alue ))+1, MOD(RIVI(A1)-1, SARAKKEET( alue ))+1)

    Alueen lukeminen sarakkeittain:

    INDEX( alue , MOD(RIVI(A1)-1, RIVIT( alue ))+1, QUOTIENTTI(RIVI(A1)-1, RIVIT( alue ))+1)

    Esimerkkiaineistomme osalta kaavat ovat seuraavat:

    Alueen skannaaminen vaakasuunnassa vasemmalta oikealle :

    =INDEX($A$2:$C$5, QUOTIENTTI(RIVI(A1)-1, SARAKKEET($A$2:$C$5))+1, MOD(RIVI(A1)-1, SARAKKEET($A$2:$C$5))+1)

    Tämä kaava vastaa TOCOL-funktiota, kun kolmas argumentti on FALSE tai jätetään pois:

    =TOCOL(A2:C5)

    Alueen skannaaminen pystysuoraan ylhäältä alas :

    =INDEX($A$2:$C$5, MOD(RIVI(A1)-1, RIVIT($A$2:$C$5))+1, QUOTIENTTI(RIVI(A1)-1, RIVIT($A$2:$C$5))+1)

    Tämä kaava on verrattavissa TOCOL-funktioon, kun 3. argumentin arvoksi on asetettu TRUE:

    =TOCOL(A2:C5, ,TRUE)

    Toisin kuin TOCOL, vaihtoehtoiset kaavat on syötettävä jokaiseen soluun, jossa haluat tulosten näkyvän. Meidän tapauksessamme kaavat menevät soluihin E2 (riveittäin) ja G2 (sarakkeittain), ja ne kopioidaan sitten alas riville 13.

    Jos kaavat kopioidaan useammalle riville kuin on tarpeen, "ylimääräisiin" soluihin ilmestyy #REF! -virhe. Tämän estämiseksi voit sijoittaa kaavat IFERROR-funktioon seuraavasti:

    =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), "")

    Huomaa, että jotta kaavat kopioituvat oikein, lukitsemme alueen käyttämällä absoluuttisia soluviittauksia ($A$2:$C$5). Sen sijaan voit käyttää nimettyä aluetta.

    Miten nämä kaavat toimivat

    Alla on yksityiskohtainen erittely ensimmäisestä kaavasta, joka järjestää solut riveittäin:

    =INDEX($A$2:$C$5, QUOTIENTTI(RIVI(A1)-1, SARAKKEET($A$2:$C$5))+1, MOD(RIVI(A1)-1, SARAKKEET($A$2:$C$5))+1)

    Ideana on käyttää INDEX-funktiota palauttamaan tietyn solun arvo sen suhteellisten rivi- ja sarakenumeroiden perusteella.

    The rivin numero lasketaan tällä yhdistelmällä:

    QUOTIENTTI(RIVI(A1)-1, SARAKKEET($A$2:$C$5))+1

    QUOTIENT palauttaa jaon kokonaislukuosan.

    Osoitteessa osoittaja , käytät ROW(A1)-1, joka palauttaa sarjanumeron 0:sta E2:ssa (ensimmäinen solu, johon kaava on syötetty) 11:een E13:ssa (viimeinen solu, johon kaava on syötetty).

    The nimittäjä brough by COLUMNS($A$2:$C$5))) on vakio ja vastaa sarakkeiden lukumäärää alueellasi (tässä tapauksessa 3).

    Jos nyt tarkistat QUOTIENTin tuloksen kolmesta ensimmäisestä solusta (E2:E4), huomaat, että se on 0 (koska jaon kokonaislukuosa on nolla). 1:n lisääminen antaa rivinumeron 1.

    Seuraavien kolmen solun (E5:E5) kohdalla QUOTIENT palauttaa arvon 1, ja +1-operaatio tuottaa rivinumeron 2. Ja niin edelleen.

    Toisin sanoen kaavan tämä osa luo toistuvan numerosarjan, kuten 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,... Jokainen numero toistuu niin monta kertaa kuin sarakkeita alueellasi on.

    Laskettaessa sarakkeen numero , muodostat sopivan numerosarjan MOD-toiminnon avulla:

    MOD(RIVI(A1)-1, SARAKKEET($A$2:$C$5))+1

    Koska alueessamme (A2:C5) on kolme saraketta, järjestyksen on oltava 1,2,3,1,2,3,....

    MOD-funktio palauttaa jäännösosan jakamisen jälkeen.

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

    tulee

    MOD(1-1, 3)+1)

    ja palauttaa arvon 1.

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

    tulee

    MOD(2-1, 3)+1)

    ja palauttaa 2.

    Kun rivin ja sarakkeen numerot on määritetty, INDEX voi hakea halutun arvon ongelmitta.

    E2:ssa INDEX($A$2:$C$5, 1, 1) palauttaa arvon viitattavan alueen ensimmäiseltä riviltä ja ensimmäiseltä sarakkeelta, eli solusta A2.

    Kohdassa E3 INDEX($A$2:$C$5, 1, 2) palauttaa arvon ensimmäiseltä riviltä ja toisesta sarakkeesta eli solusta B2.

    Ja niin edelleen.

    Toinen kaava, joka skannaa alueen sarakkeittain, toimii samalla tavalla. Erona on se, että se käyttää MOD:ia rivinumeron saamiseksi ja QUOTIENT:ia sarakkeen numeron saamiseksi.

    TOCOL-toiminto ei toimi

    Jos TOCOL-funktio heittää virheen, se johtuu todennäköisesti jostain näistä syistä:

    TOCOL ei ole tuettu Excelissäsi

    Kun saat #NAME? -virheen, tarkista ensimmäiseksi funktion nimen oikea kirjoitusasu. Jos nimi on oikea, mutta virhe jatkuu, funktio ei ole käytettävissä Excel-versiossasi. Tässä tapauksessa harkitse TOCOL-vaihtoehdon käyttöä.

    Array on liian suuri

    #NUM-virhe osoittaa, että joukko ei mahdu sarakkeeseen. Tyypillinen tapaus on, kun viitataan kokonaisiin sarakkeisiin tai riveihin.

    Tyhjiä soluja ei ole tarpeeksi

    Kun #SPILL-virhe ilmenee, tarkista, että sarakkeessa, johon kaava on syötetty, on riittävästi tyhjiä soluja. Jos solut ovat silmämääräisesti tyhjiä, varmista, ettei niissä ole välilyöntejä tai muita ei-tulostettavia merkkejä. Lisätietoja on kohdassa #SPILL-virheen korjaaminen Excelissä.

    Näin voit käyttää Excel 365:n TOCOL-funktiota ja aiempien versioiden vaihtoehtoisia ratkaisuja 2-ulotteisen matriisin muuttamiseksi yhdeksi sarakkeeksi. Kiitos lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Harjoitustyökirja

    Excel TOCOL-toiminto - kaavaesimerkkejä (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.