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

Hur staplar jag snabbt flera kolumner i en kolumn i Excel?

i Excel kan funktionen Text till kolumner dela en cell i flera kolumner baserat på avgränsare, men om det finns några sätt att stapla flera kolumner i en kolumn enligt nedanstående skärmdump? I den här artikeln kommer jag att introducera några knep för att snabbt lösa denna uppgift.
doc staplar kolumner till en 1

Stapla flera kolumner i en med formel

Stapla flera kolumner i en med VBA

Stapla flera kolumner i en med Transform Range bra idé3


Stapla flera kolumner i en med formel

1. Välj det intervall du vill stapla och gå till Namn Box för att ge detta intervall ett namn och tryck på ange nyckel. Se skärmdump:
doc staplar kolumner till en 2

2. Välj sedan en tom cell som du vill placera resultaten, ange denna formel =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1), Tryck Enter-tangenten och dra ned fyllningshandtaget tills ett fel visas. Se skärmdump:
doc staplar kolumner till en 3

I formeln är MyData det intervallnamn du angav i steg 1.

Stapla flera kolumner i en med VBA

Här är en VBA-kod som kan hjälpa dig också.

1. Tryck Alt + F11 för att visa Microsoft Visual Basic för applikationer fönster.

2. klick Insert > Modulerna, klistra in under koden i Modulerna.

VBA: Stapla kolumner till 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 staplar kolumner till en 4

3. Tryck F5 för att köra koden, en dialogruta dyker upp för att välja källdata och klicka OK, för att välja en cell för att placera resultaten. Se skärmdump:
doc staplar kolumner till en 5

4. klick OK. Nu har kolumnerna staplats i en kolumn.
doc staplar kolumner till en 6


Stapla flera kolumner i en med Transform Range

Att ansöka Kutools för ExcelÄr Transformera intervall verktyget är också kan hjälpa dig att snabbt lösa detta problem.

Kutools för Excel, med mer än 300 praktiska funktioner, gör dina jobb enklare. 

Efter gratis installation Kutools för Excel, gör så här:

1. Välj de kolumndata du använder och klicka på Kutools > Mätområde > Transformera intervall. Se skärmdump:
doc staplar kolumner till en 8

2. I Transformera intervall dialogrutan, kontrollera Område till enstaka kolumn alternativet och klicka på Okoch välj sedan en cell för att placera resultat. Se skärmdump:
doc staplar kolumner till en 9

3. klick OK. Nu har kolumnerna staplats i en enda kolumn.
doc staplar kolumner till en 1


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (25)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
du staplar flera rader i en kolumn, inte flera kolumner... inte vad jag letade efter.
Denna kommentar minimerades av moderatoren på webbplatsen
För att stapla kolumner AP som är i block med 6 rader, lägg dessa formler i cell R1 och fyll ner

=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)
Denna kommentar minimerades av moderatoren på webbplatsen
Det här fungerar perfekt, tack
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för att du publicerade denna lösning! Om någon behöver ett mellanslag efter/i slutet av varje block, lägg bara till en extra räkning till raderna, så gå till exemplet ovan, istället för $A$6, skriv $A$7. Den matar in en noll "0" till raden men du kan enkelt "Använd urval för Hitta" i Sublime för att redigera bort dem. Om du känner till lösningen som inte lägger till en nolla, snälla posta!?
Denna kommentar minimerades av moderatoren på webbplatsen
för att mata ut en tom cell istället för 0, gör en OM-funktion>0, TRUE-->mata ut det ursprungliga cellinnehållet, FALSE-->mata ""

=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),"")
Denna kommentar minimerades av moderatoren på webbplatsen
Fan, nu fungerar det inte! Försökte på en ny flik men det är nu tillbaka till att stapla kolumninnehåll i en istället för det ursprungliga radinnehållet.
Denna kommentar minimerades av moderatoren på webbplatsen
Avbryt det sista, missade det trunkerade steget.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag vet att du svarade på den här frågan för länge sedan, men kan du förklara exakt vad varje del av den här funktionen gör?
Denna kommentar minimerades av moderatoren på webbplatsen
Kanske den här handledningen kan hjälpa dig. https://www.extendoffice.com/documents/excel/3327-excel-convert-multiple-rows-to-columns.html
Denna kommentar minimerades av moderatoren på webbplatsen
detta är bara ett klickbete för att få dig att ladda ner en betalande programvara
Denna kommentar minimerades av moderatoren på webbplatsen
Den första nedladdningen kommer att vara gratis att använda om 60 dagar, efter det kan du bestämma dig för att betala för användning eller inte.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, finns det någon att konvertera ovanstående data till följande formulär??
1
A
Lilly
2
B
Judy
...
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för att du lämnade meddelande, denna handledning https://www.extendoffice.com/documents/excel/5401-excel-stack-columns-into-one-column.html
talar om hur man löser detta problem, kan du gå till visa.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har data som slutar på samma rad men flera kolumner där jag vill att de ska staplas i en sekvens där B-kolumndata kommer att hamna under A-kolumndata där data slutar för A-kolumndata och C-kolumndata för att gå under A-kolumndata där data från B-kolumn slutar och så vidare. På så sätt kommer jag att ha data från flera kolumner för att passa in i en kolumn. Hur kan jag göra det?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, finns det något sätt att få formeln att ignorera alla tomma celler som din data kan innehålla?


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


