Note: The other languages of the website are Google-translated. Back to English

Cum să stivați rapid mai multe coloane într-o singură coloană în Excel?

în Excel, funcția Text în coloane poate împărți o celulă în mai multe coloane pe baza delimitatorului, dar dacă există vreo modalitate de a stiva mai multe coloane într-o singură coloană, așa cum este prezentat mai jos? În acest articol, voi introduce câteva trucuri pentru rezolvarea rapidă a acestei sarcini.
coloanele stivei doc la una 1

Stivați mai multe coloane într-una cu formula

Stivați mai multe coloane într-una cu VBA

Stivați mai multe coloane într-una cu Transform Range idee bună3


Stivați mai multe coloane într-una cu formula

1. Selectați intervalul pe care doriți să-l stivați și accesați Cutie de nume pentru a da acestui domeniu un nume și apăsați Intrați cheie. Vedeți captura de ecran:
coloanele stivei doc la una 2

2. Apoi selectați o celulă goală în care doriți să plasați rezultatele, introduceți această formulă =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1), presa rațătasta r și glisați mânerul de umplere în jos până când apare o eroare. Vedeți captura de ecran:
coloanele stivei doc la una 3

În formulă, MyData este numele intervalului pe care l-ați specificat la pasul 1.

Stivați mai multe coloane într-una cu VBA

Iată un cod VBA care te poate ajuta și pe tine.

1. presa Alt + F11 tastele de afișat Microsoft Visual Basic pentru aplicații fereastră.

2. clic Insera > Module, lipiți codul de mai jos în Module.

VBA: Stivați coloanele într-una

Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
    Rng.Copy
    Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

coloanele stivei doc la una 4

3. presa F5 pentru a rula codul, apare o fereastră de dialog pentru a selecta datele sursă și faceți clic pe OK, pentru a selecta o celulă pentru a plasa rezultatele. Vedeți captura de ecran:
coloanele stivei doc la una 5

4. clic OK. Acum coloanele au fost stivuite într-o singură coloană.
coloanele stivei doc la una 6


Stivați mai multe coloane într-una cu Transform Range

A aplica Kutools pentru Excel'S Gama de transformare utilitatea este, de asemenea, vă poate ajuta să rezolvați rapid această problemă.

Kutools pentru Excel, cu mai mult de 300 funcții la îndemână, vă face munca mai ușoară. 

După instalare gratuită Kutools pentru Excel, faceți următoarele:

1. Selectați datele coloanelor pe care le utilizați și faceți clic Kutools > Gamă > Gama de transformare. Vedeți captura de ecran:
coloanele stivei doc la una 8

2. În Gama de transformare dialog, verificați Gama până la o singură coloană și faceți clic pe Ok, apoi selectați o celulă pentru a plasa rezultatele. Vedeți captura de ecran:
coloanele stivei doc la una 9

3. clic OK. Acum coloanele au fost stivuite într-o singură coloană.
coloanele stivei doc la una 1


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (25)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
stivuiți mai multe rânduri într-o singură coloană, nu mai multe coloane... nu este ceea ce căutam.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru a stivui coloanele AP care sunt în blocuri de 6 rânduri, puneți aceste formule în celula R1 și completați în jos

=OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcționează perfect, mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumim că ați postat această soluție! În cazul în care cineva are nevoie de un spațiu după/la sfârșitul fiecărui bloc, trebuie doar să adăugați un număr suplimentar la rânduri, așa că urmând exemplul de mai sus, în loc de $A$6, scrieți $A$7. Introduce un zero „0” în rând, dar puteți cu ușurință „Folosiți selecția pentru Găsire” în Sublime pentru a le edita. Dacă știți soluția care nu adaugă zero, vă rugăm să postați!?
Acest comentariu a fost redus la minimum de moderatorul de pe site
pentru a scoate o celulă goală în loc de 0, faceți o funcție IF>0, TRUE-->ieșiți conținutul inițial al celulei, FALSE-->output ""

=if(OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)>0,OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1),"")
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dang, acum nu merge! Am încercat într-o filă nouă, dar acum a revenit la stivuirea conținutului coloanei într-o singură filă în loc de conținutul rândului inițial.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Anulează-l pe ultimul, a ratat pasul de trunchiere.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Știu că ați răspuns la această întrebare cu mult timp în urmă, dar vă rog să explicați ce face exact fiecare parte a acestei funcții?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Poate că acest tutorial vă poate ajuta.https://www.extendoffice.com/documents/excel/3327-excel-convert-multiple-rows-to-columns.html
Acest comentariu a fost redus la minimum de moderatorul de pe site
acesta este doar un clickbait pentru a vă face să descărcați un software cu plată
Acest comentariu a fost redus la minimum de moderatorul de pe site
Prima descărcare va fi folosită gratuit în 60 de zile, după aceea, puteți decide să plătiți pentru utilizare sau nu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, există vreunul pentru a converti datele de mai sus în următorul formular?
1
A
Lilly
2
B
Judy
...
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumim pentru mesajul pe care l-ați lăsat, acest tutorial https://www.extendoffice.com/documents/excel/5401-excel-stack-columns-into-one-column.html
vorbește despre cum să rezolvi această problemă, poți merge la vizualizare.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am date care se termină la același rând, dar mai multe coloane în care vreau să fie stivuite într-o secvență în care datele coloanei B vor merge sub datele coloanei A unde datele se termină pentru coloana A și datele coloanei C să treacă sub datele coloanei A unde se termină datele din coloana B și așa mai departe. În acest fel, voi avea date din mai multe coloane pentru a se potrivi într-o singură coloană. Cum pot face acest lucru?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, există o modalitate de a face ca formula să ignore orice celule goale pe care le pot conține datele dvs.?


