Конвертујте колону/ред у низ у Екцел-у: ВРАПЦОЛС &амп; ВРАПРОВС функције

  • Деле Ово
Michael Brown

Најбржи начин да се колона или ред вредности трансформише у дводимензионални низ је коришћење функције ВРАПЦОЛС или ВРАПРОВС.

Од најранијих дана Екцел-а, веома добар у израчунавању и анализи бројева. Али манипулисање низовима је традиционално представљало изазов. Увођење динамичких низова је знатно олакшало употребу формула низа. А сада, Мицрософт објављује скуп нових функција динамичког низа за манипулацију и преобликовање низова. Овај водич ће вас научити како да користите две такве функције, ВРАПЦОЛС и ВРАПРОВС, да трансформишете колону или ред у 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)

Обмотајте и сортирајте низ

У ситуацији када изворни опсег има вредности у насумичним редоследом док желите да се излаз сортира, поступите на следећи начин:

  1. Сортирај почетни низ на начин на који желиш користећи СОРТ функцију.
  2. Достави сортирани низ у ВРАПЦОЛС или ВРАПРОВС.

На пример, да бисте умотали опсег Б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, #НАМЕ? може доћи до грешке јер сте погрешно написали име функције. У другим верзијама то означава да функције нису подржане. Као заобилазно решење, можете користити ВРАПЦОЛС алтернативу или ВРАПРОВС алтернативу.

#ВАЛУЕ! еррор

Грешка #ВАЛУЕ се јавља ако

Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.