Преглед садржаја
Брз начин да се низ ћелија претвори у један ред уз помоћ функције ТОРОВ .
Мицрософт Екцел 365 је увео неколико нових функција за обављање разних манипулација са низовима. Помоћу ТОРОВ-а можете да извршите трансформације опсега у ред за кратко време. Ево листе задатака које ова нова функција може да изврши:
Екцел функција ТОРОВ
Функција ТОРОВ у Екцел-у се користи за претварање низа или опсега ћелија у један ред.
Функција узима укупно три аргумента, од којих је потребан само први.
ТОРОВ(низ, [игнорирај], [скенирање_по_колони])Где:
Низ (обавезно) – низ или опсег који се трансформише у један ред.
Игнориши (опционо) – одређује да ли да се игноришу празнине или/и грешке. Може узети једну од ових вредности:
- 0 или изостављено (подразумевано) - задржати све вредности
- 1 - игнорисати празна места
- 2 - игнорисати грешке
- 3 - занемари празна места и грешке
Скенирај_по_колони (опционо) - дефинише како да се скенира низ:
- ФАЛСЕ или изостављен (подразумевано) - скенирајте низ хоризонтално по реду.
- ТРУЕ - скенирајте низ вертикално по колони.
Савети:
- Да трансформишете низ у једну колону, користите функцију ТОЦОЛ.
- Да бисте извршили обрнуту трансформацију ред у низ, користите или функцију ВРАПЦОЛС за премотавање у колоне или функцију ВРАПРОВС за премотавањениз у редове.
- Да бисте редове претворили у колоне, користите функцију ТРАНСПОСЕ.
ТОРОВ доступност
ТОРОВ је нова функција, која је подржана само у Екцел-у за Мицрософт 365 (за Виндовс и Мац) и Екцел за веб.
Основна формула ТОРОВ у Екцел-у
Да бисте извршили једноставну трансформацију опсега у ред, користите формулу ТОРОВ у свом основном облику. За ово је потребно да дефинишете само први аргумент ( низ ).
На пример, да бисте дводимензионални низ који се састоји од 3 колоне и 3 реда претворили у један ред, формула је:
=TOROW(A3:C6)
Формулу уносите у само једну ћелију (А10 у нашем случају), и она се аутоматски прелива у онолико ћелија колико је потребно да задржи све резултате. У Екцел терминима, опсег излаза окружен танким плавим оквиром назива се опсег просипања.
Како ова формула функционише:
Прво, испоручени опсег ћелија се трансформише у дводимензионални низ. Обратите пажњу на колоне раздвојене зарезима и редове раздвојене тачком и зарезом:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Затим функција ТОРОВ чита низ с лева на десно и претвара га у једнодимензионални хоризонтални низ:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Резултат иде у ћелију А10, из које се прелива у суседну ћелију са десне стране.
Трансформишите опсег у ред игноришући празнине и грешке
Подразумевано, функција ТОРОВ чува све вредности из изворног низа, укључујући празне ћелије игрешке. У излазу се нулте вредности појављују на месту празних ћелија, што може бити прилично збуњујуће.
Да бисте изузели празна места , поставите аргумент игноре на 1:
=TOROW(A3:C5, 1)
Да бисте игнорирали грешке , поставите аргумент игноре на 2:
=TOROW(A3:C5, 2)
Да бисте прескочили и празнине и грешке , користите 3 за аргумент игноре :
=TOROW(A3:C5, 3)
Слика испод приказује сва три сценарија у акцији:
Читање низа хоризонтално или вертикално
Са подразумеваним понашањем, функција ТОРОВ обрађује низ хоризонтално с лева на десно. Да бисте скенирали вредности по колонама од врха до дна, постављате 3. аргумент ( сцан_би_цолумн ) на ТРУЕ или 1.
На пример, да бисте прочитали изворни опсег по реду, формулу у Е3 је:
=TOROW(A3:C5)
Да бисте скенирали опсег по колони, формула у Е8 је:
=TOROW(A3:C5, ,TRUE)
У оба случаја, резултујући низови су исте величине, али су вредности распоређене другачијим редоследом.
Споји више опсега у један ред
Да бисте комбиновали неколико несуседних опсега у један ред, прво их сложите хоризонтално или вертикално у један низ уз помоћ ХСТАЦК или ВСТАЦК, респективно , а затим користите функцију ТОРОВ да конвертујете комбиновани низ у ред.
У зависности од ваше пословне логике, једна од следећих формула ће извршити задатак.
Слагати низове хоризонтално и конвертовати по ред
Са првимопсег у А3:Ц4 и други опсег у А8:Ц9, формула испод ће сложити два опсега хоризонтално у један низ, а затим га трансформисати у ред који чита вредности с лева на десно. Резултат је у Е3 на слици испод.
=TOROW(HSTACK(A3:C4, A8:C9))
Стакните низове хоризонтално и конвертујте по колони
Да бисте прочитали наслагани низ вертикално од врха до дна, постављате 3. аргумент ТОРОВ на ТРУЕ као што је приказано на Е5 на слици испод:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Стакните низове вертикално и конвертујте по реду
Да бисте додали сваки следећи низ на дно претходног низа и прочитајте комбиновани низ хоризонтално, формула у Е12 је:
=TOROW(VSTACK(A3:C4, A8:C9))
Стакните низове вертикално и конвертујте по колони
Да бисте сваки следећи низ додали на дно претходног и скенирали комбиновани низ вертикално, формула је:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Да бисте боље разумели логику, посматрајте другачији редослед вредности у резултујући низови:
Извуците јединствене вредности из опсега у ред
Почевши од Мицрософт Екцел 2016, имамо дивну функцију, названу УНИКУЕ, која лако може да добије јединствене вредности из једне колоне или ред. Међутим, не може да обрађује низове са више колона. Да бисте превазишли ово ограничење, користите функције УНИКУЕ и ТОРОВ заједно.
На пример, да бисте издвојили све различите (различите) вредности из опсега А2:Ц7 и поставили резултате у један ред,формула је:
=UNIQUE(TOROW(A2:C7), TRUE)
Како ТОРОВ враћа једнодимензионални хоризонтални низ, поставили смо 2. ( би_цол ) аргумент УНИКУЕ на ТРУЕ да бисмо упоредили колоне са сваким остало.
У случају да желите резултате поређане по абецедном реду, умотајте горњу формулу у функцију СОРТ:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Као и код УНИКУЕ, би_цол аргумент СОРТ-а је такође постављен на ТРУЕ.
Алтернатива ТОРОВ за Екцел 365 - 2010
У верзијама програма Екцел где функција ТОРОВ није доступна, можете да трансформишете опсег у један ред користећи комбинацију неколико различитих функција које раде у старије верзије. Ова решења су сложенија, али функционишу.
Да бисте скенирали опсег хоризонтално, генеричка формула је:
ИНДЕКС( опсег , КВОТИЕНТ(ЦОЛУМН (А1)-1, ЦОЛУМНС( опсег ))+1, МОД(ЦОЛУМН(А1)-1, ЦОЛУМНС( опсег ))+1)Да бисте скенирали опсег вертикално, генеричка формула је :
ИНДЕКС( опсег , МОД(ЦОЛУМН(А1)-1, ЦОЛУМНС( опсег ))+1, КВОТИЕНТ(ЦОЛУМН (А1)-1, ЦОЛУМНС(<15)>опсег ))+1)За наш пример скупа података у А3:Ц5, формуле имају овај облик:
Да бисте скенирали опсег по реду:
=INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)
Ова формула је алтернатива функцији ТОРОВ са 3. аргументом постављеним на ФАЛСЕ или изостављеним:
=TOROW(A3:C5)
Да бисте скенирали опсег према колона:
=INDEX($A$3:$C$5, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)
Ова формула је еквивалентна функцији ТОРОВ са 3. аргументом постављеним наТАЧНО:
=TOROW(A3:C5, ,TRUE)
Имајте на уму да за разлику од функције динамичког низа ТОРОВ, ове традиционалне формуле треба унети у сваку ћелију у којој желите да се прикажу резултати. У нашем случају, прва формула (по реду) иде у Е3 и копира се кроз М3. Друга формула (по колони) долази у Е8 и превлачи се кроз М8.
Да би се формуле исправно копирале, закључавамо опсег користећи апсолутне референце ($А$3:$Ц$5). Именовани опсег ће такође бити добар.
Ако сте копирали формуле у више ћелија него што је потребно, #РЕФ! грешка ће се појавити у "додатним" ћелијама. Да бисте ово поправили, умотајте своју формулу у функцију ИФЕРРОР на следећи начин:
=IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1), "")
Како ове формуле функционишу
У наставку је детаљан преглед прве формуле која распоређује вредности по реду:
=INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)
У срцу формуле, користимо функцију ИНДЕКС да бисмо добили вредност ћелије на основу њеног релативног положаја у опсег.
број реда се израчунава по овој формули:
QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1
Идеја је да се произведе низ бројева који се понавља као што је 1,1 ,1,2,2,2,3,3,3, … где се сваки број понавља онолико пута колико има колона у изворном опсегу. А ево како то радимо:
КУОТИЕНТ враћа целобројни део дељења.
За бројилац користимо ЦОЛУМН(А1)-1, који враћа серијски број од 0 у првој ћелији у коју је формула унета до н (укупан број вредности у опсегуминус 1) у последњој ћелији у коју је унета формула у. У овом примеру имамо 0 у Е2 и 8 у М3.
За именилац користимо ЦОЛУМНС($А$3:$Ц$5)). Ово враћа константан број једнак броју колона у вашем опсегу (3 у нашем случају).
Као резултат, функција КУОТИЕНТ враћа 0 у прве 3 ћелије (Е3:Г3), на које смо додајте 1, тако да је број реда 1.
За следеће 3 ћелије (Х3:Ј3), КУОТИЕНТ враћа 1, а +1 даје ред број 2. И тако даље.
Да бисте израчунали број колоне , градите одговарајући низ бројева користећи МОД функцију:
MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1
Пошто у нашем опсегу постоје 3 колоне, секвенца мора изгледати као : 1,2,3,1,2,3,…
Функција МОД враћа остатак након дељења.
У Е3, МОД(ЦОЛУМН(А1)-1, ЦОЛУМНС($ А$3:$Ц$5))+
постаје
МОД(1-1, 3)+1)
и враћа 1.
У Ф3, МОД(ЦОЛУМН(Б1)-1, ЦОЛУМНС($А$3:$Ц$5))+
постаје
МОД(2-1, 3)+1)
и враћа 2.
Када се утврде бројеви редова и колона, ИНДЕКС лако преузима вредност на пресеку тог реда и колоне.
У Е3, ИНДЕКС($А$3 :$Ц$5, 1, 1) враћа вредност из 1. реда и 1. колоне референтног опсега, тј. из ћелије А3.
У Ф3, ИНДЕКС($А$3:$Ц$5, 1, 2) враћа вредност из 1. реда и 2. колоне, тј. из ћелије Б3.
И тако даље.
Друга формула која скенира опсег по колони ради усличан начин. Разлика је у томе што користимо МОД да израчунамо број реда и КУОТИЕНТ да одредимо број колоне.
Функција ТОРОВ не ради
Ако функција ТОРОВ резултира грешком, то је највероватније један од ових разлога:
#НАМЕ? еррор
Са већином Екцел функција, #НАМЕ? грешка је јасан показатељ да је име функције погрешно написано. Са ТОРОВ, то такође може значити да функција није доступна у вашем Екцел-у. Ако ваша Екцел верзија није 365, покушајте да користите алтернативу ТОРОВ.
#НУМ еррор
Грешка #НУМ означава да враћени низ не може да стане у ред. Најчешће се то дешава када референцирате целе колоне и/или редове уместо мањег опсега.
#СПИЛЛ еррор
У већини случајева, #СПИЛЛ грешка сугерише да ред где коју сте унели у формулу нема довољно празних ћелија у које би просули резултате. Ако су суседне ћелије визуелно празне, уверите се да у њима нема размака или других знакова који се не штампају. За више информација погледајте Шта значи грешка #СПИЛЛ у Екцел-у.
Тако користите функцију ТОРОВ у Екцел-у да конвертујете 2-димензионални низ или опсег у један ред. Захваљујем вам на читању и надам се да се видимо на нашем блогу следеће недеље!
Вежбање за преузимање
Екцел функција ТОРОВ - примери формуле (.клск датотека)