Jag använder ett hjälpark för att skapa en sammanhängande lista för en rullgardinslista för datavalidering. Tack på förhand.
Denna kommentar minimerades av moderatoren på webbplatsen
Tyvärr, jag är inte bra på formel, kanske du kan försöka använda Kutools för Excels verktyg Välj icke tomma celler för att först välja de tomma cellerna och kopiera och klistra in dem på en annan plats, använd sedan ovanstående metoder.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag vill gå ett steg längre med detta. Jag har använt Stack flera kolumner i en med VBA, kod och det här fungerar. Jag har använt tabeller som källa med den här koden och jag får listan. Finns det något sätt att automatisera att köra makrot? Så att när jag lägger till en ny post i tabellen körs makrot automatiskt och håller den resulterande listan uppdaterad?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Chris Blackburn, förlåt, jag är rädd att jag inte kan hitta en kod som kan köras automatiskt för att uppdatera resultatet, kanske någon annan kan.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag försöker göra detta över en mycket stor tabell (100-tals kolumner och rader som alla är länkade till formler. Mitt excel kommer att fortsätta laddas och sedan slutligen gå till att inte svara. Finns det något sätt att komma förbi detta? Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Tom, vilken metod du använder fungerar inte? Metoden tre, transform range tool must kan fungera.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använder metoden Stack Multiple Columns Into One With Formula och den fungerade perfekt, men jag vill att den ska behålla formateringen, dvs vissa kolumner var fetstil och 1 var hyperlänkar. Finns det något som kan läggas till formeln för att få detta att hända?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Susan Milard, deras formel kan tillgodose ditt behov, du kan använda VBA eller Transpose Range-verktyget, båda kan tillfredsställa dig.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket, formelalternativet fungerade mycket bra... du sparade mycket tid på mig.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för formeln och VBA, men ingen av dem gör vad rubriken på inlägget säger. Jag förväntade mig att de skulle stapla kolumnerna, men istället omvandlar de varje rad till en kolumn och staplar dem... så det är att stapla transponerade rader, inte kolumner. Fortfarande till stor hjälp i vissa fall, men vet någon hur man ändrar formeln och/eller VBA för att faktiskt stapla kolumnerna? Jag antar att jag skulle kunna transponera hela ingångsområdet och sedan använda dessa...
Denna kommentar minimerades av moderatoren på webbplatsen
För de som vill stapla kolumner i en men inte rader i en, måste du ha en tydlig bild av vad du verkligen vill göra. Anta att du har någon 3x3-array, du vill att din index()-funktion ska få poster i form av (rad, kolumn) för (1,1), (2,1), (3,1), sedan (1,2), (2,2), (3,2) och så vidare. Så vad du vill att göra är att ha index() som refererar till en enda kolumn som innehåller alla radnummer (1;2;3;1;2;3;1;2;3) och en enda kolumn som innehåller alla kolumnnummer (1;1) ;1;2;2;2;3;3;3).För att få (1;2;3;1;2;3;1;2;3) är en vanlig programmeringsmetod att använda 1+mod(some_counter) -1,3) där mod()-funktionen ger residualerna 0,1,2,0,1,2,...
För att få (1;1;1;2;2;2;3;3;3) använder man 1+int((någon_räknare-1)/3) där det ger 1+0, 1+0, 1+0 , 1+1, 1+1, 1+1, 1+2, 1+2, 1+2
Därför, för att få en 3x3 array staplad till en, använder du formeln (tryck på Ctrl +Shft + Enter):=index( $A$1:$C$3, 1+mod(rad(A1)-1,3), 1 +int((rad(A1)-1)/3))) där rad(A1) fungerar som räknare när du fyller din formel nedåt
Om du uttrycker det åt andra hållet (rad till kolumn, kolumn till rad), kommer du att få rader staplade i en kolumn=INDEX( $A$1:$C$3, 1+INT((ROW(A1)-1)/ 3),1+MOD(RAD(A1)-1,3)) vilket i huvudsak är vad formeln i den här artikeln gör

I ett nötskal, formeln som används för att stapla kolumner i en array i en enda kolumn skulle vara:=index( your_array_cells , 1+mod(row(A1)-1, number_of_rows_of_your_array ), 1+int((row(A1)-1 )/ antal_kolumner_av_din_matris)))
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL