Exceli veeru / rea konverteerimine massiivi: WRAPCOLS & WRAPROWS funktsioonid

  • Jaga Seda
Michael Brown

Kiireim viis väärtuste veeru või rea muutmiseks kahemõõtmeliseks massiivi on kasutada funktsiooni WRAPCOLS või WRAPROWS.

Alates Exceli algusaegadest on see olnud väga hea arvude arvutamisel ja analüüsimisel. Kuid massiividega manipuleerimine on traditsiooniliselt olnud väljakutse. Dünaamiliste massiividega tutvumine muutis massiivi valemite kasutamise palju lihtsamaks. Ja nüüd annab Microsoft välja hulga uusi dünaamilisi massiivi funktsioone, millega saab massiive manipuleerida ja ümber kujundada. See õpetus õpetab teile, kuidas kasutada kahte sellist funktsiooni,WRAPCOLS ja WRAPROWS, et muuta veerg või rida hetkega 2D-massiiviks.

    Exceli WRAPCOLS funktsioon

    Exceli funktsioon WRAPCOLS muudab väärtuste rea või veeru kahemõõtmeliseks massiivi, mis põhineb määratud väärtuste arvul rea kohta.

    Süntaksil on järgmised argumendid:

    WRAPCOLS(vektor, wrap_count, [pad_with])

    Kus:

    • vektor (nõutav) - algne ühemõõtmeline massiiv või vahemik.
    • wrap_count (nõutav) - maksimaalne väärtuste arv veeru kohta.
    • pad_with (valikuline) - väärtus, mis täidetakse viimases veerus, kui selle täitmiseks ei ole piisavalt elemente. Kui see jäetakse välja, täidetakse puuduvad väärtused #N/A-ga (vaikimisi).

    Näiteks, et muuta vahemik B5:B24 2-mõõtmeliseks massiiviks 5 väärtusega iga veeru kohta, on valem järgmine:

    =WRAPROWS(B5:B24, 5)

    Sa sisestad valemi ükskõik millisesse lahtrisse ja see valgub automaatselt nii paljudesse lahtritesse kui vaja. WRAPCOLS väljundis on väärtused paigutatud vertikaalselt, ülalt alla, lähtudes wrap_count väärtus. Pärast loendisse jõudmist alustatakse uut veergu.

    Exceli WRAPROWS funktsioon

    Exceli funktsioon WRAPROWS teisendab väärtuste rea või veeru kahemõõtmeliseks massiivi, mis põhineb määratud väärtuste arvul rea kohta.

    Süntaks on järgmine:

    WRAPROWS(vektor, wrap_count, [pad_with])

    Kus:

    • vektor (nõutav) - algne ühemõõtmeline massiiv või vahemik.
    • wrap_count (nõutav) - maksimaalne väärtuste arv rea kohta.
    • pad_with (valikuline) - väärtus, millega täidetakse viimane rida, kui selle täitmiseks ei ole piisavalt elemente. Vaikimisi on #N/A.

    Näiteks, et muuta vahemik B5:B24 2D-massiiviks, millel on igas reas 5 väärtust, on valem järgmine:

    =WRAPROWS(B5:B24, 5)

    Sa sisestad valemi väljavooluala vasakpoolsesse ülemisse lahtrisse ja see täidab kõik ülejäänud lahtrid automaatselt. Funktsioon WRAPROWS paigutab väärtused horisontaalselt, vasakult paremale, lähtudes järgmisest wrap_count väärtus. Pärast loendisse jõudmist alustab ta uut rida.

    WRAPCOLS ja WRAPROWS kättesaadavus

    Mõlemad funktsioonid on saadaval ainult Excel for Microsoft 365 (Windows ja Mac) ja Excel for the web.

    Varasemates versioonides saate kasutada traditsioonilisi keerulisemaid valemeid, et teha veergude ja ridade ümberkujundusi. Edaspidi selles õpetuses arutame üksikasjalikult alternatiivseid lahendusi.

    Näpunäide. Pöördoperatsiooni tegemiseks, st 2D-massiivi muutmiseks üksikuks veeruks või reaks, kasutage vastavalt funktsiooni TOCOL või TOROW.

    Kuidas teisendada veergu / rida Exceli vahemikuks - näited

    Nüüd, kui te olete aru saanud põhilisest kasutamisest, vaatleme lähemalt mõningaid konkreetsemaid juhtumeid.

    Määrake maksimaalne väärtuste arv veeru või rea kohta

    Sõltuvalt teie algsete andmete struktuurist võib leida, et need sobivad ümber paigutada veergudeks (WRAPCOLS) või ridadeks (WRAPROWS). Ükskõik, millist funktsiooni te kasutate, on see wrap_count argument, mis määrab igas veerus/rivis olevate väärtuste maksimaalse arvu.

    Näiteks selleks, et muuta vahemik B4:B23 2D-massiiviks, nii et igas veerus oleks maksimaalselt 10 väärtust, kasutage seda valemit:

    =WRAPCOLS(B4:B23, 10)

    Sama vahemiku rea kaupa ümber paigutamiseks nii, et igal real oleks maksimaalselt 4 väärtust, on valem järgmine:

    =WRAPROWS(B4:B23, 4)

    Allpool olev pilt näitab, kuidas see välja näeb:

    Puuduvate väärtuste täitmine saadud massiivis

    Kui väärtusi ei ole piisavalt, et täita kõik saadud vahemiku veerud/ridad, annavad WRAPROWS ja WRAPCOLS tagasi #N/A vead, et säilitada 2D-massiivi struktuur.

    Vaikimisi käitumise muutmiseks saate anda valikulise väärtuse valikulisele pad_with argument.

    Näiteks selleks, et muuta vahemik B4:B21 2D-massiiviks, mille laius on maksimaalselt 5 väärtust, ja täita viimane rida kriipsudega, kui selle täitmiseks ei ole piisavalt andmeid, kasutage seda valemit:

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

    Puuduvate väärtuste asendamiseks nullpikkuste stringidega (tühikud) on valem järgmine:

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

    Palun võrrelge tulemusi vaikimisi käitumisega (valemiga D5), kus pad_with on välja jäetud:

    Mitme rea ühendamine 2D vahemikku

    Mitme eraldi rea ühendamiseks üheks 2D-massiiviks paned read kõigepealt horisontaalselt kokku, kasutades funktsiooni HSTACK, ja seejärel pakendad väärtused, kasutades WRAPROWS või WRAPCOLS.

    Näiteks 3 rea (B5:J5, B7:G7 ja B9:F9) väärtuste ühendamiseks ja veerudesse pakkimiseks, millest igaüks sisaldab 10 väärtust, on valem järgmine:

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

    Mitme rea väärtuste kombineerimiseks 2D vahemikku, kus iga rida sisaldab 5 väärtust, on valem järgmine:

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

    Mitme veeru ühendamine 2D massiivi

    Mitme veeru ühendamiseks 2D vahemikuks paned need kõigepealt vertikaalselt kokku, kasutades funktsiooni VSTACK, ja seejärel pakendad väärtused ridadesse (WRAPROWS) või veergudesse (WRAPCOLS).

    Näiteks 3 veeru (B5:J5, B7:G7 ja B9:F9) väärtuste ühendamiseks 2D vahemikuks, kus iga veerg sisaldab 10 väärtust, on valem järgmine:

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

    Samade veergude kombineerimiseks 2D vahemikuks, kus iga rida sisaldab 5 väärtust, kasutage seda valemit:

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

    Pakendage ja sorteerige massiivi

    Olukorras, kus lähteväärtused on juhuslikus järjekorras, kuid soovite, et väljund oleks sorteeritud, toimige nii:

    1. Sorteeri esialgset massiivi soovitud viisil, kasutades funktsiooni SORT.
    2. Andke sorteeritud massiivi WRAPCOLSile või WRAPROWSile.

    Näiteks, kui soovite vahemiku B4:B23 ridadesse mässida, igas reas 4 väärtust, ja sorteerida saadud vahemikku A-st Z-ni, koostage selline valem:

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

    Sama vahemiku pakkimiseks veergudeks, 10 väärtust igas veerus, ja väljundi sorteerimiseks tähestikulises järjekorras on valem järgmine:

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

    Tulemused näevad välja järgmiselt:

    Näpunäide. Tulemuseks saadud massiivis olevate väärtuste paigutamiseks kahanevas järjekorras , määrata kolmas argument ( sort_order ) funktsiooni SORT väärtuseks -1.

    WRAPCOLS alternatiiv Exceli 365 jaoks - 2010

    Vanemates Exceli versioonides, kus WRAPCOLS-funktsiooni ei toetata, saate koostada oma valemi, et pakkida ühemõõtmelise massiivi väärtused veergudesse. Seda saab teha, kasutades koos 5 erinevat funktsiooni.

    WRAPCOLS alternatiiv, et teisendada rida 2D vahemikuks:

    IFERROR(IF(ROW(A1)> n , "", INDEX( row_range , , RIDA(A1) + (VEERG(A1)-1)* . n )), "")

    WRAPCOLS alternatiiv, et teisendada veerg 2D vahemikuks:

    IFERROR(IF(ROW(A1)> n , "", INDEX( column_range , RIDA(A1) + (VEERG(A1)-1)* , RIDA(A1) + (VEERG(A1)-1)*. n )), "")

    Kus n on maksimaalne väärtuste arv veeru kohta.

    Allpool oleval pildil kasutame järgmist valemit, et muuta ühe rea vahemik (D4:J4) kolmerealiseks massiivi.

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

    Ja see valem muudab ühe veeru vahemiku (B4:B20) viie rea massiivi:

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

    Ülaltoodud lahendused jäljendavad analoogseid WRAPCOLSi valemeid ja annavad samu tulemusi:

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

    ja

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

    Pidage meeles, et erinevalt dünaamilise massiivi WRAPCOLS funktsioonist järgivad traditsioonilised valemid ühe valemi ja ühe lahtri lähenemist. Seega, meie esimene valem sisestatakse D8 ja kopeeritakse 3 rida allapoole ja 3 veergu paremale. Teine valem sisestatakse D14 ja kopeeritakse 5 rida allapoole ja 4 veergu paremale.

    Kuidas need valemid toimivad

    Mõlema valemi keskmes kasutame funktsiooni INDEX, mis tagastab esitatud massiivi väärtuse rea ja veeru numbri alusel:

    INDEX(array, row_num, [column_num])

    Kuna meil on tegemist ühe reaga massiivi, võime jätta ära märkuse row_num argument, nii et selle vaikimisi väärtus on 1. Trikk on see, et col_num arvutatakse automaatselt iga lahtri jaoks, kuhu valem kopeeritakse. Ja nii me seda teeme:

    RIDA(A1)+(VEERG(A1)-1)*3)

    Funktsioon ROW tagastab viite A1 rea numbri, mis on 1.

    Funktsioon COLUMN tagastab viite A1 veeru numbri, mis on samuti 1. 1 lahutamisel saab sellest null. Ja 0 korrutamisel 3ga saadakse 0.

    Seejärel liidetakse ROW poolt tagastatud 1 ja COLUMN poolt tagastatud 0 ning tulemuseks saad 1.

    Sel viisil tehakse sihtvahemiku (D8) vasakpoolses ülemises lahtris olevale INDEX-valemile selline ümberkujundamine:

    INDEX($D$4:$J$4, ,RIDA(A1) + (VEERG(A1)-1)*3))

    muudatused

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

    ja tagastab määratud massiivi 1. veeru väärtuse, mis on D4-s "Õunad".

    Kui valem kopeeritakse lahtrisse D9, muutuvad suhtelised lahtriviited ridade ja veergude suhtelise asukoha alusel, samas kui absoluutne vahemiku viide jääb muutumatuks:

    INDEX($D$4:$J$4,, RIDA(A2)+(VEERG(A2)-1)*3))

    muutub:

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

    muutub:

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

    ja tagastab määratud massiivi 2. veeru väärtuse, mis on "Aprikoosid" E4-s.

    Funktsioon IF kontrollib rea arvu ja kui see on suurem kui määratud ridade arv (meie puhul 3), siis tagastab tühja stringi (""), vastasel juhul INDEX-funktsiooni tulemuse:

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

    Lõpuks parandab funktsioon IFERROR vea #REF!, mis tekib siis, kui valem kopeeritakse rohkemasse lahtrisse, kui tegelikult vaja on.

    Teine valem, mis teisendab veeru 2D vahemikuks, töötab sama loogikaga. Erinevus seisneb selles, et te kasutate kombinatsiooni ROW + COLUMN, et välja arvutada row_num argument INDEX. col_num parameeter ei ole antud juhul vajalik, kuna lähtemassiivis on ainult üks veerg.

    WRAPROWS alternatiiv Exceli 365 jaoks - 2010

    Excel 2019 ja varasemates programmides ühemõõtmelise massiivi väärtuste ridadesse pakkimiseks saate kasutada järgmisi WRAPROWS-funktsiooni alternatiive.

    Muutke rida 2D vahemikuks:

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

    Muuda veerg 2D vahemikuks:

    IFERROR(IF(COLUMN(A1)> n , "", INDEX( column_range , VEERG(A1)+(RIDA(A1)-1)* , VEERG(A1)+(RIDA(A1)-1)* n )), "")

    Kus n on maksimaalne väärtuste arv rea kohta.

    Meie näidisandmestikus kasutame järgmist valemit, et teisendada ühe rea vahemik (D4:J4) kolme veeru vahemikuks. Valem maandub lahtrisse D8 ja seejärel kopeeritakse üle 3 veeru ja 3 rea.

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

    1-sambalise vahemiku (B4:B20) ümberkujundamiseks 5-sambaliseks vahemikuks sisestage alljärgnev valem D14 ja lohistage see üle 5 veeru ja 4 rea.

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

    Excel 365s saab samu tulemusi saavutada samaväärsete WRAPCOLS-vormelitega:

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

    ja

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

    Kuidas need valemid toimivad

    Põhimõtteliselt töötavad need valemid nagu eelmises näites. Erinevus seisneb selles, kuidas te määrate kindlaks row_num ja col_num INDEX-funktsiooni koordinaadid:

    INDEX($D$4:$J$4,, VEERG(A1)+(RIDA(A1)-1)*3))

    Sihtvahemiku (D8) vasakpoolse ülemise lahtri veeru numbri saamiseks kasutate seda väljendit:

    VEERG(A1)+(RIDA(A1)-1)*3)

    mis muutub:

    1+(1-1)*3

    ja annab 1.

    Selle tulemusena tagastab alljärgnev valem määratud massiivi esimese veeru väärtuse, milleks on "Õunad":

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

    Seni on tulemus sama, mis eelmises näites. Aga vaatame, mis juhtub teistes rakkudes...

    Lahtris D9 muutuvad suhtelised lahtriviited järgmiselt:

    INDEX($D$4:$J$4,, VEERG(A2)+(RIDA(A2)-1)*3))

    Niisiis, valem muutub järgmiselt:

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

    muutub:

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

    ja tagastab väärtuse määratud massiivi 4. veerust, mis on "Cherries" G4-s.

    Funktsioon IF kontrollib veergude arvu ja kui see on suurem kui määratud veergude arv, siis tagastab tühja stringi (""), vastasel juhul INDEX-funktsiooni tulemuse:

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

    Lõpetuseks, IFERROR takistab #REF! vigade ilmnemist "lisarakkudes", kui kopeerite valemi rohkematesse lahtritesse kui tegelikult vaja.

    WRAPCOLS või WRAPROWS funktsioon ei tööta

    Kui "wrap" funktsioonid ei ole teie Excelis saadaval või annavad vea, on see tõenäoliselt üks alljärgnevatest põhjustest.

    #NAME? error

    Excel 365 versioonis võib ilmneda viga #NAME?, sest olete funktsiooni nime valesti kirjutanud. Teistes versioonides näitab see, et funktsioonid ei ole toetatud. Ümberlülitusena saate kasutada WRAPCOLS alternatiivi või WRAPROWS alternatiivi.

    #VALUE! error

    Viga #VALUE tekib, kui vektor argument ei ole ühemõõtmeline massiivi.

    #NUM! viga

    #NUM viga tekib, kui wrap_count väärtus on 0 või negatiivne arv.

    #SPILL! viga

    Kõige sagedamini näitab #SPILL-viga, et ei ole piisavalt tühje lahtreid, millesse tulemusi valada. Tühjendage naaberrakud ja see on kadunud. Kui viga püsib, vaadake, mida #SPILL Excelis tähendab ja kuidas seda parandada.

    See on, kuidas kasutada WRAPCOLS ja WRAPROWS funktsioone, et teisendada Excelis ühemõõtmeline vahemik kahemõõtmeliseks massiivi. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

    Praktiline töövihik allalaadimiseks

    WRAPCOLS ja WRAPROWS funktsioonid - 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.