Sadržaj
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:
- Sortirajte početni niz na način na koji želite pomoću funkcije SORT.
- 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