Pretvorite stupac/red u niz u Excelu: WRAPCOLS & WRAPROWS funkcije

  • Podijeli Ovo
Michael Brown

Najbrži način za transformaciju stupca ili reda vrijednosti u dvodimenzionalni niz je korištenje WRAPCOLS ili WRAPROWS funkcije.

Od najranijih dana Excela, to je bilo veoma dobar u izračunavanju i analizi brojeva. Ali manipulacija nizovima tradicionalno je bila izazov. Uvođenje dinamičkih nizova znatno je olakšalo upotrebu formula niza. A sada, Microsoft objavljuje skup novih funkcija dinamičkog niza za manipulaciju i preoblikovanje nizova. Ovaj vodič će vas naučiti kako da koristite dvije takve funkcije, WRAPCOLS i WRAPROWS, da transformišete kolonu ili red u 2D niz u trenu.

Excel funkcija WRAPCOLS

Funkcija WRAPCOLS u Excelu pretvara red ili stupac vrijednosti u dvodimenzionalni niz na osnovu navedenog broja vrijednosti po redu.

Sintaksa ima sljedeće argumente:

WRAPCOLS(vector, wrap_count, [pad_with])

Gdje:

  • vector (obavezno) - izvorni jednodimenzionalni niz ili raspon.
  • wrap_count (obavezno) - maksimalni broj vrijednosti po stupcu.
  • pad_with (opcionalno) - vrijednost koju treba dodati posljednjom kolonom ako nema dovoljno stavki za popunjavanje. Ako se izostavi, vrijednosti koje nedostaju bit će dopunjene sa #N/A (zadano).

Na primjer, da biste promijenili raspon B5:B24 u 2-dimenzionalni niz sa 5 vrijednosti po stupcu, formula je:

=WRAPROWS(B5:B24, 5)

Upisujeteargument vector nije jednodimenzionalni niz.

#NUM! error

Greška #NUM se javlja ako je vrijednost wrap_count 0 ili negativan broj.

#SPILL! error

Najčešće, #SPILL greška ukazuje na to da nema dovoljno praznih ćelija u koje bi se prelili rezultati. Očistite susjedne ćelije i nestat će. Ako greška i dalje postoji, provjerite što znači #SPILL u Excelu i kako to popraviti.

Tako možete koristiti funkcije WRAPCOLS i WRAPROWS za pretvaranje jednodimenzionalnog raspona u dvodimenzionalni niz u Excelu. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!

Vježbajte radnu svesku za preuzimanje

WRAPCOLS i WRAPROWS funkcije - primjeri (.xlsx datoteka)

formule u bilo kojoj pojedinačnoj ćeliji i ona se automatski prelijeva u onoliko ćelija koliko je potrebno. U WRAPCOLS izlazu, vrijednosti su raspoređene okomito, od vrha do dna, na osnovu vrijednosti wrap_count. Nakon što je broj dostignut, pokreće se nova kolona.

Excel funkcija WRAPROWS

Funkcija WRAPROWS u Excelu pretvara red ili stupac vrijednosti u dvodimenzionalni niz na osnovu broja vrijednosti po redu koji odredite.

Sintaksa je sljedeća:

WRAPROWS(vector, wrap_count, [pad_with])

Gdje:

  • vector (obavezno) - izvorni jednodimenzionalni niz ili raspon.
  • wrap_count (obavezno) - maksimalni broj vrijednosti po redu.
  • pad_with (opcionalno) - vrijednost za pad sa zadnjim redom ako nema dovoljno stavki za popunjavanje. Zadana vrijednost je #N/A.

Na primjer, za transformaciju raspona B5:B24 u 2D niz koji ima 5 vrijednosti u svakom redu, formula je:

=WRAPROWS(B5:B24, 5)

Formulu unosite u gornju lijevu ćeliju raspona prosipanja i ona automatski popunjava sve ostale ćelije. Funkcija WRAPROWS raspoređuje vrijednosti horizontalno, s lijeva na desno, na osnovu vrijednosti wrap_count . Nakon dostizanja broja, počinje novi red.

Dostupnost WRAPCOLS i WRAPROWS

Obje funkcije su dostupne samo u Excelu za Microsoft 365 (Windows i Mac) i Excelu za web.

Ranijeverzijama, možete koristiti tradicionalne složenije formule za izvođenje transformacija stupac-niz i red-niz. Dalje, u ovom vodiču, detaljno ćemo raspravljati o alternativnim rješenjima.

Savjet. Da izvršite obrnutu operaciju, tj. promijenite 2D niz u jedan stupac ili red, koristite funkciju TOCOL ili TOROW, respektivno.

Kako pretvoriti stupac/red u raspon u Excelu - primjeri

Sada kada ste shvatili osnovnu upotrebu, pogledajmo pobliže nekoliko konkretnijih slučajeva.

Postavite maksimalni broj vrijednosti po stupcu ili redu

Ovisno o strukturu vaših originalnih podataka, možda ćete smatrati pogodnim da se ponovo rasporedite u stupce (WRAPCOLS) ili redove (WRAPROWS). Koju god funkciju koristite, to je argument wrap_count koji određuje maksimalan broj vrijednosti u svakom stupcu/retku.

Na primjer, da transformišete raspon B4:B23 u 2D niz, tako da svaka kolona ima maksimalno 10 vrijednosti, koristite ovu formulu:

=WRAPCOLS(B4:B23, 10)

Da biste preuredili isti raspon po red, tako da svaki red ima maksimalno 4 vrijednosti, formula je :

=WRAPROWS(B4:B23, 4)

Slika ispod pokazuje kako ovo izgleda:

Vrijednosti nedostaju u rezultirajućem nizu

U slučaju da nema dovoljno vrijednosti za popunjavanje svi stupci/redovi rezultirajućeg raspona, WRAPROWS i WRAPCOLS će vratiti #N/A greške kako bi zadržali strukturu 2D niza.

Za promjenu zadanogponašanje, možete dati prilagođenu vrijednost za izborni argument pad_with .

Na primjer, da transformišete raspon B4:B21 u 2D niz sa maksimalno 5 vrijednosti širine, i ubacite zadnji red sa crticama ako nema dovoljno podataka da ga popunite, koristite ovu formulu:

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

Za zamjenu nedostajućih vrijednosti stringovima nulte dužine (praznine), formula je:

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

Molimo uporedite rezultate sa zadanim ponašanjem (formula u D5) gdje je pad_with izostavljen:

Spoji više redova u 2D raspon

Da biste kombinirali nekoliko odvojenih redova u jedan 2D niz, prvo složite redove vodoravno koristeći HSTACK funkciju, a zatim umotajte vrijednosti pomoću WRAPROWS ili WRAPCOLS.

Na primjer, da biste spojili vrijednosti iz 3 reda (B5:J5, B7:G7 i B9:F9) i umotajte u stupce, od kojih svaki sadrži 10 vrijednosti, formula je:

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

Za kombiniranje vrijednosti iz više redova u 2D opseg gdje svaki red sadrži 5 vrijednosti, formula ima ovaj oblik:

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

C kombinujte više stupaca u 2D niz

Da spojite nekoliko stupaca u 2D raspon, prvo ih složite okomito koristeći VSTACK funkciju, a zatim umotate vrijednosti u redove (WRAPROWS) ili stupce (WRAPCOLS).

Na primjer, da biste kombinirali vrijednosti iz 3 kolone (B5:J5, B7:G7 i B9:F9) u 2D raspon gdje svaki stupac sadrži 10 vrijednosti, formula je:

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

Za kombiniranjeiste kolone u 2D raspon gdje svaki red sadrži 5 vrijednosti, koristite ovu formulu:

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

Omotajte i sortirajte niz

