Sadržaj
Najbrži način transformiranja stupca ili retka vrijednosti u dvodimenzionalni niz je pomoću funkcije WRAPCOLS ili WRAPROWS.
Od najranijih dana Excela, vrlo dobar u računanju i analizi brojeva. Ali manipuliranje nizovima tradicionalno je izazov. Uvođenje dinamičkih nizova uvelike je olakšalo korištenje formula polja. A sada, Microsoft izdaje skup novih funkcija dinamičkog niza za manipuliranje i preoblikovanje nizova. Ovaj vodič će vas naučiti kako koristiti dvije takve funkcije, WRAPCOLS i WRAPROWS, za transformaciju stupca ili retka u 2D polje u tren oka.
Funkcija Excel WRAPCOLS
Funkcija WRAPCOLS u Excelu pretvara red ili stupac vrijednosti u dvodimenzionalni niz na temelju navedenog broja vrijednosti po retku.
Sintaksa ima sljedeće argumente:
WRAPCOLS(vektor, wrap_count, [pad_with])Gdje:
- vektor (obavezno) - izvorni jednodimenzionalni niz ili raspon.
- wrap_count (obavezno) - najveći broj vrijednosti po stupcu.
- pad_with (neobavezno) - vrijednost koju treba dodati u zadnji stupac ako nema dovoljno stavki za popunjavanje. Ako se izostavi, vrijednosti koje nedostaju bit će dopunjene s #N/A (zadano).
Na primjer, da biste promijenili raspon B5:B24 u 2-dimenzionalni niz s 5 vrijednosti po stupcu, formula je:
=WRAPROWS(B5:B24, 5)
Unesiteargument vektor nije jednodimenzionalni niz.
#NUM! error
Pogreška #NUM javlja se ako je vrijednost wrap_count 0 ili negativan broj.
#SPILL! pogreška
Najčešće, pogreška #SPILL označava da nema dovoljno praznih ćelija u koje bi se rezultati prelili. Očistite susjedne ćelije i nestat će. Ako se pogreška nastavi pojavljivati, provjerite što #SPILL znači u Excelu i kako to popraviti.
Tako se koriste 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ći tjedan!
Vježbe za preuzimanje
Funkcije WRAPCOLS i WRAPROWS - primjeri (.xlsx datoteka)
formulu u bilo koju pojedinačnu ćeliju i automatski se prelijeva u onoliko ćelija koliko je potrebno. U izlazu WRAPCOLS, vrijednosti su raspoređene okomito, od vrha prema dnu, na temelju vrijednosti wrap_count. Nakon što se dosegne broj, pokreće se nova kolona.
Funkcija Excel WRAPROWS
Funkcija WRAPROWS u Excelu pretvara redak ili stupac vrijednosti u dvodimenzionalni niz na temelju broja vrijednosti po retku koji navedete.
Sintaksa je sljedeća:
WRAPROWS(vektor, wrap_count, [pad_with])Gdje:
- vektor (obavezno) - izvorni jednodimenzionalni polje ili raspon.
- wrap_count (obavezno) - maksimalan broj vrijednosti po retku.
- pad_with (opcionalno) - vrijednost za podmetanje 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 retku, formula je:
=WRAPROWS(B5:B24, 5)
Formulu unesete u gornju lijevu ćeliju raspona izlijevanja i ona automatski popunjava sve ostale ćelije. Funkcija WRAPROWS raspoređuje vrijednosti vodoravno, slijeva nadesno, na temelju vrijednosti wrap_count . Nakon što dosegne broj, počinje novi red.
Dostupnost WRAPCOLS i WRAPROWS
Obje funkcije dostupne su samo u Excelu za Microsoft 365 (Windows i Mac) i Excelu za web.
Ranijeverzije, možete koristiti tradicionalne složenije formule za izvođenje transformacija stupca u niz i reda u niz. Dalje u ovom vodiču, detaljno ćemo raspravljati o alternativnim rješenjima.
Savjet. Da biste izvršili obrnutu operaciju, tj. promijenili 2D niz u jedan stupac ili redak, upotrijebite funkciju TOCOL ili TOROW.
Kako pretvoriti stupac/redak u raspon u Excelu - primjeri
Sada kada ste shvatili osnovnu upotrebu, pogledajmo pobliže nekoliko specifičnih slučajeva.
Postavite najveći broj vrijednosti po stupcu ili retku
Ovisno o strukturu vaših izvornih podataka, možda ćete smatrati prikladnim da ih preuredite u stupce (WRAPCOLS) ili retke (WRAPROWS). Koju god funkciju upotrijebili, argument wrap_count određuje najveći broj vrijednosti u svakom stupcu/retku.
Na primjer, da transformirate raspon B4:B23 u 2D polje, tako da svaki stupac ima najviše 10 vrijednosti, upotrijebite ovu formulu:
=WRAPCOLS(B4:B23, 10)
Za preuređivanje istog raspona po retku, tako da svaki redak ima najviše 4 vrijednosti, formula je :
=WRAPROWS(B4:B23, 4)
Slika u nastavku pokazuje kako to izgleda:
Dopunite nedostajuće vrijednosti u rezultirajućem nizu
U slučaju da nema dovoljno vrijednosti za popunjavanje sve stupce/redove dobivenog raspona, WRAPROWS i WRAPCOLS vratit će #N/A pogreške kako bi zadržali strukturu 2D polja.
Za promjenu zadaneponašanje, možete dati prilagođenu vrijednost za izborni argument pad_with .
Na primjer, da transformirate raspon B4:B21 u 2D niz s maksimalnih 5 vrijednosti u širinu, i dopunite zadnji redak s crticama ako nema dovoljno podataka za popunjavanje, upotrijebite ovu formulu:
=WRAPROWS(B4:B21, 5, "-")
Za zamjenu vrijednosti koje nedostaju nizovima nulte duljine (prazna mjesta), formula je:
=WRAPROWS(B4:B21, 5, "")
Usporedite rezultate sa zadanim ponašanjem (formula u D5) gdje je pad_with izostavljeno:
Spoji više redaka u 2D raspon
Da biste kombinirali nekoliko zasebnih redaka u jedno 2D polje, prvo složite retke vodoravno pomoću funkcije HSTACK, a zatim zamotajte vrijednosti pomoću WRAPROWS ili WRAPCOLS.
Na primjer, da biste spojili vrijednosti iz 3 retka (B5:J5, B7:G7 i B9:F9) i prelomite 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 redaka u 2D raspon gdje svaki red sadrži 5 vrijednosti, formula ima ovaj oblik:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
C kombinirajte više stupaca u 2D niz
Da biste spojili nekoliko stupaca u 2D raspon, prvo ih složite okomito pomoću funkcije VSTACK, a zatim zamotajte vrijednosti u retke (WRAPROWS) ili stupce (WRAPCOLS).
Na primjer, za kombiniranje vrijednosti iz 3 stupca (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 stupce u 2D raspon gdje svaki redak sadrži 5 vrijednosti, upotrijebite ovu formulu:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
Prelomi i sortiraj niz
U situaciji kada izvorni raspon ima vrijednosti u nasumičnim redoslijedom dok želite da izlaz bude sortiran, nastavite na ovaj način:
- Sortirajte početni niz onako kako želite pomoću funkcije SORT.
- Dostavite sortirani niz WRAPCOLS-u ili WRAPROWS.
Na primjer, za omotavanje raspona B4:B23 u retke, 4 vrijednosti u svakom, i sortiranje rezultirajućeg raspona od A do Z, izradite formulu poput ove:
=WRAPROWS(SORT(B4:B23), 4)
Za omotavanje istog raspona u stupce, 10 vrijednosti u svakom, i sortiranje izlaza po abecedi, formula je:
=WRAPCOLS(SORT(B4:B23), 10)
Rezultati izgledaju kako slijedi :
Savjet. Da biste rasporedili vrijednosti u rezultirajućem nizu silaznim redoslijedom , postavite treći argument ( sort_order ) funkcije SORT na -1.
WRAPCOLS alternativa za Excel 365 - 2010
U starijim verzijama programa Excel gdje funkcija WRAPCOLS nije podržana, možete izgraditi vlastitu formulu za prelamanje vrijednosti iz jednodimenzionalnog niza u stupce. To se može učiniti korištenjem 5 različitih funkcija zajedno.
WRAPCOLS alternativa za pretvaranje retka u 2D raspon:
IFERROR(IF(ROW(A1)> n , "" , INDEX( row_range , , ROW(A1) + (COLUMN(A1)-1)* n )), "")WRAPCOLS alternativa za pretvaranje stupca u 2D raspon:
IFERROR(IF(RED(A1)> n ,"", INDEX( column_range , ROW(A1) + (COLUMN(A1)-1)* n )), "")Gdje je n je najveći broj vrijednosti po stupcu.
Na donjoj slici koristimo sljedeću formulu za pretvaranje raspona od jednog retka (D4:J4) u niz od tri retka.
=IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) + (COLUMN(A1)-1)*3)), "")
A ova formula mijenja raspon od jednog stupca (B4:B20) u niz od pet redaka:
=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 stanica. Dakle, naša prva formula je unesena u D8 i kopirana 3 retka prema dolje i 3 stupca udesno. Druga formula se unosi u D14 i kopira 5 redaka prema dolje i 4 stupca udesno.
Kako ove formule rade
U središtu obje formule koristimo funkciju INDEX koja vraća vrijednost iz priloženog niza na temelju broja retka i stupca:
INDEX(array, row_num, [column_num])Budući da imamo posla s nizom od jednog retka, možemo izostaviti argument row_num , tako da je zadana vrijednost 1. Trik je u tome da col_num izračunava se automatski za svaku ćeliju u koju je formula kopirana. Evo kako to radimo:
ROW(A1)+(COLUMN(A1)-1)*3)
Funkcija ROW vraća broj retka reference A1, što je 1.
Funkcija COLUMN vraća broj stupcareferenca A1, koja je također 1. Oduzimanje 1 pretvara ga u nulu. A množenje 0 s 3 daje 0.
Zatim zbrajate 1 vraćen od ROW i 0 vraćen od COLUMN i dobijete 1 kao rezultat.
Na ovaj način, INDEX formula u gornjem -lijeva ćelija odredišnog raspona (D8) prolazi 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 polja, što je "Jabuke" u D4.
Kada se formula kopira u ćeliju D9, relativne reference ćelije mijenjaju se na temelju 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, koji je "Apricots" u E4.
Funkcija IF provjerava broj retka i ako je veći od broja redaka 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 ispravlja #REF! pogreška koja se javlja kada se formula kopira u više ćelija nego što je stvarno potrebno.
Druga formula koja pretvara stupac u 2D raspon radi s istom logikom. Razlika je u tome što koristite kombinaciju REDAK + STUPAC da biste izračunali row_num argument za INDEX. Parametar col_num nije potreban u ovom slučaju jer postoji samojedan stupac u izvornom nizu.
Alternativa WRAPROWS za Excel 365 - 2010
Za prelamanje vrijednosti iz jednodimenzionalnog niza u retke u programu Excel 2019 i starijim verzijama, možete koristiti sljedeće alternative funkciji WRAPROWS.
Pretvorite red u 2D raspon:
IFERROR(IF(COLUMN(A1)> n , "", INDEX( row_range , , COLUMN(A1)+(ROW(A1)-1)* n )), "")Promjena stupca u 2D raspon:
IFERROR(IF( COLUMN(A1)> n , "", INDEX( column_range , COLUMN(A1)+(RED(A1)-1)* n )) , "")Gdje je n najveći broj vrijednosti po retku.
U našem uzorku skupa podataka koristimo sljedeću formulu za pretvaranje raspona od jednog retka (D4 :J4) u raspon od tri stupca. Formula dolazi u ćeliju D8, a zatim se kopira u 3 stupca i 3 retka.
=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 donju formulu u D14 i povucite je preko 5 stupaca i 4 retka.
=IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1)+(ROW(A1)-1)*5)), "")
U programu Excel 365 isti se rezultati mogu postići s ekvivalentnim WRAPCOLS formulama:
=WRAPROWS(D4:J4, 3, "")
i
=WRAPROWS(B4:B20, 5, "")
Kako ove formule rade
U biti, ove formule rade kao u prethodnom primjeru. Razlika je u tome kako određujete koordinate row_num i col_num za funkciju INDEX:
INDEX($D$4:$J$4,, COLUMN(A1)+(ROW(A1)-1)*3))
Da biste dobili broj stupca za gornji lijeva ćelija u odredišnom rasponu (D8), koristite ovoizraz:
COLUMN(A1)+(ROW(A1)-1)*3)
koji se mijenja u:
1+(1-1)*3
i daje 1.
Kao rezultat, formula u nastavku vraća vrijednost iz prvog stupca navedenog polja, a to je "Jabuke":
INDEX($D$4:$J$4,, 1)
Do sada je rezultat isti kao u prethodnom primjer. Ali da vidimo što se događa u drugim ćelijama...
U ćeliji D9, relativne reference ćelija mijenjaju se na sljedeći način:
INDEX($D$4:$J$4,, COLUMN(A2)+(ROW(A2)-1)*3))
Dakle, formula se pretvara 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 polja, što je "Trešnje" u G4.
Funkcija IF provjerava broj stupca i ako je veći od broja stupaca koji ste naveli, vraća prazan niz (""), inače rezultat funkcije INDEX:
IF(COLUMN(A1)>3, "", INDEX(…))
Kao završni detalj, IFERROR sprječava #REF! pogreške zbog pojavljivanja u "dodatnim" ćelijama ako kopirate formulu u više ćelija nego što je stvarno potrebno.
Funkcija WRAPCOLS ili WRAPROWS ne radi
Ako funkcije "preloma" nisu dostupne u vašem Excelu ili rezultira pogreškom, to je najvjerojatnije jedan od dolje navedenih razloga.
#NAME? error
U programu Excel 365, #NAME? može doći do pogreške jer ste pogrešno napisali naziv funkcije. U drugim verzijama označava da funkcije nisu podržane. Kao zaobilazno rješenje, možete koristiti alternativu WRAPCOLS ili alternativu WRAPROWS.
#VALUE! pogreška
Pogreška #VALUE javlja se ako