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

Hvordan stables flere kolonner hurtigt i en kolonne i Excel?

i Excel kan funktionen Tekst til kolonner opdele en celle i flere kolonner baseret på afgrænser, men hvis der er nogen måder at stable flere kolonner i en kolonne som vist nedenstående skærmbillede? I denne artikel vil jeg introducere nogle tricks til at løse denne opgave hurtigt.
doc stack kolonner til en 1

Stak flere kolonner i en med formlen

Stak flere kolonner i en med VBA

Stak flere kolonner i en med Transform Range god idé3


Stak flere kolonner i en med formlen

1. Vælg det område, du vil stable, og gå til Navn Box for at give dette interval et navn, og tryk på Indtast nøgle. Se skærmbillede:
doc stack kolonner til en 2

2. Vælg derefter en tom celle, som du vil placere resultaterne, indtast denne formel =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1), tryk på Enter-tasten, og træk udfyldningshåndtaget ned, indtil en fejl vises. Se skærmbillede:
doc stack kolonner til en 3

I formlen er MyData det rækkevidde, du har angivet i trin 1.

Stak flere kolonner i en med VBA

Her er en VBA-kode, der også kan hjælpe dig.

1. Trykke Alt + F11 taster, der skal vises Microsoft Visual Basic til applikationer vindue.

2. klik indsatte > Moduler, indsæt nedenstående kode til Moduler.

VBA: Stak kolonner til en

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

doc stack kolonner til en 4

3. Trykke F5 nøgle for at køre koden, en dialog vises for at vælge kildedata, og klik OK, for at vælge en celle for at placere resultaterne. Se skærmbillede:
doc stack kolonner til en 5

4. klik OK. Nu er kolonnerne stablet i en kolonne.
doc stack kolonner til en 6


Stak flere kolonner i en med Transform Range

Hvis du vil anvende Kutools til Excel's Transformér rækkevidde utility er også kan hjælpe dig med hurtigt at løse dette problem.

Kutools til Excel, med mere end 300 praktiske funktioner, der gør dine job lettere. 

Efter gratis installation Kutools til Excel, gør venligst som nedenfor:

1. Vælg de kolonnedata, du bruger, og klik på Kutools > Range > Transformér rækkevidde. Se skærmbillede:
doc stack kolonner til en 8

2. i Transformér rækkevidde dialog, tjek Område til enkelt kolonne valgmulighed og klik Ok, og vælg derefter en celle for at placere resultater. Se skærmbillede:
doc stack kolonner til en 9

3. klik OK. Nu er kolonnerne stablet i en enkelt kolonne.
doc stack kolonner til en 1


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (25)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
du stabler flere rækker i én kolonne, ikke flere kolonner... ikke hvad jeg ledte efter.
Denne kommentar blev minimeret af moderatoren på webstedet
For at stable kolonner AP, der er i blokke med 6 rækker, sætter du formlen i celle R1 og fyld ned

=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)
Denne kommentar blev minimeret af moderatoren på webstedet
Dette fungerer perfekt, tak
Denne kommentar blev minimeret af moderatoren på webstedet
Tak fordi du postede denne løsning! Hvis nogen har brug for et mellemrum efter/ved slutningen af ​​hver blok, skal du blot tilføje et ekstra tæller til rækkerne, så gå efter eksemplet ovenfor, i stedet for $A$6, skriv $A$7. Den indtaster et nul '0' til rækken, men du kan nemt 'Brug valg til Find' i Sublime for at redigere dem. Hvis du kender løsningen, der ikke tilføjer et nul, så skriv venligst!?
Denne kommentar blev minimeret af moderatoren på webstedet
for at udskrive en tom celle i stedet for 0, skal du udføre en HVIS-funktion>0, TRUE-->output det originale celleindhold, 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),"")
Denne kommentar blev minimeret af moderatoren på webstedet
Dang, nu virker det ikke! Prøvede på en ny fane, men det er nu tilbage til at stable kolonneindholdet i én i stedet for det oprindelige rækkeindhold.
Denne kommentar blev minimeret af moderatoren på webstedet
Annuller den sidste, gik glip af det trunkerede trin.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg ved, at du har svaret på dette spørgsmål for rigtig lang tid siden, men kan du venligst forklare, hvad præcis hver del af denne funktion gør?
Denne kommentar blev minimeret af moderatoren på webstedet
Måske kan denne vejledning hjælpe dig. https://www.extendoffice.com/documents/excel/3327-excel-convert-multiple-rows-to-columns.html
Denne kommentar blev minimeret af moderatoren på webstedet
dette er blot en clickbait for at få dig til at downloade en betalende software
Denne kommentar blev minimeret af moderatoren på webstedet
Den første download vil være gratis at bruge om 60 dage, derefter kan du beslutte at betale for brug eller ej.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, er der nogen til at konvertere ovenstående data til følgende form??
1
A
Lilly
2
B
Judy
...
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for din besked, denne tutorial https://www.extendoffice.com/documents/excel/5401-excel-stack-columns-into-one-column.html
taler om, hvordan man løser dette problem, kan du gå til visning.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har data, der ender i samme række, men flere kolonner, hvori jeg ønsker, at de skal stables i en rækkefølge, hvor B-kolonnedata vil gå under A-kolonnedata, hvor dataene slutter for A-kolonne- og C-kolonnedata for at gå under A-kolonnedata hvor dataene fra B-kolonnen slutter og så videre. På denne måde vil jeg have data fra flere kolonner til at passe ind i en kolonne. Hvordan kan jeg gøre det?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, er der en måde at få formlen til at ignorere eventuelle tomme celler, som dine data kan indeholde?


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