=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1),


Folosesc o foaie de ajutor pentru a crea o listă adiacentă pentru o listă verticală de validare a datelor. Mulțumesc anticipat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău, nu sunt bun la formulă, poate puteți încerca să utilizați Kutools for Excel's Select Nonblank cells utilitarul pentru a selecta mai întâi celulele negoale și copiați și lipiți-le într-o altă locație, apoi utilizați metodele de mai sus.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, vreau să fac un pas mai departe cu asta. Am folosit Stack Multiple Columns Into One With VBA, cod și funcționează. Am folosit Tabele ca sursă cu acest cod și primesc lista. Există o modalitate de a automatiza rularea Macro-ului? Astfel încât, atunci când adaug o nouă intrare în tabel, Macro-ul se rulează automat și păstrează lista rezultată la zi?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Chris Blackburn, îmi pare rău că nu găsesc un cod care poate rula automat pentru a actualiza rezultatul, poate altcineva poate.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încerc să fac acest lucru pe un tabel foarte mare (100 de coloane și rânduri care sunt toate legate de formule. Excel-ul meu se va încărca în continuare și apoi va ajunge să nu răspundă. Există vreo modalitate de a trece peste asta? Mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Tom, ce metodă aplicați nu funcționează? Metoda trei, instrumentul de transformare trebuie să funcționeze.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Folosesc metoda Stack Multiple Columns Into One With Formula și a funcționat perfect, dar vreau să mențină formatarea, adică unele coloane erau aldine și 1 era hyperlinkuri. Există ceva care poate fi adăugat la formulă pentru ca acest lucru să se întâmple?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Susan Milard, formula lor vă poate satisface nevoia, puteți utiliza instrumentul VBA sau Transpose Range, ambele vă pot satisface.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult, opțiunea de formulă a funcționat foarte bine... mi-ai economisit mult timp.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru formulă și VBA, dar niciunul nu face ceea ce spune titlul postării. Mă așteptam să stivuiască coloanele, dar în schimb transpun fiecare rând într-o coloană și le stivuiesc... deci stivuiesc rânduri transpuse, nu coloane. Încă foarte util pentru unele cazuri, dar știe cineva cum să modifice formula și/sau VBA pentru a stivui efectiv coloanele? Presupun că aș putea transpune întreaga gamă de intrare apoi să folosesc acestea...
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pentru cei care doresc să stivuiască coloanele într-una singură, dar nu rândurile într-una singură, trebuie să aveți o imagine clară a ceea ce doriți cu adevărat să faceți. Să presupunem că aveți o matrice 3x3, doriți ca funcția dvs. index() să obțină intrări sub formă de (rând, coloană) pentru (1,1), (2,1), (3,1), apoi (1,2), (2,2), (3,2) și așa mai departe. Deci, ce doriți a face este ca index() să se refere la o singură coloană care conține toate numerele de rând (1;2;3;1;2;3;1;2;3) și o singură coloană care conține toate numerele de coloană (1;1). ;1;2;2;2;3;3;3).Pentru a obține (1;2;3;1;2;3;1;2;3), o abordare comună de programare este să folosiți 1+mod(some_counter -1,3) unde funcția mod() dă reziduurile 0,1,2,0,1,2,...
Pentru a obține (1;1;1;2;2;2;3;3;3), se folosește 1+int((some_counter-1)/3) unde dă 1+0, 1+0, 1+0 , 1+1, 1+1, 1+1, 1+2, 1+2, 1+2
Prin urmare, pentru a obține o matrice 3x3 stivuită într-una, utilizați formula (apăsați Ctrl + Shift + Enter):=index( $A$1:$C$3, 1+mod(row(A1)-1,3), 1 +int((rând (A1)-1)/3))) unde rândul (A1) servește drept contor pe măsură ce completați formula în jos
Dacă îl puneți invers (rând la coloane, coloane la rând), veți obține rânduri stivuite într-o singură coloană=INDEX( $A$1:$C$3, 1+INT((ROW(A1)-1)/ 3),1+MOD(RÂND(A1)-1,3))care este în esență ceea ce face formula din acest articol

Pe scurt, formula folosită pentru a stivui coloanele dintr-o matrice într-o singură coloană ar fi:=index( your_array_cells , 1+mod(row(A1)-1, number_of_rows_of_your_array ), 1+int((row(A1)-1 )/numărul_de_coloane_din_matricea_dvs.)))
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL