Muunna sarake / rivi Excel-massaksi: WRAPCOLS & WRAPROWS-funktiot

  • Jaa Tämä
Michael Brown

Nopein tapa muuttaa arvosarake tai -rivi kaksiulotteiseksi matriisiksi on käyttää WRAPCOLS- tai WRAPROWS-funktiota.

Excel on ollut erittäin hyvä numeroiden laskemisessa ja analysoinnissa jo alusta lähtien. Mutta matriisien käsittely on perinteisesti ollut haastavaa. Dynaamisten matriisien käyttöönotto teki matriisikaavojen käytöstä paljon helpompaa. Ja nyt Microsoft julkaisee joukon uusia dynaamisia matriisifunktioita, joiden avulla voit käsitellä ja muokata matriiseja. Tämä opetusohjelma opettaa sinulle, miten voit käyttää kahta tällaista funktiota,WRAPCOLS ja WRAPROWS, joilla voit muuttaa sarakkeen tai rivin 2D-massaksi hetkessä.

    Excel WRAPCOLS-toiminto

    Excelin WRAPCOLS-funktio muuttaa rivin tai sarakkeen arvot kaksiulotteiseksi matriisiksi, joka perustuu rivin arvojen määrään.

    Syntaksilla on seuraavat argumentit:

    WRAPCOLS(vektori, wrap_count, [pad_with])

    Missä:

    • vektori (pakollinen) - lähteen yksiulotteinen joukko tai alue.
    • wrap_count (pakollinen) - arvojen enimmäismäärä saraketta kohti.
    • pad_with (valinnainen) - arvo, joka täytetään viimeiseen sarakkeeseen, jos sarakkeen täyttämiseen ei ole riittävästi kohteita. Jos se jätetään pois, puuttuvat arvot täytetään arvolla #N/A (oletusarvo).

    Jos esimerkiksi haluat muuttaa alueen B5:B24 2-ulotteiseksi matriisiksi, jossa on 5 arvoa sarakkeessa, kaava on seuraava:

    =WRAPROWS(B5:B24, 5)

    Syötät kaavan mihin tahansa yksittäiseen soluun, ja se leviää automaattisesti niin moneen soluun kuin on tarpeen. WRAPCOLS-tulosteessa arvot järjestetään pystysuoraan ylhäältä alaspäin, perustuen wrap_count Kun luku on saavutettu, uusi sarake aloitetaan.

    Excelin WRAPROWS-toiminto

    Excelin WRAPROWS-toiminto muuntaa rivin tai sarakkeen arvot kaksiulotteiseksi matriisiksi määrittämiesi rivikohtaisten arvojen määrän perusteella.

    Syntaksi on seuraava:

    WRAPROWS(vector, wrap_count, [pad_with])

    Missä:

    • vektori (pakollinen) - lähteen yksiulotteinen joukko tai alue.
    • wrap_count (pakollinen) - arvojen enimmäismäärä riviä kohti.
    • pad_with (valinnainen) - arvo, joka täytetään viimeisellä rivillä, jos rivin täyttämiseen ei ole riittävästi kohteita. Oletusarvo on #N/A.

    Jos esimerkiksi haluat muuttaa alueen B5:B24 2D-massaksi, jossa kullakin rivillä on 5 arvoa, kaava on seuraava:

    =WRAPROWS(B5:B24, 5)

    Syötät kaavan vuotoalueen vasemmanpuoleiseen yläsoluun, ja se täyttää kaikki muut solut automaattisesti. WRAPROWS-toiminto järjestää arvot vaakasuoraan vasemmalta oikealle, perustuen wrap_count Kun luku on saavutettu, se aloittaa uuden rivin.

    WRAPCOLS ja WRAPROWS saatavuus

    Molemmat toiminnot ovat käytettävissä vain Excel for Microsoft 365:ssä (Windows ja Mac) ja Excel for the webissä.

    Aikaisemmissa versioissa voit käyttää perinteisiä monimutkaisempia kaavoja sarakkeesta ruuduksi ja rivistä ruuduksi -muunnosten tekemiseen. Jatkossa tässä oppaassa käsittelemme vaihtoehtoisia ratkaisuja yksityiskohtaisesti.

    Vihje. Jos haluat tehdä käänteisen operaation, eli muuttaa 2D-massan yhdeksi sarakkeeksi tai riviksi, käytä TOCOL- tai TOROW-funktiota.

    Miten sarake / rivi muunnetaan Excelissä alueeksi - esimerkkejä

    Nyt kun olet ymmärtänyt peruskäytön, tarkastellaan tarkemmin muutamia erityistapauksia.

    Aseta arvojen enimmäismäärä saraketta tai riviä kohti.

    Alkuperäisen datan rakenteesta riippuen se voidaan järjestää uudelleen sarakkeisiin (WRAPCOLS) tai riveihin (WRAPROWS). Kumpaa funktiota käytätkin, se on wrap_count argumentti, joka määrittää arvojen enimmäismäärän kussakin sarakkeessa/rivissä.

    Voit esimerkiksi muuntaa alueen B4:B23 2D-massaksi siten, että jokaisessa sarakkeessa on enintään 10 arvoa, käyttämällä tätä kaavaa:

    =WRAPCOLS(B4:B23, 10)

    Jos haluat järjestää saman alueen uudelleen riveittäin siten, että jokaisella rivillä on enintään 4 arvoa, kaava on seuraava:

    =WRAPROWS(B4:B23, 4)

    Alla olevassa kuvassa näkyy, miltä tämä näyttää:

    Täytä puuttuvat arvot tuloksena syntyvässä joukossa

    Jos arvot eivät riitä täyttämään tuloksena olevan alueen kaikkia sarakkeita/rivejä, WRAPROWS ja WRAPCOLS palauttavat #N/A-virheitä, jotta 2D-massan rakenne säilyy.

    Jos haluat muuttaa oletuskäyttäytymistä, voit antaa mukautetun arvon valinnaiselle parametrille pad_with argumentti.

    Voit esimerkiksi muuttaa alueen B4:B21 2D-massaksi, jonka leveys on enintään 5 arvoa, ja täyttää viimeisen rivin katkoviivoilla, jos tietoja ei ole tarpeeksi, käyttämällä tätä kaavaa:

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

    Kun puuttuvat arvot korvataan nollapituisilla merkkijonoilla (tyhjillä), kaava on seuraava:

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

    Vertaa tuloksia oletuskäyttäytymiseen (kaava D5:ssä), jossa pad_with jätetään pois:

    Yhdistä useita rivejä 2D-alueeksi

    Jos haluat yhdistää muutaman erillisen rivin yhdeksi 2D-massaksi, pinoat ensin rivit vaakasuoraan HSTACK-funktiolla ja käärit sitten arvot WRAPROWS- tai WRAPCOLS-funktiolla.

    Jos esimerkiksi haluat yhdistää kolmen rivin (B5:J5, B7:G7 ja B9:F9) arvot ja kääriä ne sarakkeisiin, joista kukin sisältää 10 arvoa, kaava on seuraava:

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

    Jos haluat yhdistää useiden rivien arvot 2D-alueeksi, jossa kullakin rivillä on 5 arvoa, kaava on seuraavanlainen:

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

    Yhdistä useita sarakkeita 2D-massaksi

    Jos haluat yhdistää useita sarakkeita 2D-alueeksi, pinoat ne ensin pystysuoraan VSTACK-funktiolla ja käärit sitten arvot riveiksi (WRAPROWS) tai sarakkeiksi (WRAPCOLS).

    Jos esimerkiksi haluat yhdistää kolmen sarakkeen (B5:J5, B7:G7 ja B9:F9) arvot 2D-alueeksi, jossa kussakin sarakkeessa on 10 arvoa, kaava on seuraava:

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

    Jos haluat yhdistää samat sarakkeet 2D-alueeksi, jossa kullakin rivillä on 5 arvoa, käytä tätä kaavaa:

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

    Kääri ja lajittele joukko

    Jos lähdealueella on arvoja satunnaisessa järjestyksessä, mutta haluat tulosteen olevan lajiteltu, toimi näin:

    1. Lajittele alkuperäinen joukko haluamallasi tavalla käyttämällä SORT-funktiota.
    2. Toimita lajiteltu joukko WRAPCOLSille tai WRAPROWSille.

    Jos haluat esimerkiksi kääriä alueen B4:B23 riveiksi, joilla kullakin on 4 arvoa, ja lajitella tuloksena olevan alueen A:sta Z:hen, rakenna seuraava kaava:

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

    Jos sama alue halutaan paketoida sarakkeisiin, joissa kussakin on 10 arvoa, ja lajitella tuloste aakkosjärjestyksessä, kaava on seuraava:

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

    Tulokset näyttävät seuraavilta:

    Vinkki. Järjestääksesi tuloksena syntyvän matriisin arvot muotoon laskeva järjestys , asettaa kolmannen argumentin ( sort_order ) SORT-funktion arvoksi -1.

    WRAPCOLS-vaihtoehto Excel 365:lle - 2010

    Vanhemmissa Excel-versioissa, joissa WRAPCOLS-funktiota ei tueta, voit rakentaa oman kaavan, jolla voit paketoida yksiulotteisen matriisin arvot sarakkeisiin. Tämä voidaan tehdä käyttämällä 5 eri funktiota yhdessä.

    WRAPCOLS-vaihtoehto rivin muuntamiseksi 2D-alueeksi:

    IFERROR(IF(ROW(A1)> n , "", INDEX( row_range , , , RIVI(A1) + (SARAKE(A1)-1)*) n )), "")

    WRAPCOLS-vaihtoehto sarakkeen muuntamiseksi 2D-alueeksi:

    IFERROR(IF(ROW(A1)> n , "", INDEX( column_range , RIVI(A1) + (SARAKE(A1)-1)*) n )), "")

    Missä n on arvojen enimmäismäärä saraketta kohti.

    Alla olevassa kuvassa käytämme seuraavaa kaavaa muuttaaksemme yhden rivin alueen (D4:J4) kolmen rivin alueeksi.

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

    Tämä kaava muuttaa yhden sarakkeen alueen (B4:B20) viiden rivin alueeksi:

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

    Edellä esitetyt ratkaisut jäljittelevät analogisia WRAPCOLS-kaavoja ja tuottavat samat tulokset:

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

    ja

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

    Muista, että toisin kuin dynaaminen WRAPCOLS-toiminto, perinteiset kaavat noudattavat yhden kaavan ja yhden solun lähestymistapaa. Ensimmäinen kaava syötetään D8:aan ja kopioidaan 3 riviä alaspäin ja 3 saraketta oikealle. Toinen kaava syötetään D14:ään ja kopioidaan 5 riviä alaspäin ja 4 saraketta oikealle.

    Miten nämä kaavat toimivat

    Molempien kaavojen ytimessä käytetään INDEX-funktiota, joka palauttaa arvon syötetystä matriisista rivin ja sarakkeen numeron perusteella:

    INDEX(array, row_num, [column_num])

    Koska kyseessä on yksirivinen joukko, voimme jättää pois merkinnän row_num argumentti, joten sen oletusarvo on 1. Temppuna on, että col_num lasketaan automaattisesti jokaiselle solulle, johon kaava on kopioitu. Ja näin teemme tämän:

    RIVI(A1)+(SARAKE(A1)-1)*3))

    ROW-funktio palauttaa A1-viitteen rivinumeron, joka on 1.

    COLUMN-funktio palauttaa A1-viittauksen sarakkeen numeron, joka on myös 1. Kun siitä vähennetään 1, se muuttuu nollaksi. Ja kun 0 kerrotaan 3:lla, saadaan 0.

    Sitten lasket yhteen ROW:n palauttaman 1:n ja COLUMN:n palauttaman 0:n ja saat tulokseksi 1.

    Näin kohdealueen (D8) vasemmassa yläsolussa oleva INDEX-kaava käy läpi tämän muutoksen:

    INDEX($D$4:$J$4, ,RIVI(A1) + (SARAKE(A1)-1)*3)))

    muutokset

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

    ja palauttaa arvon määritetyn sarakkeen ensimmäisestä sarakkeesta, joka on "Apples" D4:ssä.

    Kun kaava kopioidaan soluun D9, suhteelliset soluviittaukset muuttuvat rivien ja sarakkeiden suhteellisen sijainnin perusteella, kun taas absoluuttinen alueviittaus pysyy muuttumattomana:

    INDEX($D$4:$J$4,, RIVI(A2)+(SARAKE(A2)-1)*3)))

    muuttuu:

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

    tulee:

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

    ja palauttaa arvon määritetyn sarakkeen toisesta sarakkeesta, joka on "Aprikoosit" sarakkeessa E4.

    IF-funktio tarkistaa rivin numeron, ja jos se on suurempi kuin määrittämäsi rivien määrä (3 tässä tapauksessa), se palauttaa tyhjän merkkijonon (""), muuten INDEX-funktion tuloksen:

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

    Lopuksi IFERROR-funktio korjaa #REF! -virheen, joka ilmenee, kun kaava kopioidaan useampaan soluun kuin oikeasti tarvitaan.

    Toinen kaava, joka muuntaa sarakkeen 2D-alueeksi, toimii samalla logiikalla. Erona on se, että käytät ROW + COLUMN -yhdistelmää laskemaan row_num INDEX-argumentti. col_num parametria ei tässä tapauksessa tarvita, koska lähdemäärityksessä on vain yksi sarake.

    WRAPROWS-vaihtoehto Excel 365:lle - 2010

    Voit paketoida yksiulotteisen matriisin arvot riveiksi Excel 2019:ssä ja sitä aikaisemmissa versioissa käyttämällä seuraavia vaihtoehtoja WRAPROWS-funktiolle.

    Muunna rivi 2D-alueeksi:

    IFERROR(IF(COLUMN(A1)> n , "", INDEX( row_range , , , SARAKE(A1)+(RIVI(A1)-1)* n )), "")

    Vaihda sarake 2D-alueeksi:

    IFERROR(IF(COLUMN(A1)> n , "", INDEX( column_range , SARAKE(A1)+(RIVI(A1)-1)* . n )), "")

    Missä n on arvojen enimmäismäärä riviä kohti.

    Esimerkkitiedostossamme käytämme seuraavaa kaavaa yhden rivin alueen (D4:J4) muuntamiseksi kolmen sarakkeen alueeksi. Kaava laskeutuu soluun D8 ja kopioidaan sitten kolmen sarakkeen ja kolmen rivin yli.

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

    Jos haluat muuttaa yhden sarakkeen alueen (B4:B20) viiden sarakkeen alueeksi, kirjoita alla oleva kaava D14:ään ja vedä se viiden sarakkeen ja neljän rivin yli.

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

    Excel 365:ssä samat tulokset voidaan saavuttaa vastaavilla WRAPCOLS-kaavoilla:

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

    ja

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

    Miten nämä kaavat toimivat

    Pohjimmiltaan nämä kaavat toimivat kuten edellisessä esimerkissä. Erona on se, miten määritätte arvon row_num ja col_num INDEX-funktion koordinaatit:

    INDEX($D$4:$J$4,, SARAKE(A1)+(RIVI(A1)-1)*3)))

    Jos haluat saada kohdealueen (D8) vasemmanpuoleisen ylemmän solun sarakenumeron, käytä tätä lauseketta:

    SARAKE(A1)+(RIVI(A1)-1)*3))

    joka muuttuu seuraavasti:

    1+(1-1)*3

    ja antaa 1.

    Tämän seurauksena alla oleva kaava palauttaa arvon määritetyn sarakkeen ensimmäisestä sarakkeesta, joka on "Apples":

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

    Toistaiseksi tulos on sama kuin edellisessä esimerkissä. Mutta katsotaanpa, mitä tapahtuu muissa soluissa...

    Solussa D9 suhteelliset soluviittaukset muuttuvat seuraavasti:

    INDEX($D$4:$J$4,, SARAKE(A2)+(RIVI(A2)-1)*3)))

    Kaava muuttuu siis muotoon:

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

    tulee:

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

    ja palauttaa arvon määritetyn sarakkeen neljännestä sarakkeesta, joka on "Cherries" sarakkeessa G4.

    IF-funktio tarkistaa sarakkeiden lukumäärän, ja jos se on suurempi kuin määrittämäsi sarakkeiden lukumäärä, se palauttaa tyhjän merkkijonon (""), muuten INDEX-funktion tuloksen:

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

    Viimeistelynä IFERROR estää #REF! -virheitä ilmestymästä "ylimääräisiin" soluihin, jos kopioit kaavan useampaan soluun kuin todellisuudessa tarvitaan.

    WRAPCOLS- tai WRAPROWS-toiminto ei toimi

    Jos "wrap"-toiminnot eivät ole käytettävissä Excelissäsi tai ne johtavat virheeseen, se johtuu todennäköisesti jostain seuraavista syistä.

    #NAME? virhe

    Excel 365 -versiossa #NAME? -virhe saattaa ilmetä, koska kirjoitit funktion nimen väärin. Muissa versioissa se osoittaa, että funktioita ei tueta. Voit käyttää kiertotapana vaihtoehtoa WRAPCOLS tai WRAPROWS.

    #VALUE! virhe

    #VALUE-virhe tapahtuu, jos vektori argumentti ei ole yksiulotteinen joukko.

    #NUM! virhe

    #NUM-virhe tapahtuu, jos wrap_count arvo on 0 tai negatiivinen luku.

    #SPILL! virhe

    Useimmiten #SPILL-virhe tarkoittaa, että tyhjiä soluja ei ole tarpeeksi tulosten valuttamiseen. Tyhjennä viereiset solut, niin virhe poistuu. Jos virhe jatkuu, katso, mitä #SPILL tarkoittaa Excelissä ja miten se korjataan.

    Näin voit käyttää WRAPCOLS- ja WRAPROWS-funktioita yksiulotteisen alueen muuntamiseen kaksiulotteiseksi matriisiksi Excelissä. Kiitos lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    WRAPCOLS- ja WRAPROWS-funktiot - esimerkkejä (.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.