U situaciji kada izvorni raspon ima vrijednosti u slučajnim redoslijedom dok želite da se izlaz sortira, postupite na sljedeći način:

  1. Sortirajte početni niz na način na koji želite pomoću funkcije SORT.
  2. Spremite sortirani niz u WRAPCOLS ili WRAPROWS.

Na primjer, da umotate raspon B4:B23 u redove, po 4 vrijednosti u svakom, i sortirate rezultirajući raspon od A do Z, konstruirajte formulu poput ove:

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

Za umotavanje istog raspona u stupce, po 10 vrijednosti u svakoj, i sortiranje izlaza po abecednom redu, formula je:

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

Rezultati izgledaju kako slijedi :

Savjet. Da biste rasporedili vrijednosti u rezultirajućem nizu u padajućem redoslijedu , postavite treći argument ( sort_order ) funkcije SORT na -1.

WRAPCOLS alternativa za Excel 365 - 2010

U starijim verzijama Excela u kojima funkcija WRAPCOLS nije podržana, možete napraviti vlastitu formulu za premotavanje vrijednosti iz jednodimenzionalnog niza u stupce. Ovo se može učiniti korištenjem 5 različitih funkcija zajedno.

WRAPCOLS alternativa za pretvaranje reda u 2D raspon:

IFERROR(IF(ROW(A1)> n , "" , INDEX( raspon_redova , , ROW(A1) + (COLUMN(A1)-1)* n )), "")

WRAPCOLS alternativa za pretvaranje stupca u 2D raspon:

IFGREŠKA(IF(RED(A1)> n ,"", INDEX( opseg_stupca , RED(A1) + (COLUMN(A1)-1)* n )), "")

Gdje je n je maksimalni broj vrijednosti po stupcu.

Na slici ispod koristimo sljedeću formulu da pretvorimo raspon od jednog reda (D4:J4) u niz od tri reda.

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

I ova formula mijenja raspon od jedne kolone (B4:B20) u niz od pet redova:

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

Gornja rješenja oponašaju analogne WRAPCOLS formule i daju iste rezultate:

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

i

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

Imajte na umu da za razliku od funkcije dinamičkog niza WRAPCOLS, tradicionalne formule slijede pristup jedna formula-jedna ćelija. Dakle, naša prva formula je unesena u D8 i kopirana 3 reda dolje i 3 kolone udesno. Druga formula je uneta u D14 i kopirana 5 redova dole i 4 kolone udesno.

Kako ove formule rade

U srcu obje formule koristimo funkciju INDEX koja vraća vrijednost iz isporučenog niza na osnovu broja reda i stupca:

INDEX(niz, broj_reda, [broj_stupca])

Kako imamo posla s nizom od jednog reda, možemo izostaviti argument broj_reda , tako da je on zadana vrijednost 1. Trik je da imamo broj_kolca izračunava se automatski za svaku ćeliju u koju se formula kopira. A evo kako to radimo:

ROW(A1)+(COLUMN(A1)-1)*3)

Funkcija ROW vraća broj reda A1 reference, koji je 1.

Funkcija COLUMN vraća broj stupcareferencu A1, koja je takođe 1. Oduzimanjem 1 pretvara se u nulu. A množenjem 0 sa 3 dobijete 0.

Zatim sabirate 1 koji vraća ROW i 0 vraća COLUMN i dobijete 1 kao rezultat.

Na ovaj način, formula INDEX u gornjem dijelu -lijeva ćelija odredišnog raspona (D8) prolazi kroz ovu transformaciju:

INDEX($D$4:$J$4, ,ROW(A1) + (COLUMN(A1)-1)*3))

mijenja se u

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

i vraća vrijednost iz 1. stupca navedenog niza, a to je "Jabuke" u D4.

Kada se formula kopira u ćeliju D9, relativne reference ćelije se mijenjaju na osnovu relativnog položaja redaka i stupaca dok apsolutna referenca raspona ostaje nepromijenjena:

INDEX($D$4:$J$4,, ROW(A2)+(COLUMN(A2)-1)*3))

pretvara se u:

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

