Преглед садржаја
Најбржи начин да се колона или ред вредности трансформише у дводимензионални низ је коришћење функције ВРАПЦОЛС или ВРАПРОВС.
Од најранијих дана Екцел-а, веома добар у израчунавању и анализи бројева. Али манипулисање низовима је традиционално представљало изазов. Увођење динамичких низова је знатно олакшало употребу формула низа. А сада, Мицрософт објављује скуп нових функција динамичког низа за манипулацију и преобликовање низова. Овај водич ће вас научити како да користите две такве функције, ВРАПЦОЛС и ВРАПРОВС, да трансформишете колону или ред у 2Д низ за кратко време.
Екцел функција ВРАПЦОЛС
Функција ВРАПЦОЛС у Екцел-у трансформише ред или колону вредности у дводимензионални низ на основу наведеног броја вредности по реду.
Синтакса има следеће аргументе:
ВРАПЦОЛС(вецтор, врап_цоунт, [пад_витх])Где:
- вецтор (обавезно) - изворни једнодимензионални низ или опсег.
- врап_цоунт (обавезно) - максимални број вредности по колони.
- пад_витх (опционо) - вредност коју треба додати последњом колоном ако нема довољно ставки за попуњавање. Ако се изостави, вредности које недостају биће допуњене са #Н/А (подразумевано).
На пример, да бисте променили опсег Б5:Б24 у 2-димензионални низ са 5 вредности по колони, формула је:
=WRAPROWS(B5:B24, 5)
Унеситеаргумент вецтор није једнодимензионални низ.
#НУМ! еррор
Дошло је до грешке #НУМ ако је вредност врап_цоунт 0 или негативан број.
#СПИЛЛ! еррор
Најчешће, #СПИЛЛ грешка указује на то да нема довољно празних ћелија у које би се прелили резултати. Очистите суседне ћелије и нестаће. Ако грешка и даље постоји, погледајте шта #СПИЛЛ значи у Екцел-у и како да то поправите.
Тако можете користити функције ВРАПЦОЛС и ВРАПРОВС да конвертујете једнодимензионални опсег у дводимензионални низ у Екцел-у. Захваљујем вам на читању и надам се да се видимо на нашем блогу следеће недеље!
Вежбање за преузимање
ВРАПЦОЛС и ВРАПРОВС функције - примери (.клск датотека)
формуле у било којој појединачној ћелији и она се аутоматски прелива у онолико ћелија колико је потребно. У ВРАПЦОЛС излазу, вредности су распоређене вертикално, од врха до дна, на основу вредности врап_цоунт. Након што је број достигнут, покреће се нова колона.
Екцел функција ВРАПРОВС
Функција ВРАПРОВС у Екцел-у конвертује ред или колону вредности у дводимензионални низ на основу броја вредности по реду који наведете.
Синтакса је следећа:
ВРАПРОВС(вецтор, врап_цоунт, [пад_витх])Где:
- вецтор (обавезно) - изворни једнодимензионални низ или опсег.
- врап_цоунт (обавезно) - максимални број вредности по реду.
- пад_витх (опционо) - вредност за пад са последњим редом ако нема довољно ставки за попуњавање. Подразумевано је #Н/А.
На пример, да бисте трансформисали опсег Б5:Б24 у 2Д низ који има 5 вредности у сваком реду, формула је:
=WRAPROWS(B5:B24, 5)
Унесите формулу у горњу леву ћелију опсега просипања и она аутоматски попуњава све остале ћелије. Функција ВРАПРОВС распоређује вредности хоризонтално, с лева на десно, на основу вредности врап_цоунт . Након достизања бројања, почиње нови ред.
Доступност ВРАПЦОЛС и ВРАПРОВС
Обе функције су доступне само у програму Екцел за Мицрософт 365 (Виндовс и Мац) и Екцел за веб.
Ранијеверзије, можете користити традиционалне сложеније формуле за извођење трансформација колона-низ и ред-низ. Даље, у овом водичу, детаљно ћемо разговарати о алтернативним решењима.
Савет. Да бисте извршили обрнуту операцију, тј. променили 2Д низ у једну колону или ред, користите функцију ТОЦОЛ или ТОРОВ, респективно.
Како претворити колону/ред у опсег у Екцел-у - примери
Сада када сте схватили основну употребу, хајде да детаљније погледамо неколико конкретнијих случајева.
Подесите максимални број вредности по колони или реду
У зависности од структуру ваших оригиналних података, можда ћете сматрати погодним да се поново распоредите у колоне (ВРАПЦОЛС) или редове (ВРАПРОВС). Коју год функцију да користите, аргумент врап_цоунт одређује максималан број вредности у свакој колони/реду.
На пример, да бисте трансформисали опсег Б4:Б23 у 2Д низ, тако да свака колона има највише 10 вредности, користите ову формулу:
=WRAPCOLS(B4:B23, 10)
Да бисте преуредили исти опсег по ред, тако да сваки ред има највише 4 вредности, формула је :
=WRAPROWS(B4:B23, 4)
Слика испод показује како ово изгледа:
Вредности недостају у резултујућем низу
У случају да нема довољно вредности за попуњавање све колоне/редове резултујућег опсега, ВРАПРОВС и ВРАПЦОЛС ће вратити #Н/А грешке да би задржали структуру 2Д низа.
Да бисте променили подразумеванипонашања, можете да обезбедите прилагођену вредност за опциони аргумент пад_витх .
На пример, да бисте трансформисали опсег Б4:Б21 у 2Д низ са максимално 5 вредности ширине и додали последњи ред са цртицама ако нема довољно података за попуњавање, користите ову формулу:
=WRAPROWS(B4:B21, 5, "-")
Да бисте заменили недостајуће вредности стринговима нулте дужине (празним деловима), формула је:
=WRAPROWS(B4:B21, 5, "")
Упоредите резултате са подразумеваним понашањем (формула у Д5) где је пад_витх изостављено:
Споји више редова у 2Д опсег
Да бисте комбиновали неколико одвојених редова у један 2Д низ, прво сложите редове хоризонтално користећи ХСТАЦК функцију, а затим премотате вредности помоћу ВРАПРОВС или ВРАПЦОЛС.
На пример, да бисте спојили вредности из 3 реда (Б5:Ј5, Б7:Г7 и Б9:Ф9) и умотајте у колоне, од којих свака садржи 10 вредности, формула је:
=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)
Да бисте комбиновали вредности из више редова у 2Д опсег где сваки ред садржи 5 вредности, формула има овај облик:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
Ц комбинујте више колона у 2Д низ
Да бисте спојили неколико колона у 2Д опсег, прво их сложите вертикално користећи ВСТАЦК функцију, а затим умотајте вредности у редове (ВРАПРОВС) или колоне (ВРАПЦОЛС).
На пример, да бисте комбиновали вредности из 3 колоне (Б5:Ј5, Б7:Г7 и Б9:Ф9) у 2Д опсег где свака колона садржи 10 вредности, формула је:
=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)
За комбиновањеисте колоне у 2Д опсег где сваки ред садржи 5 вредности, користите ову формулу:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
Обмотајте и сортирајте низ
У ситуацији када изворни опсег има вредности у насумичним редоследом док желите да се излаз сортира, поступите на следећи начин:
- Сортирај почетни низ на начин на који желиш користећи СОРТ функцију.
- Достави сортирани низ у ВРАПЦОЛС или ВРАПРОВС.
На пример, да бисте умотали опсег Б4:Б23 у редове, по 4 вредности у сваком, и сортирали резултујући опсег од А до З, конструишите формулу попут ове:
=WRAPROWS(SORT(B4:B23), 4)
Да бисте умотали исти опсег у колоне, по 10 вредности у свакој, и сортирали излаз по абецедном реду, формула је:
=WRAPCOLS(SORT(B4:B23), 10)
Резултати изгледају овако :
Савет. Да бисте распоредили вредности у резултирајућем низу у опадајућем редоследу , подесите трећи аргумент ( сорт_ордер ) функције СОРТ на -1.
ВРАПЦОЛС алтернатива за Екцел 365 - 2010
У старијим верзијама Екцел-а у којима функција ВРАПЦОЛС није подржана, можете да направите сопствену формулу да премотате вредности из једнодимензионалног низа у колоне. Ово се може урадити коришћењем 5 различитих функција заједно.
ВРАПЦОЛС алтернатива за претварање реда у 2Д опсег:
ИФЕРРОР(ИФ(РОВ(А1)&гт; н , "" , ИНДЕКС( опсег_редова , , РОВ(А1) + (ЦОЛУМН(А1)-1)* н )), "")ВРАПЦОЛС алтернатива за претварање колоне у 2Д опсег:
ИФЕРРОР(ИФ(РОВ(А1)&гт; н ,"", ИНДЕКС( опсег_колоне , РОВ(А1) + (ЦОЛУМН(А1)-1)* н )), "")Где н је максимални број вредности по колони.
На слици испод користимо следећу формулу да претворимо опсег од једног реда (Д4:Ј4) у низ од три реда.
=IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) + (COLUMN(A1)-1)*3)), "")
И ова формула мења опсег од једне колоне (Б4:Б20) у низ од пет редова:
=IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) + (COLUMN(A1)-1)*5)), "")
Горња решења опонашају аналогне ВРАПЦОЛС формуле и дају исте резултате:
=WRAPCOLS(D4:J4, 3, "")
и
=WRAPCOLS(B4:B20, 5, "")
Имајте на уму да за разлику од функције динамичког низа ВРАПЦОЛС, традиционалне формуле следе приступ једна формула-једна ћелија. Дакле, наша прва формула је унета у Д8 и копирана 3 реда надоле и 3 колоне удесно. Друга формула се уноси у Д14 и копира 5 редова надоле и 4 колоне удесно.
Како функционишу ове формуле
У срцу обе формуле користимо функцију ИНДЕКС која враћа вредност из испорученог низа на основу броја реда и колоне:
ИНДЕКС(низ, број_реда, [број_колоне])Како имамо посла са низом од једног реда, можемо изоставити аргумент број_реда , тако да је он подразумевано постављен на 1. Трик је да имамо број_колца израчунава се аутоматски за сваку ћелију у коју се формула копира. А ево како то радимо:
ROW(A1)+(COLUMN(A1)-1)*3)
Функција РОВ враћа број реда А1 референце, који је 1.
Функција ЦОЛУМН враћа број колонереференцу А1, која је такође 1. Одузимањем 1 се претвара у нулу. И множењем 0 са 3 добија се 0.
Затим сабирате 1 који враћа РОВ и 0 враћа ЦОЛУМН и добијате 1 као резултат.
На овај начин, формула ИНДЕКСА у горњем делу -лева ћелија одредишног опсега (Д8) пролази кроз ову трансформацију:
INDEX($D$4:$J$4, ,ROW(A1) + (COLUMN(A1)-1)*3))
се мења у
INDEX($D$4:$J$4, ,1)
и враћа вредност из 1. колоне наведеног низа, а то је „Јабуке“ у Д4.
Када се формула копира у ћелију Д9, релативне референце ћелије се мењају на основу релативног положаја редова и колона, док апсолутна референца опсега остаје непромењена:
INDEX($D$4:$J$4,, ROW(A2)+(COLUMN(A2)-1)*3))
претвара се у:
INDEX($D$4:$J$4,, 2+(1-1)*3))
постаје:
INDEX($D$4:$J$4,, 2))
и враћа вредност из 2. колона наведеног низа, а то је "кајсије" у Е4.
Функција ИФ проверава број реда и ако је већи од броја редова који сте навели (3 у нашем случају) враћа празан стринг ( ""), иначе резултат функције ИНДЕКС:
IF(ROW(A1)>3, "", INDEX(…))
Коначно, функција ИФЕРРОР поправља #РЕФ! грешка која се јавља када се формула копира у више ћелија него што је заиста потребно.
Друга формула која конвертује колону у 2Д опсег ради са истом логиком. Разлика је у томе што користите комбинацију РОВ + ЦОЛУМН да бисте открили аргумент ред_нум за ИНДЕКС. Параметар цол_нум није потребан у овом случају јер постоји самоједну колону у изворном низу.
ВРАПРОВС алтернатива за Екцел 365 - 2010
Да бисте премотали вредности из једнодимензионалног низа у редове у програму Екцел 2019 и раније, можете да користите следеће алтернативе функцији ВРАПРОВС.
Трансформишите ред у 2Д опсег:
ИФЕРРОР(ИФ(ЦОЛУМН(А1)&гт; н , "", ИНДЕКС( ров_ранге , , ЦОЛУМН(А1)+(РОВ(А1)-1)* н )), "")Промените колону у 2Д опсег:
ИФЕРРОР(ИФ( ЦОЛУМН(А1)&гт; н , "", ИНДЕКС( опсег_колоне , ЦОЛУМН(А1)+(РОВ(А1)-1)* н )) , "")Где је н максимални број вредности по реду.
У нашем скупу података узорка користимо следећу формулу да конвертујемо опсег у једном реду (Д4 :Ј4) у распон од три колоне. Формула долази у ћелију Д8, а затим се копира у 3 колоне и 3 реда.
=IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1)+(ROW(A1)-1)*3)), "")
Да бисте преобликовали опсег од 1 колоне (Б4:Б20) у опсег од 5 колона, унесите формулу испод у Д14 и превуците је преко 5 колона и 4 реда.
=IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1)+(ROW(A1)-1)*5)), "")
У програму Екцел 365, исти резултати се могу постићи помоћу еквивалентних ВРАПЦОЛС формула:
=WRAPROWS(D4:J4, 3, "")
и
=WRAPROWS(B4:B20, 5, "")
Како ове формуле функционишу
У суштини, ове формуле функционишу као у претходном примеру. Разлика је у томе како одређујете координате број_реда и број_колца за функцију ИНДЕКС:
INDEX($D$4:$J$4,, COLUMN(A1)+(ROW(A1)-1)*3))
Да бисте добили број колоне за горњи лева ћелија у опсегу одредишта (Д8), користите овоизраз:
COLUMN(A1)+(ROW(A1)-1)*3)
који се мења у:
1+(1-1)*3
и даје 1.
Као резултат, формула испод враћа вредност из прве колоне наведеног низа, а то је „Јабуке“:
INDEX($D$4:$J$4,, 1)
До сада је резултат исти као у претходном пример. Али хајде да видимо шта се дешава у другим ћелијама...
У ћелији Д9, релативне референце ћелије се мењају на следећи начин:
INDEX($D$4:$J$4,, COLUMN(A2)+(ROW(A2)-1)*3))
Дакле, формула се трансформише у:
INDEX($D$4:$J$4,, 1+(2-1)*3))
постаје:
INDEX($D$4:$J$4,, 4))
и враћа вредност из 4. колоне наведеног низа, а то је „Трешње“ у Г4.
Функција ИФ проверава број колоне и ако је већи од броја колона који сте навели, враћа празан стринг (""), у супротном резултат функције ИНДЕКС:
IF(COLUMN(A1)>3, "", INDEX(…))
Као завршни додир, ИФЕРРОР спречава #РЕФ! грешке од појављивања у „додатним“ ћелијама ако копирате формулу у више ћелија него што је стварно потребно.
Функција ВРАПЦОЛС или ВРАПРОВС не ради
Ако функције „премотавања“ нису доступне у вашем Екцел-у или доводе до грешке, највероватније је то један од доле наведених разлога.
#НАМЕ? еррор
У програму Екцел 365, #НАМЕ? може доћи до грешке јер сте погрешно написали име функције. У другим верзијама то означава да функције нису подржане. Као заобилазно решење, можете користити ВРАПЦОЛС алтернативу или ВРАПРОВС алтернативу.
#ВАЛУЕ! еррор
Грешка #ВАЛУЕ се јавља ако