Cuprins
Tutorialul prezintă diferite moduri de a schimba rândurile în coloane în Excel: formule, cod VBA și un instrument special.
Transpunerea datelor în Excel este o sarcină familiară pentru mulți utilizatori. Destul de des construiți un tabel complex doar pentru a realiza că este perfect logic să îl rotiți pentru o analiză mai bună sau pentru o prezentare mai bună a datelor în grafice.
În acest articol, veți găsi mai multe modalități de a converti rândurile în coloane (sau coloanele în rânduri), oricum ați numi-o, este același lucru : ) Aceste soluții funcționează în toate versiunile de Excel 2010 până la Excel 365, acoperă multe scenarii posibile și explică cele mai multe greșeli tipice.
Conversia rândurilor în coloane în Excel folosind Paste Special
Să presupunem că aveți un set de date asemănător cu ceea ce vedeți în partea de sus a graficului de mai jos. Numele țărilor sunt organizate în coloane, dar lista țărilor este prea lungă, așa că ar fi mai bine să schimbăm coloanele în rânduri pentru ca tabelul să încapă pe ecran:
Pentru a schimba rândurile în coloane, efectuați următorii pași:
- Selectați datele originale. Pentru a selecta rapid întregul tabel, adică toate celulele cu date dintr-o foaie de calcul, apăsați Ctrl + Home și apoi Ctrl + Shift + End .
- Copiați celulele selectate fie făcând clic dreapta pe selecție și alegând Copiați din meniul contextual sau apăsând Ctrl + C .
- Selectați prima celulă din intervalul de destinație.
Asigurați-vă că selectați o celulă care se află în afara intervalului care conține datele originale, astfel încât zonele de copiere și zonele de lipire să nu se suprapună. De exemplu, dacă în prezent aveți 4 coloane și 10 rânduri, tabelul convertit va avea 10 coloane și 4 rânduri.
- Faceți clic dreapta pe celula de destinație și alegeți Lipire specială din meniul contextual, apoi selectați Transpuneți .
Pentru mai multe informații, consultați Cum se utilizează Paste Special în Excel.
Notă: Dacă datele sursă conțin formule, asigurați-vă că utilizați în mod corespunzător referințele relative și absolute, în funcție de faptul dacă acestea trebuie ajustate sau rămân blocate în anumite celule.
După cum tocmai ați văzut, funcția Paste Special vă permite să efectuați transformări de la rând la coloană (sau de la coloană la rând) în câteva secunde. Această metodă copiază, de asemenea, formatarea datelor originale, ceea ce adaugă un argument în plus în favoarea sa.
Cu toate acestea, această abordare a două dezavantaje care îl împiedică să fie considerat o soluție perfectă pentru transpunerea datelor în Excel:
- Nu este bine adaptat pentru rotirea tabelelor Excel complet funcționale. Dacă copiați întregul tabel și apoi deschideți fișierul Lipire specială veți găsi caseta de dialog Transpuneți În acest caz, trebuie fie să copiați tabelul fără antetele coloanelor, fie să îl convertiți mai întâi într-un interval.
- Lipire specială > Transpuneți nu leagă noul tabel de datele originale, așa că este potrivit doar pentru conversii unice. Ori de câte ori datele sursă se schimbă, va trebui să repetați procesul și să rotiți din nou tabelul. Nimeni nu ar vrea să își piardă timpul schimbând aceleași rânduri și coloane la nesfârșit, nu-i așa?
Cum se transpune un tabel și se face legătura cu datele originale
Să vedem cum puteți schimba rândurile în coloane folosind cunoscuta funcție Lipire specială dar conectați tabelul rezultat la setul de date original. Cel mai bun lucru la această abordare este că, ori de câte ori modificați datele din tabelul sursă, tabelul răsturnat va reflecta modificările și se va actualiza în consecință.
- Copiați rândurile pe care doriți să le transformați în coloane (sau coloanele care urmează să fie transformate în rânduri).
- Selectați o celulă goală din aceeași foaie de calcul sau dintr-o altă foaie de calcul.
- Deschideți fereastra Lipire specială așa cum am explicat în exemplul anterior și faceți clic pe Lipiți link-ul în colțul din stânga jos:
Veți obține un rezultat asemănător cu acesta:
Acest lucru va transforma masa dvs. în ceva un pic înfricoșător, așa cum vedeți în captura de ecran de mai jos, dar nu vă panicați, mai sunt doar 2 pași și veți obține rezultatul dorit.
Aceasta este o soluție puțin cam lungă, dar elegantă, nu-i așa? Singurul dezavantaj al acestei abordări este că formatarea originală se pierde în acest proces și va trebui să o restaurați manual (vă voi arăta o modalitate rapidă de a face acest lucru mai departe în acest tutorial).
Cum să transpunem în Excel folosind formule
O modalitate mai rapidă de a schimba în mod dinamic coloanele în rânduri în Excel este utilizarea formulei TRANSPOSE sau INDEX/ADDRESS. La fel ca în exemplul anterior, aceste formule păstrează, de asemenea, legăturile cu datele originale, dar funcționează puțin diferit.
Schimbarea rândurilor în coloane în Excel utilizând funcția TRANSPOSE
După cum sugerează și numele său, funcția TRANSPOSE este special concepută pentru transpunerea datelor în Excel:
=TRANSPOSE(array)În acest exemplu, vom converti un alt tabel care listează statele americane în funcție de populație:
- Numărați numărul de rânduri și coloane din tabelul original și selectați același număr de celule goale, dar în cealaltă direcție.
De exemplu, tabelul nostru de probă are 7 coloane și 6 rânduri, inclusiv titlurile. Deoarece funcția TRANSPOSE va schimba coloanele în rânduri, vom selecta un interval de 6 coloane și 7 rânduri.
- Cu celulele goale selectate, introduceți această formulă:
=TRANSPUNE(A1:G6)
- Deoarece formula noastră trebuie să fie aplicată la mai multe celule, apăsați Ctrl + Shift + Enter pentru a o transforma într-o formulă de matrice.
Iată, coloanele sunt transformate în rânduri, exact așa cum am dorit:
Avantajele funcției TRANSPOSE:
Principalul beneficiu al utilizării funcției TRANSPOSE este că tabelul rotit păstrează conexiunea cu tabelul sursă și, ori de câte ori modificați datele sursă, tabelul transpus se va modifica în mod corespunzător.
Punctele slabe ale funcției TRANSPOSE:
- Formatarea originală a tabelului nu este salvată în tabelul convertit, după cum se vede în captura de ecran de mai sus.
- Dacă există celule goale în tabelul original, celulele transpuse vor conține în schimb 0. Pentru a remedia acest lucru, utilizați TRANSPOSE în combinație cu funcția IF, așa cum se explică în acest exemplu: Cum să transpuneți fără zerouri.
- Nu puteți edita nicio celulă din tabelul rotit, deoarece acesta depinde foarte mult de datele sursă. Dacă încercați să modificați valoarea unei celule, veți primi eroarea "Nu puteți modifica o parte a unei matrice".
În concluzie, oricât de bună și ușor de utilizat ar fi funcția TRANSPOSE, cu siguranță îi lipsește flexibilitatea și, prin urmare, s-ar putea să nu fie cea mai bună soluție în multe situații.
Pentru mai multe informații, vă rugăm să consultați funcția Excel TRANSPOSE cu exemple.
Conversia rândului în coloană cu funcțiile INDIRECT și ADDRESS
În acest exemplu, vom folosi o combinație de două funcții, ceea ce este puțin mai complicat. Așadar, să rotim un tabel mai mic pentru a ne putea concentra mai bine asupra formulei.
Să presupunem că aveți date în 4 coloane (A - D) și 5 rânduri (1 - 5):
Pentru ca coloanele să fie schimbate în rânduri, procedați după cum urmează:
- Introduceți formula de mai jos în cea mai din stânga celulă din intervalul de destinație, de exemplu A7, și apăsați tasta Enter:
=INDIRECT(ADRESA(COLOANA(A1),RÂNDUL(A1)))
- Copiați formula spre dreapta și în jos, în câte rânduri și coloane sunt necesare, trăgând o mică cruce neagră din colțul din dreapta jos al celulelor selectate:
În tabelul nou creat, toate coloanele au fost transformate în rânduri.
Dacă datele dvs. încep în alt rând decât 1 și altă coloană decât A, va trebui să utilizați o formulă ceva mai complexă:
=INDIRECT(ADRESA(COLOANA(A1) - COLOANA($A$1) + RÂNDUL($A$1), RÂNDUL(A1) - RÂNDUL($A$1) + COLOANA($A$1)))))
Unde A1 este celula cea mai din stânga-sus a tabelului sursă. De asemenea, vă rugăm să țineți cont de utilizarea referințelor absolute și relative la celule.
Cu toate acestea, celulele transpuse au un aspect foarte simplu și plictisitor, în comparație cu datele originale:
Dar nu vă dezamăgiți, această problemă poate fi rezolvată cu ușurință. Pentru a restabili formatarea originală, iată ce trebuie să faceți:
- Copiați tabelul original.
- Selectați tabelul rezultat.
- Faceți clic dreapta pe tabelul rezultat și alegeți Opțiuni de lipire > Formatarea .
Avantaje : Această formulă oferă o modalitate mai flexibilă de a transforma rândurile în coloane în Excel. Aceasta permite efectuarea oricăror modificări în tabelul transpus, deoarece se utilizează o formulă obișnuită, nu o formulă de matrice.
Deficiențe : Văd doar una - formatarea datelor ordinale s-a pierdut. Totuși, o puteți restabili rapid, așa cum se arată mai sus.
Cum funcționează această formulă
Acum că știți cum să utilizați combinația INDIRECT / ADDRESS, ați putea dori să înțelegeți ce face de fapt această formulă.
După cum sugerează și numele său, funcția INDIRECT, este utilizată pentru a face referire indirectă la o celulă. Dar adevărata putere a funcției INDIRECT este că poate transforma orice șir de caractere într-o referință, inclusiv un șir pe care îl construiți folosind alte funcții și valorile altor celule. Și exact asta este ceea ce vom face. Dacă urmăriți până aici, veți înțelege cu ușurință tot restul : )
După cum vă amintiți, am folosit încă 3 funcții în formulă - ADRESA, COLUMN și Rând.
Funcția ADDRESS obține adresa celulei prin numerele de rând și, respectiv, de coloană pe care le specificați. Vă rugăm să rețineți ordinea: primul - rând, al doilea - coloană.
Cu alte cuvinte, această parte a formulei ADDRESS(COLUMN(A1),ROW(A1)) schimbă rândurile în coloane, adică ia un număr de coloană și îl transformă într-un număr de rând, apoi ia un număr de rând și îl transformă într-un număr de coloană.
În cele din urmă, funcția INDIRECT produce datele rotite. Nimic îngrozitor, nu-i așa?
Transpuneți datele în Excel utilizând macro VBA
Pentru a automatiza conversia rândurilor în coloane în Excel, puteți utiliza următoarea macro:
Sub TransposeColumnsRows() Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Vă rugăm să selectați intervalul de transpus" , Title:= "Transpose Rows to Columns" , Type :=8) Set DestRange = Application.InputBox(Prompt:= "Selectați celula din stânga sus a intervalului de destinație" , Title:= "Transpose Rows to Columns" , Type :=8) SourceRange.Copy DestRange. SelectSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End SubPentru a adăuga o macro la foaia de lucru, urmați instrucțiunile descrise în Cum să inserați și să executați cod VBA în Excel.
Notă. Transpunerea cu VBA are o limită de 65536 de elemente. În cazul în care matricea dvs. depășește această limită, datele suplimentare vor fi eliminate în mod silențios.
Cum se utilizează macroul pentru a converti rândul în coloană
Cu macroul inserat în registrul de lucru, efectuați pașii de mai jos pentru a roti tabelul:
- Deschideți foaia de lucru țintă, apăsați Alt + F8 , selectați TransposeColumnsRows macro, apoi faceți clic pe Rulați .
Bucurați-vă de rezultat :)
Comutați coloanele și rândurile cu instrumentul Transpose
Dacă aveți nevoie să efectuați transformări de la rând la coloană în mod regulat, este posibil să căutați o modalitate mai rapidă și mai simplă. Din fericire, am o astfel de modalitate în Excel-ul meu, la fel ca și alți utilizatori ai suitei noastre Ultimate Suite :)
Permiteți-mi să vă arăt cum să schimbați rândurile și coloanele în Excel literalmente în câteva clicuri:
- Selectați orice celulă unică din tabel, accesați fereastra Ablebits tab> Transformare și faceți clic pe butonul Transpuneți buton.
Dacă doriți să Numai valori de lipire sau Crearea de legături către datele sursă pentru a forța tabelul rotit să se actualizeze automat cu fiecare modificare pe care o faceți în tabelul original, selectați opțiunea corespunzătoare.
Gata! Tabelul este transpus, formatarea este păstrată, nu mai este nevoie de alte manipulări:
Dacă sunteți curioși să încercați acest lucru și alte peste 70 de instrumente profesionale pentru Excel, vă invit să descărcați o versiune de încercare a suitei noastre Ultimate Suite. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!