postaje:

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

i vraća vrijednost iz 2. stupac navedenog niza, a to je "Apricots" u E4.

Funkcija IF provjerava broj reda i ako je veći od broja redova koji ste naveli (3 u našem slučaju) vraća prazan niz ( ""), inače rezultat funkcije INDEX:

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

Konačno, funkcija IFERROR popravlja #REF! greška koja se javlja kada se formula kopira u više ćelija nego što je stvarno potrebno.

Druga formula koja pretvara kolonu u 2D raspon radi s istom logikom. Razlika je u tome što koristite kombinaciju ROW + COLUMN da shvatite argument broj_reda za INDEX. Parametar col_num nije potreban u ovom slučaju jer postoji samojedan stupac u izvornom nizu.

WRAPROWS alternativa za Excel 365 - 2010

Za premotavanje vrijednosti iz jednodimenzionalnog niza u redove u programu Excel 2019 i starijim, možete koristiti sljedeće alternative funkciji WRAPROWS.

Transformirajte red u 2D raspon:

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

Promijenite kolonu u 2D raspon:

IFERROR(IF( COLUMN(A1)> n , "", INDEX( opseg_kolone , COLUMN(A1)+(RED(A1)-1)* n )) , "")

Gdje je n maksimalni broj vrijednosti po redu.

U našem skupu podataka uzorka koristimo sljedeću formulu za pretvaranje raspona u jednom redu (D4 :J4) u raspon od tri kolone. Formula dolazi u ćeliju D8, a zatim se kopira u 3 kolone i 3 reda.

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

Da biste preoblikovali raspon od 1 stupca (B4:B20) u raspon od 5 stupaca, unesite formulu ispod u D14 i prevucite je preko 5 stupaca i 4 reda.

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

U Excelu 365, isti rezultati se mogu postići s ekvivalentnim WRAPCOLS formulama:

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

i

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

Kako ove formule rade

U suštini, ove formule rade kao u prethodnom primjeru. Razlika je u tome kako određujete koordinate broj_reda i broj_kolca za funkciju INDEX:

INDEX($D$4:$J$4,, COLUMN(A1)+(ROW(A1)-1)*3))

Da biste dobili broj stupca za gornji lijevoj ćeliji u rasponu odredišta (D8), koristite ovoizraz:

COLUMN(A1)+(ROW(A1)-1)*3)

koji se mijenja u:

1+(1-1)*3

i daje 1.

Kao rezultat, formula ispod vraća vrijednost iz prve kolone navedenog niza, a to je "Jabuke":

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

Do sada je rezultat isti kao u prethodnom primjer. Ali hajde da vidimo šta se dešava u drugim ćelijama...

U ćeliji D9, relativne reference ćelije se menjaju na sledeći način:

INDEX($D$4:$J$4,, COLUMN(A2)+(ROW(A2)-1)*3))

Dakle, formula se transformiše u:

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

postaje:

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

i vraća vrijednost iz 4. stupca navedenog niza, a to je "Trešnje" u G4.

IF funkcija provjerava broj stupca i ako je veći od broja kolona koji ste naveli, vraća prazan niz (""), u suprotnom rezultat funkcije INDEX:

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

Kao završni dodir, IFERROR sprečava #REF! greške od pojavljivanja u "dodatnim" ćelijama ako kopirate formulu u više ćelija nego što je stvarno potrebno.

Funkcija WRAPCOLS ili WRAPROWS ne radi

Ako funkcije "wrap" nisu dostupne u vašem Excel-u ili rezultirati greškom, najvjerovatnije je to jedan od dolje navedenih razloga.

#NAME? greška

U programu Excel 365, #NAME? može doći do greške jer ste pogrešno napisali ime funkcije. U drugim verzijama označava da funkcije nisu podržane. Kao zaobilazno rješenje, možete koristiti alternativu WRAPCOLS ili alternativu WRAPROWS.

#VALUE! error

Greška #VRIJEDNOST se javlja ako

Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.