Преглед садржаја
Водич показује различите начине за пребацивање редова у колоне у Екцел-у: формуле, ВБА код и посебан алат.
Транспоновање података у Екцел-у је задатак познат многим корисницима. Често правите сложену табелу само да бисте схватили да има савршеног смисла да је ротирате ради боље анализе или презентације података у графиконима.
У овом чланку ћете пронаћи неколико начина за претварање редова у колоне (или колоне у редове), како год да то назовете, то је иста ствар :) Ова решења функционишу у свим верзијама Екцел 2010 до Екцел 365, покривају многе могуће сценарије и објашњавају најчешће грешке.
Претворите редове у колоне у Екцел-у помоћу специјалног лепљења
Претпоставимо да имате скуп података сличан ономе што видите у горњем делу доње графике. Називи земаља су организовани у колоне, али листа земаља је предугачка, па би било боље да променимо колоне у редове како би табела стала на екран:
Да бисте променили редове у колоне, извршите ове кораке:
- Изаберите оригиналне податке. Да бисте брзо изабрали целу табелу, тј. све ћелије са подацима у табели, притисните Цтрл + Хоме, а затим Цтрл + Схифт + Енд .
- Копирајте изабране ћелије било десним кликом на избор и избором Копирај из контекстног менија или притиском на Цтрл + Ц .
- Изаберите прву ћелију одредишног опсега.
Обавезно изаберите ћелију којаиспробајте овај и 70+ других професионалних алата за Екцел, позивам вас да преузмете пробну верзију нашег Ултимате Суите-а. Хвала вам на читању и надам се да се видимо на нашем блогу следеће недеље!
спада ван опсега који садржи ваше оригиналне податке, тако да се области копирања и лепљења не преклапају. На пример, ако тренутно имате 4 колоне и 10 редова, конвертована табела ће имати 10 колона и 4 реда. - Кликните десним тастером миша на одредишну ћелију и изаберите Специјално налепи из контекстни мени, а затим изаберите Транспосе .
За више информација погледајте Како се користи специјално лепљење у Екцел-у.
Напомена. Ако ваши изворни подаци садрже формуле, обавезно користите релативне и апсолутне референце у зависности од тога да ли их треба прилагодити или остати закључане за одређене ћелије.
Као што сте управо видели, функција специјалног лепљења вам омогућава да извршите трансформације ред у колону (или колону у ред) буквално за неколико секунди. Овај метод такође копира форматирање ваших оригиналних података, што додаје још један аргумент у његову корист.
Међутим, овај приступ има две мане које спречавају да се назове савршеним решењем за транспоновање подаци у Екцел-у:
- Није погодан за ротирање потпуно функционалних Екцел табела. Ако копирате целу табелу, а затим отворите дијалог Специјално лепљење , видећете да је опција Транспоновање онемогућена. У овом случају, морате или да копирате табелу без заглавља колона или да је прво конвертујете у опсег.
- Специјално лепљење &гт; Транспоновање не повезује нови стоса оригиналним подацима, тако да је погодан само за једнократне конверзије. Кад год се изворни подаци промене, мораћете да поновите процес и поново ротирате табелу. Нико не би желео да губи време на мењање истих редова и колона изнова и изнова, зар не?
Како транспоновати табелу и повезати је са оригиналним подацима
Хајде да погледајте како можете да пребаците редове у колоне користећи познату технику Специјално лепљење , али повежите резултујућу табелу са оригиналним скупом података. Најбоља ствар у вези са овим приступом је да кад год промените податке у изворној табели, окренута табела ће одражавати промене и ажурирати се у складу са тим.
- Копирајте редове које желите да конвертујете у колоне (или колоне које треба променити у редове).
- Изаберите празну ћелију на истом или другом радном листу.
- Отворите дијалог Специјално лепљење , као што је објашњено у претходном примеру и кликните Налепите везу у доњи леви угао:
Имаћете резултат сличан овоме:
Ово ће вашу табелу претворити у нешто помало застрашујуће, као што видите на слици испод, али не паничите,само још 2 корака и постићи ћете жељени резултат.
Ово је мало дугачко, али елегантно решење, зар не? Једини недостатак овог приступа је то што се оригинално форматирање губи током процеса и мораћете да га вратите ручно (показаћу вам брз начин да то урадите даље у овом водичу).
Како то учинити. за транспоновање у Екцел-у помоћу формула
Бржи начин за динамичко пребацивање колона у редове у Екцел-у је коришћење формуле ТРАНСПОЗЕ или ИНДЕКС/АДРЕСА. Као и претходни пример, ове формуле такође задржавају везе са оригиналним подацима, али функционишу мало другачије.
Промените редове у колоне у Екцел-у помоћу функције ТРАНСПОСЕ
Као што њено име сугерише, функција ТРАНСПОСЕ је специјално дизајниран за транспоновање података у Екцел-у:
=ТРАНСПОСЕ(арраи)У овом примеру ћемо конвертовати другу табелу која наводи америчке државе према становништву:
- Пребројите број редова и колона у оригиналној табели и изаберите исти број празних ћелија, али у другом смеру.
На пример, наша табела узорка има 7 колона и 6 редова, укључујућинаслови. Пошто ће функција ТРАНСПОСЕ променити колоне у редове, бирамо опсег од 6 колона и 7 редова.
- Са изабраним празним ћелијама, откуцајте ову формулу:
=TRANSPOSE(A1:G6)
- Пошто нашу формулу треба применити на више ћелија, притисните Цтрл + Схифт + Ентер да бисте је претворили у формулу низа.
Воила, колоне су промењено у редове, тачно онако како смо желели:
Предности функције ТРАНСПОСЕ:
Главна предност коришћења функције ТРАНСПОСЕ је да ротирана табела задржава везу са изворном табелом и кад год промените изворне податке, транспонована табела ће се променити у складу са тим.
Слабости функције ТРАНСПОСЕ:
- Оригинално обликовање табеле није сачувано у конвертованој табели, као што видите на слици изнад.
- Ако у оригиналној табели постоје празне ћелије, транспоноване ћелије ће уместо њих садржати 0. Да бисте ово поправили, користите ТРАНСПОСЕ у комбинацији са функцијом ИФ као што је објашњено у овом примеру: Како транспоновати без нула.
- Не можете уређивати ниједну ћелију у ротираној табели јер она у великој мери зависи од изворних података. Ако покушате да промените неку вредност ћелије, на крају ћете добити грешку „Не можете да промените део низа“.
Закључујемо, шта год да је добра и лака за коришћење функција ТРАНСПОСЕ , свакако му недостаје флексибилност и стога можда није најбољиначин да идете у многим ситуацијама.
За више информација, погледајте Екцел функцију ТРАНСПОСЕ са примерима.
Претворите ред у колону са функцијама ИНДИРЕКТНЕ и АДРЕСЕ
У овом примеру, користиће комбинацију две функције, што је мало незгодно. Дакле, хајде да ротирамо мању табелу да бисмо се боље фокусирали на формулу.
Претпоставимо да имате податке у 4 колоне (А - Д) и 5 редова (1 - 5):
Да би се колоне пребациле на редове, урадите следеће:
- Унесите формулу испод у крајњу леву ћелију одредишног опсега, рецимо А7, и притисните тастер Ентер :
=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))
- Копирајте формулу надесно и надоле у онолико редова и колона колико је потребно превлачењем малог црног крста у доњем десном углу изабраних ћелија:
То је то! У вашој новокреираној табели, све колоне су пребачене у редове.
Ако ваши подаци почињу у неком реду који није 1 и колони који није А, мораћете да користите мало сложенију формулу:
=INDIRECT(ADDRESS(COLUMN(A1) - COLUMN($A$1) + ROW($A$1), ROW(A1) - ROW($A$1) + COLUMN($A$1)))
Где је А1 најлева горња ћелија ваше изворне табеле. Такође, обратите пажњу на употребу апсолутних и релативних референци на ћелије.
Међутим, транспоноване ћелије изгледају веома једноставно и досадно, у поређењу са оригиналним подацима:
Али немојте се разочарати, овај проблем се лако може решити. Да бисте вратили оригинално форматирање, урадите следеће:
- Копирате оригиналтабелу.
- Изаберите резултујућу табелу.
- Кликните десним тастером миша на резултујућу табелу и изаберите Опције лепљења &гт; Форматирање .
Предности : Ова формула пружа флексибилнији начин претварања редова у колоне у Екцел-у. Омогућава уношење било каквих измена у транспоновану табелу јер користите редовну формулу, а не формулу низа.
Недостаци : Видим само један - форматирање редних података је изгубљено. Мада, можете је брзо вратити, као што је приказано изнад.
Како ова формула функционише
Сада када знате како да користите комбинацију ИНДИРЕКТНО/АДРЕСА, можда ћете желети да стекнете увид у то шта формула заправо ради.
Као што њено име каже, ИНДИРЕЦТ функција се користи за индиректно упућивање на ћелију. Али права моћ ИНДИРЕЦТ-а је у томе што може претворити било који стринг у референцу, укључујући стринг који градите користећи друге функције и вредности других ћелија. И то је управо оно што ћемо урадити. Ако пратите ово, све остало ћете разумети са лакоћом : )
Као што се сећате, користили смо још 3 функције у формули - АДРЕСУ, КОЛОНУ и РЕД.
Функција АДДРЕСС добија адресу ћелије према бројевима реда и колоне које наведете, респективно. Запамтите редослед: први - ред, други - колона.
У нашој формули, координате достављамо обрнутим редоследом, а овоје оно што заправо чини трик! Другим речима, овај део формуле АДРЕСА(ЦОЛУМН(А1),РОВ(А1)) замењује редове колонама, тј. узима број колоне и мења га у број реда, затим узима број реда и претвара га у колону број.
Коначно, ИНДИРЕЦТ функција даје ротиране податке. Уопште није ништа страшно, зар не?
Транспонујте податке у Екцел користећи ВБА макро
Да бисте аутоматизовали конверзију редова у колоне у Екцел-у, можете користити следећи макро:
Суб ТранспосеЦолумнсРовс () Дим СоурцеРанге Ас Ранге Дим ДестРанге Ас Ранге Подесите СоурцеРанге = Апплицатион.ИнпутБок(Промпт:= "Изаберите опсег за транспоновање" , Титле:= "Транспонујте редове у колоне" , Типе :=8) Поставите ДестРанге = Апплицатион.ИнпутБок (Промпт:= "Изаберите горњу леву ћелију одредишног опсега" , Титле:= "Транспонујте редове у колоне" , Типе :=8) СоурцеРанге.Цопи ДестРанге. Изаберите Селецтион.ПастеСпециал Пасте:=клПастеАлл, Оператион:=клНоне, СкипБланкс:= Фалсе , Транспосе:= Труе Апплицатион.ЦутЦопиМоде = Фалсе Енд СубДа бисте додали макро на свој радни лист, пратите упутства описана у Како да уметнете и покрените ВБА код у Екцел-у.
Напомена. Транспоновање са ВБА, има ограничење од 65536 елемената. У случају да ваш низ премаши ово ограничење, додатни подаци ће бити тихо одбачени.
Како користити макро за претварање реда у колону
Са макроом уметнутим у радну свеску, извршите следећекораци за ротирање табеле:
- Отворите циљни радни лист, притисните Алт + Ф8 , изаберите макро ТранспосеЦолумнсРовс и кликните на Рун .
Уживајте у резултату :)
Пребаците колоне и редове помоћу алата за транспоновање
Ако треба да редовно обављате трансформације редова у колону, можда заправо тражите бржи и једноставнији начин. Срећом, ја имам такав начин у свом Екцел-у, као и други корисници нашег Ултимате Суите-а :)
Дозволите ми да вам покажем како да мењате редове и колоне у Екцел-у буквално у неколико кликова:
- Изаберите било коју ћелију у вашој табели, идите на картицу Аблебитс &гт; Трансформ групу и кликните на дугме Транспосе .
Ако желите да Налепите само вредности или Креирајте везе до изворних података да бисте натерали да се ротирана табела аутоматски ажурира са сваком променом коју направите у оригиналној табели, изаберите одговарајућа опција.
Готово! Табела је транспонована, форматирање је сачувано, нису потребне даље манипулације:
Ако сте радознали да