Jeg bruger et hjælpeark til at oprette en sammenhængende liste til en rulleliste for datavalidering. Tak på forhånd.
Denne kommentar blev minimeret af moderatoren på webstedet
Beklager, jeg er ikke god til formel, måske kan du prøve at bruge Kutools til Excel's Vælg ikke-blanke celler-værktøj til at vælge de tomme celler først, og kopiere og indsætte dem til en anden placering, og brug derefter ovenstående metoder.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg vil gerne gå et skridt videre med dette. Jeg har brugt Stack Multiple Columns Into One med VBA, kode, og det virker. Jeg har brugt tabeller som kilde med denne kode, og jeg får listen. Er der en måde at automatisere kørsel af makroen på? Så når jeg tilføjer en ny post i tabellen, kører makroen automatisk og holder den resulterende liste opdateret?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Chris Blackburn, undskyld, jeg er bange for, at jeg ikke kan finde en kode, der automatisk kan køre for at opdatere resultatet, måske en anden kan.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg forsøger at gøre dette over en meget stor tabel (100-vis af kolonner og rækker, der alle er knyttet til formler. Min excel vil blive ved med at indlæse og så i sidste ende gå til ikke at svare. Er der en måde at komme forbi dette? Tak
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Tom, hvilken metode du anvender virker ikke? Metoden tre, transform range tool skal kan fungere.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg bruger metoden Stack Multiple Columns Into One With Formula, og den fungerede perfekt, men jeg vil have den til at bevare formateringen, dvs. nogle kolonner var fed og 1 var hyperlinks. Er der noget, der kan tilføjes til formlen for at få dette til at ske?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, Susan Milard, deres formel kan opfylde dit behov, du kan bruge VBA eller Transpose Range-værktøjet, begge kan tilfredsstille dig.
Denne kommentar blev minimeret af moderatoren på webstedet
Mange tak, formelmuligheden fungerede meget godt .. du sparede min meget tid.
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for formlen og VBA, men ingen af ​​dem gør, hvad titlen på indlægget siger. Jeg havde forventet, at de ville stable kolonnerne, men i stedet transponerer de hver række til en kolonne og stabler dem... så det stabler transponerede rækker, ikke kolonner. Stadig meget nyttigt i nogle tilfælde, men er der nogen, der ved, hvordan man ændrer formlen og/eller VBA til faktisk at stable kolonnerne? Jeg formoder, at jeg kunne transponere hele inputområdet og derefter bruge disse...
Denne kommentar blev minimeret af moderatoren på webstedet
For dem, der ønsker at stable kolonner i én, men ikke rækker i én, skal du have et klart billede af, hvad du virkelig vil gøre. Antag, at du har et 3x3-array, du vil have din index()-funktion til at få indgange i form af (række, kolonne) for (1,1), (2,1), (3,1), derefter (1,2), (2,2), (3,2) og så videre. Så hvad du vil at gøre er at have index() til at referere til en enkelt kolonne, der indeholder alle rækkenumrene (1;2;3;1;2;3;1;2;3) og en enkelt kolonne, der indeholder alle kolonnenumrene (1;1) ;1;2;2;2;3;3;3). For at få (1;2;3;1;2;3;1;2;3) er en almindelig programmeringstilgang at bruge 1+mod(some_counter) -1,3) hvor mod()-funktionen giver residualerne 0,1,2,0,1,2,...
For at få (1;1;1;2;2;2;3;3;3) bruger man 1+int((noget_tæller-1)/3), hvor det giver 1+0, 1+0, 1+0 , 1+1, 1+1, 1+1, 1+2, 1+2, 1+2
Derfor, for at få en 3x3 matrix stablet til én, bruger du formlen (tryk Ctrl +Shft + Enter):=index( $A$1:$C$3, 1+mod(row(A1)-1,3), 1 +int((række(A1)-1)/3)))hvor række(A1) tjener som tæller, når du udfylder din formel nedad
Hvis du sætter det omvendt (række til kolonner, kolonner til række), vil du få rækker stablet i én kolonne=INDEX( $A$1:$C$3, 1+INT((ROW(A1)-1)/ 3),1+MOD(ROW(A1)-1,3)), hvilket i bund og grund er, hvad formlen i denne artikel gør

I en nøddeskal vil formlen, der bruges til at stable kolonner i et array i en enkelt kolonne, være:=index( your_array_cells , 1+mod(row(A1)-1, number_of_rows_of_your_array ), 1+int((row(A1)-1 )/ antal_kolonne_af_din_array)))
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL