Hur du byter kolumner och rader i Excel

  • Dela Detta
Michael Brown

I handledningen visas olika sätt att byta rader till kolumner i Excel: formler, VBA-kod och ett specialverktyg.

Att flytta data i Excel är en uppgift som många användare känner till. Ofta bygger du en komplex tabell och inser sedan att det är vettigt att rotera den för att få en bättre analys eller presentation av data i grafer.

I den här artikeln hittar du flera sätt att konvertera rader till kolumner (eller kolumner till rader), oavsett vad du kallar det är det samma sak : ) Lösningarna fungerar i alla versioner av Excel 2010 till och med Excel 365, täcker många möjliga scenarier och förklarar de vanligaste misstagen.

    Konvertera rader till kolumner i Excel med hjälp av Paste Special

    Anta att du har ett dataset som liknar det du ser i den övre delen av nedanstående grafik. Landsnamnen är organiserade i kolumner, men listan över länder är för lång, så det är bättre att ändra kolumner till rader för att tabellen ska få plats på skärmen:

    Utför följande steg för att byta rader till kolumner:

    1. Välj originaldata. För att snabbt välja hela tabellen, dvs. alla celler med data i ett kalkylblad, tryck på Ctrl + Home och sedan Ctrl + Shift + End .
    2. Kopiera de markerade cellerna antingen genom att högerklicka på markeringen och välja Kopiera från kontextmenyn eller genom att trycka på Ctrl + C .
    3. Välj den första cellen i målområdet.

      Se till att du väljer en cell som ligger utanför det område som innehåller dina ursprungliga data, så att kopierings- och klistringsområdena inte överlappar varandra. Om du till exempel har 4 kolumner och 10 rader kommer den konverterade tabellen att ha 10 kolumner och 4 rader.

    4. Högerklicka på målcellen och välj Klistra in speciellt från kontextmenyn och välj sedan Transponera .

    För mer information, se Hur du använder Klistra in special i Excel.

    Om dina källdata innehåller formler ska du se till att använda relativa och absoluta referenser på rätt sätt beroende på om de ska justeras eller förbli låsta till vissa celler.

    Som du just har sett kan du med funktionen Klistra in specialfunktionen utföra omvandlingar från rad till kolumn (eller från kolumn till rad) bokstavligen på några sekunder. Den här metoden kopierar också formateringen av dina originaldata, vilket är ytterligare ett argument till förmån för den.

    Detta tillvägagångssätt har dock två nackdelar som gör att det inte kan kallas en perfekt lösning för att överföra data i Excel:

    • Det är inte lämpligt för att rotera fullt fungerande Excel-tabeller. Om du kopierar hela tabellen och sedan öppnar Klistra in speciellt hittar du dialogrutan Transponera I det här fallet måste du antingen kopiera tabellen utan kolumnrubriker eller konvertera den till ett intervall först.
    • Klistra in speciellt > Transponera kopplar inte ihop den nya tabellen med de ursprungliga uppgifterna, så den lämpar sig bara för engångskonverteringar. När källdata ändras måste du upprepa processen och rotera tabellen på nytt. Ingen vill slösa sin tid på att byta samma rader och kolumner om och om igen, eller hur?

    Hur man transponerar en tabell och kopplar den till de ursprungliga uppgifterna

    Låt oss se hur du kan byta rader till kolumner med hjälp av den välkända Klistra in speciellt tekniken, men kopplar den resulterande tabellen till den ursprungliga datamängden. Det bästa med detta tillvägagångssätt är att när du ändrar data i källtabellen kommer den omvända tabellen att återspegla ändringarna och uppdateras i enlighet med dem.

    1. Kopiera de rader som du vill konvertera till kolumner (eller de kolumner som ska ändras till rader).
    2. Välj en tom cell i samma eller ett annat arbetsblad.
    3. Öppna Klistra in speciellt dialogrutan, som förklaras i föregående exempel, och klicka på Klistra in länk i det nedre vänstra hörnet:

    Du får ett resultat som liknar detta:

  • Markera den nya tabellen och öppna Excels dialogruta Sök och ersätt (eller tryck Ctrl + H för att komma till dialogrutan Ersätt direkt).
  • Ersätt alla "="-tecken med "xxx" eller något annat tecken som inte finns någonstans i dina verkliga data.
  • Detta kommer att förvandla ditt bord till något lite skrämmande, som du ser i skärmdumpen nedan, men ingen panik, bara två steg till och du uppnår det önskade resultatet.

  • Kopiera tabellen med "xxx"-värden och använd sedan Klistra in special> Transponera för att vända kolumner till rader
  • Slutligen öppnar du Hitta och ersätta en gång till för att vända ändringen, dvs. ersätta alla "xxx" med "=" för att återställa länkarna till de ursprungliga cellerna.
  • Det här är en lite lång men elegant lösning, eller hur? Den enda nackdelen med det här tillvägagångssättet är att den ursprungliga formateringen går förlorad i processen och att du måste återställa den manuellt (jag visar dig ett snabbt sätt att göra det här längre fram i den här handledningen).

    Hur man transponerar i Excel med hjälp av formler

    Ett snabbare sätt att dynamiskt byta kolumner till rader i Excel är att använda formlerna TRANSPOSE eller INDEX/ADDRESS. Precis som i det föregående exemplet behåller dessa formler kopplingarna till de ursprungliga uppgifterna, men de fungerar lite annorlunda.

    Ändra rader till kolumner i Excel med hjälp av TRANSPOSE-funktionen

    Som namnet antyder är funktionen TRANSPOSE speciellt utformad för att överföra data i Excel:

    =TRANSPOSE(array)

    I det här exemplet ska vi konvertera en annan tabell som visar USA:s delstater efter folkmängd:

    1. Räkna antalet rader och kolumner i din ursprungliga tabell och välj lika många tomma celler, men i andra riktningen.

      Exempelvis har vår exempeltabell 7 kolumner och 6 rader, inklusive rubriker. Eftersom TRANSPOSE-funktionen ändrar kolumner till rader, väljer vi ett intervall på 6 kolumner och 7 rader.

    2. Med de tomma cellerna markerade skriver du den här formeln:

      =TRANSPOSE(A1:G6)

    3. Eftersom vår formel måste tillämpas på flera celler trycker du på Ctrl + Shift + Enter för att göra den till en matrisformel.

    Voilà, kolumnerna ändras till rader, precis som vi ville:

    Fördelar med TRANSPOSE-funktionen:

    Den största fördelen med TRANSPOSE-funktionen är att den roterade tabellen behåller kopplingen till källtabellen och när du ändrar källdata ändras den transponerade tabellen i enlighet med detta.

    Svagheter med TRANSPOSE-funktionen:

    • Den ursprungliga tabellformateringen sparas inte i den konverterade tabellen, som du ser i skärmdumpen ovan.
    • Om det finns några tomma celler i den ursprungliga tabellen kommer de omlagda cellerna att innehålla 0. För att åtgärda detta använder du TRANSPOSE i kombination med IF-funktionen enligt förklaringen i detta exempel: Hur man omlägger utan nollor.
    • Du kan inte redigera några celler i den roterade tabellen eftersom den är mycket beroende av källdata. Om du försöker ändra något cellvärde kommer du att få felmeddelandet "Du kan inte ändra en del av en matris".

    Sammanfattningsvis kan du konstatera att hur bra och lättanvänd TRANSPOSE-funktionen än är, saknar den flexibilitet och är därför kanske inte den bästa lösningen i många situationer.

    För mer information, se Excel TRANSPOSE-funktionen med exempel.

    Konvertera rad till kolumn med funktionerna INDIRECT och ADDRESS

    I det här exemplet kommer vi att använda en kombination av två funktioner, vilket är lite knepigt. Så låt oss rotera en mindre tabell så att vi bättre kan fokusera på formeln.

    Antag att du har data i 4 kolumner (A - D) och 5 rader (1 - 5):

    Om du vill att kolumner ska bytas ut mot rader gör du följande:

    1. Skriv in nedanstående formel i den vänstra cellen i målområdet, till exempel A7, och tryck på Enter:

      =INDIRECT(ADRESS(KOLUMN(A1),RAD(A1)))

    2. Kopiera formeln till höger och nedåt till så många rader och kolumner som behövs genom att dra det lilla svarta korset i det nedre högra hörnet av de valda cellerna:

    Så är det! I din nyss skapade tabell har alla kolumner bytts ut mot rader.

    Om dina data börjar på en annan rad än 1 och i en annan kolumn än A måste du använda en lite mer komplicerad formel:

    =INDIRECT(ADRESS(KOLUMN(A1) - KOLUMN($A$1) + RAD($A$1), RAD(A1) - RAD($A$1) + KOLUMN($A$1)))))

    Där A1 är den översta vänstra cellen i källtabellen. Tänk också på användningen av absoluta och relativa cellreferenser.

    De omlagda cellerna ser dock mycket slätstrukna och tråkiga ut jämfört med de ursprungliga uppgifterna:

    Men bli inte besviken, det här problemet kan enkelt åtgärdas. Så här gör du för att återställa den ursprungliga formateringen:

    • Kopiera den ursprungliga tabellen.
    • Välj den resulterande tabellen.
    • Högerklicka på den resulterande tabellen och välj Alternativ för klistra in > Formatering av .

    Fördelar : Den här formeln är ett mer flexibelt sätt att omvandla rader till kolumner i Excel. Den gör det möjligt att göra ändringar i den omvända tabellen eftersom du använder en vanlig formel, inte en matrisformel.

    Brister : Jag kan bara se en - formateringen av ordinaldata har gått förlorad. Du kan dock snabbt återställa den, som visas ovan.

    Hur denna formel fungerar

    Nu när du vet hur du använder kombinationen INDIRECT / ADDRESS vill du kanske få en inblick i vad formeln faktiskt gör.

    Som namnet antyder används INDIRECT-funktionen för att indirekt referera till en cell. Men INDIRECT-funktionens verkliga styrka är att den kan omvandla vilken sträng som helst till en referens, inklusive en sträng som du bygger upp med hjälp av andra funktioner och värdena i andra celler. Och det är precis vad vi ska göra. Om du följer med i det här, kommer du att förstå resten med lätthet : )

    Som du minns har vi använt ytterligare tre funktioner i formeln - ADDRESS, COLUMN och ROW.

    ADDRESS-funktionen hämtar celladressen genom de rad- och kolumnnummer som du anger. Kom ihåg ordningen: första - rad, andra - kolumn.

    I vår formel anger vi koordinaterna i omvänd ordning, och det är detta som faktiskt gör susen! Med andra ord byter denna del av formeln ADDRESS(COLUMN(A1),ROW(A1)) ut rader mot kolumner, dvs. tar ett kolumnnummer och ändrar det till ett radnummer, och tar sedan ett radnummer och ändrar det till ett kolumnnummer.

    Slutligen ger INDIRECT-funktionen ut de roterade uppgifterna. Det är väl inget hemskt alls?

    Transponera data i Excel med hjälp av VBA-makro

    Om du vill automatisera konverteringen av rader till kolumner i Excel kan du använda följande makro:

    Sub TransposeColumnsRows() Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Välj det område som ska omställas" , Title:= "Transpose Rows to Columns" , Type :=8) Set DestRange = Application.InputBox(Prompt:= "Välj den övre vänstra cellen i målområdet" , Title:= "Transpose Rows to Columns" , Type :=8) SourceRange.Copy DestRange.Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End Sub

    Om du vill lägga till ett makro i arbetsbladet följer du de riktlinjer som beskrivs i Så här lägger du in och kör VBA-kod i Excel.

    Observera: Transponering med VBA har en begränsning på 65536 element. Om din array överskrider denna gräns kommer de extra uppgifterna att slängas bort i tysthet.

    Hur du använder makrot för att konvertera rad till kolumn

    När makrot är infogat i arbetsboken utför du nedanstående steg för att rotera tabellen:

    1. Öppna målarbetsbladet, tryck på Alt + F8 , välj TransposeColumnsRows makro och klicka på Kör .

  • Välj det område där du vill byta rader och kolumner och klicka på OK :
  • Markera den övre vänstra cellen i målområdet och klicka på OK :
  • Njut av resultatet :)

    Växla kolumner och rader med verktyget Transponera

    Om du regelbundet behöver utföra omvandlingar mellan rader och kolumner kanske du letar efter ett snabbare och enklare sätt. Lyckligtvis har jag ett sådant sätt i min Excel, och det har även andra användare av vår Ultimate Suite :)

    Låt mig visa dig hur du byter rader och kolumner i Excel bokstavligen med ett par klick:

    1. Markera en enskild cell i tabellen, gå till Ablebits flik> Förvandla gruppen och klicka på Transponera knapp.

  • Standardinställningarna fungerar bra i de flesta fall, så du klickar helt enkelt på Transponera utan att ändra något.
  • Om du vill Endast klistra in värden eller . Skapa länkar till källdata Om du vill att den roterade tabellen ska uppdateras automatiskt vid varje ändring som du gör i den ursprungliga tabellen, väljer du motsvarande alternativ.

    Tabellen är omställd, formateringen är bevarad och inga ytterligare ändringar behövs:

    Om du är nyfiken på att prova detta och fler än 70 andra professionella verktyg för Excel kan du ladda ner en testversion av vår Ultimate Suite. Tack för att du läste och jag hoppas att vi ses på vår blogg nästa vecka!

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.