Pārvērst kolonnu / rindu uz masīvu programmā Excel: WRAPCOLS & amp; WRAPROWS funkcijas

  • Dalīties Ar Šo
Michael Brown

Visātrākais veids, kā vērtību kolonnu vai rindu pārveidot divdimensiju masīvā, ir izmantot funkciju WRAPCOLS vai WRAPROWS.

Jau kopš Excel pirmsākumiem tas ir bijis ļoti labs skaitļu aprēķināšanā un analīzē. Taču manipulēšana ar masīviem tradicionāli ir bijis izaicinājums. Dinamisko masīvu ieviešana ievērojami atviegloja masīvu formulu lietošanu. Un tagad Microsoft izdod jaunu dinamisko masīvu funkciju kopumu, lai manipulētu ar masīviem un pārveidotu to formu. Šajā pamācībā uzzināsiet, kā izmantot divas šādas funkcijas,WRAPCOLS un WRAPROWS, lai ātri pārveidotu kolonnu vai rindu 2D masīvā.

    Excel WRAPCOLS funkcija

    WRAPCOLS funkcija programmā Excel pārveido vērtību rindu vai kolonnu divdimensiju masīvā, pamatojoties uz norādīto vērtību skaitu rindā.

    Sintaksei ir šādi argumenti:

    WRAPCOLS(vektors, wrap_count, [pad_with])

    Kur:

    • vektors (obligāts) - avota viendimensiju masīvs vai diapazons.
    • wrap_count (obligāts) - maksimālais vērtību skaits kolonnā.
    • pad_with (nav obligāti) - vērtība, kas jāaizpilda pēdējā slejā, ja nav pietiekami daudz elementu, lai to aizpildītu. Ja netiek norādīts, trūkstošās vērtības tiks aizpildītas ar #N/A (noklusējuma iestatījums).

    Piemēram, lai mainītu diapazonu B5:B24 uz divdimensiju masīvu ar 5 vērtībām katrā slejā, formula ir šāda:

    =WRAPROWS(B5:B24, 5)

    Ievadiet formulu jebkurā atsevišķā šūnā, un tā automātiski izklāsies tik šūnās, cik nepieciešams. WRAPCOLS izvadnē vērtības ir sakārtotas vertikāli no augšas uz leju, pamatojoties uz formulas. wrap_count Pēc tam, kad skaits ir sasniegts, tiek uzsākta jauna sleja.

    Excel WRAPROWS funkcija

    WRAPROWS funkcija programmā Excel pārvērš vērtību rindu vai kolonnu divdimensiju masīvā, pamatojoties uz norādīto vērtību skaitu rindā.

    Sintakse ir šāda:

    WRAPROWS(vektors, wrap_count, [pad_with])

    Kur:

    • vektors (obligāts) - avota viendimensiju masīvs vai diapazons.
    • wrap_count (obligāts) - maksimālais vērtību skaits rindā.
    • pad_with (nav obligāti) - vērtība, ar kuru aizpildīt pēdējo rindu, ja nav pietiekami daudz elementu, lai to aizpildītu. Noklusējuma vērtība ir #N/A.

    Piemēram, lai pārveidotu diapazonu B5:B24 par 2D masīvu ar 5 vērtībām katrā rindā, formula ir šāda:

    =WRAPROWS(B5:B24, 5)

    Ievadiet formulu augšējā kreisajā šūnā, un tā automātiski aizpildīs visas pārējās šūnas. Funkcija WRAPROWS sakārto vērtības horizontāli, no kreisās puses uz labo, pamatojoties uz formulu. wrap_count Pēc skaita sasniegšanas tiek sākta jauna rinda.

    WRAPCOLS un WRAPROWS pieejamība

    Abas funkcijas ir pieejamas tikai lietojumprogrammā Excel programmā Microsoft 365 (Windows un Mac) un programmā Excel tīmeklī.

    Agrākajās versijās varat izmantot tradicionālās sarežģītākas formulas, lai veiktu transformācijas no kolonnas uz masīvu un no rindas uz masīvu. Turpmāk šajā pamācībā mēs detalizēti aplūkosim alternatīvus risinājumus.

    Padoms. Lai veiktu apgriezto darbību, t. i., mainītu 2D masīvu uz vienu kolonnu vai rindu, izmantojiet attiecīgi funkciju TOCOL vai TOROW.

    Kā konvertēt kolonnu / rindu uz diapazonu programmā Excel - piemēri

    Tagad, kad esat sapratuši pamatlietas, aplūkosim dažus konkrētākus gadījumus.

    Iestatiet maksimālo vērtību skaitu vienā slejā vai rindā

    Atkarībā no jūsu sākotnējo datu struktūras, iespējams, ka tos būs lietderīgi pārkārtot kolonnās (WRAPCOLS) vai rindās (WRAPROWS). Neatkarīgi no tā, kuru funkciju izmantojat, tā ir funkcija wrap_count arguments, kas nosaka maksimālo vērtību skaitu katrā slejā/rindā.

    Piemēram, lai pārveidotu diapazonu B4:B23 par 2D masīvu tā, lai katrā slejā būtu ne vairāk kā 10 vērtības, izmantojiet šo formulu:

    =WRAPCOLS(B4:B23, 10)

    Lai pārkārtotu to pašu diapazonu pa rindām tā, lai katrā rindā būtu ne vairāk kā 4 vērtības, formula ir šāda:

    =WRAPROWS(B4:B23, 4)

    Zemāk redzamajā attēlā parādīts, kā tas izskatās:

    Trūkstošo vērtību aizpildīšana iegūtajā masīvā

    Ja nav pietiekami daudz vērtību, lai aizpildītu visas iegūtā diapazona kolonnas/rindas, WRAPROWS un WRAPCOLS atgriezīs #N/A kļūdas, lai saglabātu 2D masīva struktūru.

    Lai mainītu noklusējuma uzvedību, varat norādīt neobligātā elementa pielāgotu vērtību. pad_with arguments.

    Piemēram, lai pārveidotu diapazonu B4:B21 par 2D masīvu ar maksimālo platumu 5 vērtības un aizpildītu pēdējo rindu ar domuzīmēm, ja nav pietiekami daudz datu, lai to aizpildītu, izmantojiet šo formulu:

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

    Lai trūkstošās vērtības aizstātu ar nulles garuma virknēm (tukšajām vietām), formula ir šāda:

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

    Lūdzu, salīdziniet rezultātus ar noklusējuma darbību (formula D5), kur pad_with ir izlaists:

    Vairāku rindu apvienošana 2D diapazonā

    Lai apvienotu vairākas atsevišķas rindas vienā 2D masīvā, vispirms rindas sakraujiet horizontāli, izmantojot HSTACK funkciju, un pēc tam vērtības ietiniet, izmantojot WRAPROWS vai WRAPCOLS.

    Piemēram, lai apvienotu vērtības no 3 rindām (B5:J5, B7:G7 un B9:F9) un ietītu tās kolonnās, no kurām katra satur 10 vērtības, formula ir šāda:

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

    Lai apvienotu vērtības no vairākām rindām 2D diapazonā, kur katra rinda satur 5 vērtības, formula ir šāda:

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

    Apvienojiet vairākas kolonnas 2D masīvā

    Lai apvienotu vairākas kolonnas 2D diapazonā, vispirms tās sakrauj vertikāli, izmantojot funkciju VSTACK, un pēc tam vērtības ietin rindās (WRAPROWS) vai kolonnās (WRAPCOLS).

    Piemēram, lai apvienotu vērtības no 3 kolonnām (B5:J5, B7:G7 un B9:F9) 2D diapazonā, kur katrā kolonnā ir 10 vērtības, formula ir:

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

    Lai apvienotu tās pašas kolonnas 2D diapazonā, kur katra rinda satur 5 vērtības, izmantojiet šo formulu:

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

    Aptiniet un sakārtojiet masīvu

    Ja avota diapazonā ir vērtības nejaušā secībā, bet vēlaties, lai izvads būtu sakārtots, rīkojieties šādā veidā:

    1. Sakārtojiet sākotnējo masīvu, kā vēlaties, izmantojot funkciju SORT.
    2. Sniedz sakārtoto masīvu WRAPCOLS vai WRAPROWS.

    Piemēram, lai diapazonu B4:B23 ietītu rindās pa 4 vērtībām katrā un iegūto diapazonu sakārtotu no A līdz Z, izveidojiet šādu formulu:

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

    Lai to pašu diapazonu ietītu kolonnās pa 10 vērtībām katrā un sarindotu rezultātus alfabētiskā secībā, formula ir šāda:

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

    Rezultāti ir šādi:

    Padoms. Lai sakārtotu iegūtā masīva vērtības šādi dilstošā secībā , iestatiet trešo argumentu ( sort_order ) SORT funkcijas vērtība ir -1.

    WRAPCOLS alternatīva Excel 365 - 2010

    Vecākās Excel versijās, kurās WRAPCOLS funkcija netiek atbalstīta, varat izveidot savu formulu, lai viendimensiju masīva vērtības ietītu kolonnās. To var izdarīt, kopā izmantojot 5 dažādas funkcijas.

    WRAPCOLS alternatīva, lai pārvērstu rindu 2D diapazonā:

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

    WRAPCOLS alternatīva, lai kolonnu pārvērstu 2D diapazonā:

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

    Kur n ir maksimālais vērtību skaits vienā slejā.

    Nākamajā attēlā mēs izmantojam šādu formulu, lai vienas rindas diapazonu (D4:J4) pārvērstu trīs rindu masīvā.

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

    Un šī formula pārveido vienas kolonnas diapazonu (B4:B20) par piecu rindu masīvu:

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

    Iepriekš minētie risinājumi atdarina analogās WRAPCOLS formulas un dod tādus pašus rezultātus:

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

    un

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

    Lūdzu, paturiet prātā, ka atšķirībā no dinamiskā masīva WRAPCOLS funkcijas tradicionālajās formulās tiek izmantota vienas formulas un vienas šūnas pieeja. Tātad mūsu pirmā formula ir ievadīta D8 un kopēta 3 rindas uz leju un 3 slejas pa labi. Otrā formula ir ievadīta D14 un kopēta 5 rindas uz leju un 4 slejas pa labi.

    Kā šīs formulas darbojas

    Abu formulu pamatā ir funkcija INDEX, kas atgriež vērtību no iesniegtā masīva, pamatojoties uz rindas un kolonnas numuru:

    INDEX(masīvs, rindas_num, [kolonnas_num])

    Tā kā mēs strādājam ar vienas rindas masīvu, mēs varam izlaist rindu_num arguments, tāpēc tā noklusējuma vērtība ir 1. col_num aprēķina automātiski katrai šūnai, kurā tiek kopēta formula. Un šeit ir parādīts, kā mēs to darām:

    RINDA(A1)+(SLEJA(A1)-1)*3)

    ROW funkcija atgriež A1 atsauces rindas numuru, kas ir 1.

    Funkcija COLUMN atgriež A1 atsauces kolonnas numuru, kas arī ir 1. Atņemot 1, tā kļūst par nulli, bet reizinot 0 ar 3, iegūst 0.

    Pēc tam saskaitiet ROW (rindas) un COLUMN (slejas) atgrieztās vērtības 1 un 0 un kā rezultātu iegūstiet 1.

    Tādējādi mērķa diapazona (D8) augšējās kreisās šūnas INDEX formula tiek pārveidota:

    INDEKSS($D$4:$J$4, ,RINDA(A1) + (SLEJA(A1)-1)*3)))

    izmaiņas

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

    un atgriež vērtību no norādītā masīva 1. slejas, kas D4 ir "Apples".

    Kad formula tiek kopēta uz šūnu D9, relatīvās šūnu atsauces mainās, pamatojoties uz rindu un kolonnu relatīvo pozīciju, bet absolūtā diapazona atsauce paliek nemainīga:

    INDEKSS($D$4:$J$4,, RINDA(A2)+(SLEJA(A2)-1)*3)))

    pārvēršas par:

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

    kļūst:

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

    un atgriež vērtību no norādītā masīva 2. slejas, kas ir "Apricots" E4.

    IF funkcija pārbauda rindas numuru un, ja tas ir lielāks par norādīto rindu skaitu (mūsu gadījumā - 3), atgriež tukšu virkni (""), pretējā gadījumā - INDEX funkcijas rezultātu:

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

    Visbeidzot, funkcija IFERROR novērš kļūdu #REF!, kas rodas, ja formula tiek kopēta uz vairāk šūnām, nekā patiešām nepieciešams.

    Otrā formula, kas pārvērš kolonnu 2D diapazonā, darbojas ar tādu pašu loģiku. Atšķirība ir tāda, ka jūs izmantojat ROW + COLUMN kombināciju, lai noskaidrotu. rindu_num INDEX arguments. col_num parametrs šajā gadījumā nav nepieciešams, jo avota masīvā ir tikai viena sleja.

    WRAPROWS alternatīva Excel 365 - 2010

    Lai Excel 2019 un agrākajos versiju versijās ietītu vērtības no viendimensiju masīva rindās, varat izmantot šādas WRAPROWS funkcijas alternatīvas.

    Pārveidot rindu 2D diapazonā:

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

    Mainīt kolonnu uz 2D diapazonu:

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

    Kur n ir maksimālais vērtību skaits vienā rindā.

    Mūsu parauga datu kopā mēs izmantojam šādu formulu, lai vienas rindas diapazonu (D4:J4) pārveidotu par trīs kolonnu diapazonu. Formula atrodas šūnā D8 un pēc tam tiek kopēta pa 3 kolonnām un 3 rindām.

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

    Lai pārveidotu 1 kolonnas diapazonu (B4:B20) par 5 kolonnu diapazonu, ievadiet tālāk norādīto formulu D14 un velciet to pāri 5 kolonnām un 4 rindām.

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

    Programmā Excel 365 tos pašus rezultātus var iegūt, izmantojot līdzvērtīgas WRAPCOLS formulas:

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

    un

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

    Kā šīs formulas darbojas

    Būtībā šīs formulas darbojas tāpat kā iepriekšējā piemērā. Atšķirība ir tajā, kā jūs nosakāt. rindu_num un col_num INDEX funkcijas koordinātas:

    INDEKSS($D$4:$J$4,, SLEJA(A1)+(RINDA(A1)-1)*3)))

    Lai iegūtu augšējās kreisās šūnas augšējās kreisās šūnas numuru mērķa diapazonā (D8), izmantojiet šo izteiksmi:

    SLEJA(A1)+(RINDA(A1)-1)*3)

    kas mainās uz:

    1+(1-1)*3

    un dod 1.

    Rezultātā tālāk sniegtā formula atgriež vērtību no norādītā masīva pirmās kolonnas, kas ir "Apples":

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

    Līdz šim rezultāts ir tāds pats kā iepriekšējā piemērā. Bet paskatīsimies, kas notiek citās šūnās...

    Šādi mainās relatīvās šūnu atsauces šūnā D9:

    INDEKSS($D$4:$J$4,, SLEJA(A2)+(RINDA(A2)-1)*3)))

    Tādējādi formula pārvēršas par:

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

    kļūst:

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

    un atgriež vērtību no norādītā masīva 4. slejas, kas G4 ir "Cherries".

    Funkcija IF pārbauda kolonnu skaitu un, ja tas ir lielāks par norādīto kolonnu skaitu, atgriež tukšu virkni (""), pretējā gadījumā atgriež INDEX funkcijas rezultātu:

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

    IFERROR novērš #REF! kļūdu parādīšanos "papildu" šūnās, ja formulu kopējat uz vairāk šūnām, nekā nepieciešams.

    WRAPCOLS vai WRAPROWS funkcija nedarbojas

    Ja Excel programmā nav pieejamas "ietīšanas" funkcijas vai tiek pieļauta kļūda, visticamāk, tas ir viens no turpmāk minētajiem iemesliem.

    #NAME? kļūda

    Programmā Excel 365 kļūda #NAME? var rasties, jo nepareizi uzrakstīts funkcijas nosaukums. Citās versijās tas norāda, ka funkcijas nav atbalstītas. Kā apiešanas iespēju varat izmantot alternatīvu WRAPCOLS vai alternatīvu WRAPROWS.

    #VALUE! kļūda

    Kļūda #VALUE rodas, ja vektors arguments nav viendimensiju masīvs.

    #NUM! kļūda

    Kļūda #NUM rodas, ja wrap_count vērtība ir 0 vai negatīvs skaitlis.

    #SPILL! kļūda

    Visbiežāk kļūda #SPILL norāda, ka nav pietiekami daudz tukšu šūnu, kurās izliet rezultātus. Notīriet blakus esošās šūnas, un kļūda izzudīs. Ja kļūda saglabājas, skatiet, ko #SPILL nozīmē programmā Excel un kā to novērst.

    Lūk, kā izmantot WRAPCOLS un WRAPROWS funkcijas, lai Excel programmā pārvērstu viendimensiju diapazonu divdimensiju masīvā. Paldies, ka izlasījāt, un ceru, ka nākamnedēļ tiksimies mūsu blogā!

    Prakses darba burtnīca lejupielādei

    WRAPCOLS un WRAPROWS funkcijas - piemēri (.xlsx fails)

    Maikls Brauns ir īpašs tehnoloģiju entuziasts, kura aizraušanās ir sarežģītu procesu vienkāršošana, izmantojot programmatūras rīkus. Ar vairāk nekā desmit gadu pieredzi tehnoloģiju nozarē viņš ir pilnveidojis savas prasmes programmās Microsoft Excel un Outlook, kā arī Google izklājlapās un dokumentos. Maikla emuārs ir veltīts tam, lai dalītos savās zināšanās un pieredzē ar citiem, sniedzot viegli izpildāmus padomus un pamācības produktivitātes un efektivitātes uzlabošanai. Neatkarīgi no tā, vai esat pieredzējis profesionālis vai iesācējs, Maikla emuārs piedāvā vērtīgas atziņas un praktiskus padomus, kā maksimāli izmantot šos būtiskos programmatūras rīkus.