Hogyan válthatunk oszlopokat és sorokat az Excelben?

  • Ossza Meg Ezt
Michael Brown

A bemutató különböző módokat mutat be a sorok oszlopokra váltására az Excelben: képleteket, VBA-kódot és egy speciális eszközt.

Az adatok átfordítása az Excelben sok felhasználó számára ismerős feladat. Gyakran előfordul, hogy egy összetett táblázatot készítünk, és aztán rájövünk, hogy a jobb elemzés vagy az adatok grafikonokon való bemutatása érdekében érdemes elforgatni azt.

Ebben a cikkben számos módszert talál a sorok oszlopokká (vagy oszlopok sorokká) való átalakítására, bárhogy is hívja, ugyanaz a dolog : ) Ezek a megoldások az Excel 2010-től az Excel 365-ig minden Excel-verzióban működnek, számos lehetséges forgatókönyvet lefednek, és elmagyarázzák a legtöbb tipikus hibát.

    Sorok átalakítása oszlopokká az Excelben a Paste Special használatával

    Tegyük fel, hogy az alábbi grafikon felső részén láthatóhoz hasonló adatkészlettel rendelkezünk. Az országok nevei oszlopokba vannak rendezve, de az országok listája túl hosszú, ezért jobb, ha az oszlopokat sorokra cseréljük, hogy a táblázat elférjen a képernyőn:

    A sorok oszlopokra váltásához hajtsa végre a következő lépéseket:

    1. Az eredeti adatok kijelölése. Az egész táblázat, azaz a táblázat összes adatot tartalmazó cellájának gyors kijelöléséhez nyomja meg a Ctrl + Home, majd a Ctrl + Shift + End billentyűkombinációt.
    2. Másolja a kijelölt cellákat vagy a kijelölésre jobb egérgombbal kattintva, majd a Másolás a kontextus menüből vagy a Ctrl + C billentyűkombinációval.
    3. Jelölje ki a céltartomány első celláját.

      Ügyeljen arra, hogy olyan cellát válasszon ki, amely kívül esik az eredeti adatokat tartalmazó tartományon, hogy a másolási és beillesztési területek ne fedjék egymást. Ha például jelenleg 4 oszlop és 10 sor van, az átalakított táblázat 10 oszlopot és 4 sort fog tartalmazni.

    4. Kattintson a jobb gombbal a célcellára, és válassza a Beillesztés Special a kontextusmenüből, majd válassza a Transpose .

    További információért lásd: Hogyan használjuk a beillesztési speciális parancsot az Excelben.

    Megjegyzés: Ha a forrásadatok képleteket tartalmaznak, ügyeljen arra, hogy megfelelően használja a relatív és abszolút hivatkozásokat attól függően, hogy azokat ki kell-e igazítani, vagy bizonyos cellákhoz rögzítve maradnak.

    Mint az imént láthatta, a Beillesztés speciális funkcióval szó szerint néhány másodperc alatt végezhet sorból oszlopba (vagy oszlopból sorba) történő átalakításokat. Ez a módszer az eredeti adatok formázását is átmásolja, ami még egy érv a javára.

    Ez a megközelítés azonban két hátránya van amelyek megakadályozzák, hogy tökéletes megoldásnak nevezzük az adatok Excelben történő átvitelére:

    • Nem alkalmas teljesen működő Excel táblázatok forgatására. Ha a teljes táblázatot másolja, majd megnyitja a Beillesztés Special párbeszédpanelben találja a Transpose Ebben az esetben vagy oszlopfejlécek nélkül kell másolnia a táblázatot, vagy először tartományba kell konvertálnia.
    • Beillesztés Special > Transpose nem kapcsolja össze az új táblázatot az eredeti adatokkal, ezért csak egyszeri konverzióra alkalmas. Amikor a forrásadatok megváltoznak, meg kell ismételni a folyamatot, és újra el kell forgatni a táblázatot. Senki sem szeretné az idejét arra pazarolni, hogy újra és újra ugyanazokat a sorokat és oszlopokat cserélje, igaz?

    Hogyan lehet egy táblázatot áthelyezni és összekapcsolni az eredeti adatokkal?

    Lássuk, hogyan válthatunk sorokat oszlopokra a jól ismert Beillesztés Special technikát, de a kapott táblázatot az eredeti adatállományhoz kapcsolja. A legjobb ebben a megközelítésben az, hogy amikor megváltoztatja a forrás táblában lévő adatokat, a megfordított táblázat tükrözi a változásokat, és ennek megfelelően frissül.

    1. Másolja ki azokat a sorokat, amelyeket oszlopokká (vagy oszlopokat sorokká) szeretne átalakítani.
    2. Válasszon ki egy üres cellát ugyanazon vagy egy másik munkalapon.
    3. Nyissa meg a Beillesztés Special párbeszédpanelt az előző példában leírtak szerint, majd kattintson a Link beillesztése a bal alsó sarokban:

    Ehhez hasonló eredményt fog kapni:

  • Jelölje ki az új táblázatot, és nyissa meg az Excel Keresés és csere párbeszédpanelét (vagy nyomja meg a Ctrl + H billentyűkombinációt, hogy elérje a Cserélje ki a címet. lapot rögtön).
  • Az összes "=" karaktert helyettesítse "xxx"-nel vagy bármely más karakterrel, amely nem létezik sehol a valós adatokban.
  • Ez egy kicsit ijesztővé változtatja az asztalodat, ahogy az alábbi képernyőképen is látható, de ne ess pánikba, csak még 2 lépés, és máris elérheted a kívánt eredményt.

  • Másolja a táblázatot az "xxx" értékekkel, majd használja a Paste Special> Transzponálás oszlopok sorokba fordítása
  • Végül nyissa meg a Keresés és csere párbeszédpanelen még egyszer visszafordítja a módosítást, azaz az összes "xxx"-t "="-ra cseréli, hogy visszaállítsa a hivatkozásokat az eredeti cellákhoz.
  • Ez egy kicsit hosszú, de elegáns megoldás, nem igaz? Az egyetlen hátránya ennek a megközelítésnek, hogy az eredeti formázás elveszik a folyamat során, és manuálisan kell visszaállítanod (a bemutató további részében mutatok egy gyors módszert erre).

    Hogyan lehet transzponálni az Excelben képletek segítségével

    Az Excelben az oszlopok és sorok dinamikus cseréjének gyorsabb módja a TRANSPOSE vagy az INDEX/ADDRESS formula használata. Az előző példához hasonlóan ezek a formulák is megtartják az eredeti adatokkal való kapcsolatokat, de egy kicsit másképp működnek.

    Sorok oszlopokká változtatása az Excelben a TRANSPOSE funkció használatával

    Ahogy a neve is mutatja, a TRANSPOSE funkciót kifejezetten az adatok Excelben történő átvitelére tervezték:

    =TRANSPOSE(tömb)

    Ebben a példában egy másik táblázatot fogunk átalakítani, amely az amerikai államokat népesség szerint listázza:

    1. Számolja meg az eredeti táblázat sorainak és oszlopainak számát, és válasszon ki ugyanennyi üres cellát, de a másik irányban.

      Például a mintatáblánknak 7 oszlopa és 6 sora van, beleértve a címsorokat is. Mivel a TRANSPOSE függvény az oszlopokat sorokká változtatja, a 6 oszlop és 7 sor tartományt választjuk ki.

    2. Az üres cellák kijelölésével írja be ezt a képletet:

      =TRANSPOSE(A1:G6)

    3. Mivel a képletünket több cellára kell alkalmazni, nyomja le a Ctrl + Shift + Enter billentyűkombinációt, hogy tömbképletet készítsen.

    Voilá, az oszlopok sorokká változnak, pontosan úgy, ahogyan szerettük volna:

    A TRANSPOSE funkció előnyei:

    A TRANSPOSE funkció használatának fő előnye, hogy az elforgatott táblázat megtartja a kapcsolatot a forrás táblával, és amikor megváltoztatja a forrásadatokat, az átforgatott táblázat is ennek megfelelően változik.

    A TRANSPOSE funkció gyengeségei:

    • Az eredeti táblázat formázása nem kerül elmentésre a konvertált táblázatban, ahogy a fenti képernyőképen látható.
    • Ha az eredeti táblázatban üres cellák vannak, akkor az áthelyezett cellák helyette 0-t fognak tartalmazni. Ennek kijavításához használja a TRANSPOSE-t az IF függvénnyel kombinálva, ahogyan az ebben a példában szerepel: Hogyan kell nullák nélkül áthelyezni.
    • Az elforgatott táblázatban nem szerkesztheti a cellákat, mert az nagyon függ a forrásadatoktól. Ha megpróbálja megváltoztatni valamelyik cella értékét, a "Nem módosíthatja egy tömb részét" hibaüzenetet kapja.

    Összefoglalva, bármennyire is jó és könnyen használható a TRANSPOSE függvény, a rugalmassága bizonyosan hiányzik, ezért sok helyzetben nem biztos, hogy a legjobb megoldás.

    További információért lásd az Excel TRANSPOSE funkcióját példákkal.

    Sorok oszlopokká alakítása INDIRECT és ADDRESS függvényekkel

    Ebben a példában két függvény kombinációját fogjuk használni, ami egy kicsit trükkös. Tehát forgassunk egy kisebb táblázatot, így jobban tudunk koncentrálni a képletre.

    Tegyük fel, hogy 4 oszlopban (A - D) és 5 sorban (1-5) vannak adataink:

    Az oszlopok sorokra váltásához a következőket kell tennie:

    1. Írja be az alábbi képletet a céltartomány bal szélső cellájába, mondjuk A7-be, és nyomja meg az Enter billentyűt:

      =INDIREKT(CÍM(OSZLOP(A1),SOR(A1))))

    2. Másolja a képletet jobbra és lefelé annyi sorba és oszlopba, ahány sorba és oszlopba szükséges, a kijelölt cellák jobb alsó sarkában lévő kis fekete kereszt húzásával:

    Ez az! Az újonnan létrehozott táblázatban az összes oszlop sorokra változik.

    Ha az adatai nem az 1. sorban és nem az A oszlopban kezdődnek, akkor egy kicsit összetettebb képletet kell használnia:

    =INDIRECT(ADDRESS(COLUMN(A1) - COLUMN($A$1) + ROW($A$1), ROW(A1) - ROW($A$1) + COLUMN($A$1)))))

    Ahol A1 a forrás táblázat bal felső cellája. Kérjük, vegye figyelembe az abszolút és relatív cellahivatkozások használatát is.

    Az átültetett cellák azonban az eredeti adatokhoz képest nagyon egyszerűnek és unalmasnak tűnnek:

    De ne csalódjon, ez a probléma könnyen orvosolható. Az eredeti formázás visszaállításához a következőket kell tennie:

    • Másolja az eredeti táblázatot.
    • Válassza ki a kapott táblázatot.
    • Kattintson a jobb gombbal a kapott táblázatra, és válassza a Beillesztési lehetőségek > Formázás .

    Előnyök : Ez a képlet rugalmasabb módot biztosít a sorok oszlopokká alakítására az Excelben. Lehetővé teszi bármilyen változtatás elvégzését az áthelyezett táblázatban, mivel rendes képletet használ, nem pedig tömbképletet.

    Hiányosságok : Csak egyet látok - a sorszámadatok formázása elveszett. Bár gyorsan visszaállítható, ahogy fentebb látható.

    Hogyan működik ez a képlet

    Most, hogy már tudja, hogyan kell használni az INDIRECT / ADRESS kombinációt, érdemes megismerni, hogy mit is csinál valójában a képlet.

    Ahogy a neve is mutatja, az INDIRECT függvény, arra szolgál, hogy közvetett módon hivatkozzon egy cellára. De az INDIRECT igazi ereje az, hogy bármilyen karakterláncot hivatkozássá tud alakítani, beleértve egy olyan karakterláncot is, amelyet más függvények és más cellák értékeinek felhasználásával építünk fel. És pontosan ezt fogjuk tenni. Ha ezt követed, akkor a többit is könnyedén megérted : ).

    Mint emlékszik, a képletben további 3 függvényt használtunk - ADRESS, COLUMN és ROW.

    Az ADDRESS függvény a cellák címét a megadott sor- és oszlopszámok alapján kapja meg. Ne feledje a sorrendet: első - sor, második - oszlop.

    A mi képletünkben a koordinátákat fordított sorrendben adjuk meg, és ez az, ami ténylegesen megteszi a trükköt! Más szóval, a képletnek ez a része ADDRESS(COLUMN(A1),ROW(A1)) felcseréli a sorokat oszlopokra, azaz vesz egy oszlopszámot és sorszámra változtatja, majd vesz egy sorszámot és oszlopszámra változtatja.

    Végül az INDIRECT függvény kiadja a forgatott adatokat. Egyáltalán nem szörnyű, ugye?

    Adatok transzponálása Excelben VBA makró használatával

    A sorok oszlopokká történő átalakításának automatizálására az Excelben a következő makróval automatizálhatja:

    Sub TransposeColumnsRows() Dim SourceRrange As Range Dim DestRrange As Range Set SourceRrange = Application.InputBox(Prompt:= "Kérjük, válassza ki az átvitelre szánt tartományt" , Title:= "Sorok átvitele oszlopokra" , Type :=8) Set DestRrange = Application.InputBox(Prompt:= "Válassza ki a céltartomány bal felső celláját" , Title:= "Sorok átvitele oszlopokra" , Type :=8) SourceRrange.Copy DestRrange. Select.Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End Sub

    Makró hozzáadásához a munkalaphoz kövesse a Hogyan illesszünk be és futtassunk VBA-kódot az Excelben című fejezetben leírtakat.

    Megjegyzés: A VBA-val történő transzponálásnak 65536 elemes korlátja van. Ha a tömb meghaladja ezt a korlátot, a többletadatok némán el lesznek dobva.

    Hogyan használjuk a makrót a sorok oszlopokká történő átalakítására?

    A makró beillesztésével a munkafüzetbe, hajtsa végre az alábbi lépéseket a táblázat forgatásához:

    1. Nyissa meg a cél munkalapot, nyomja meg az Alt + F8 billentyűkombinációt, válassza ki a TransposeColumnsRows makró, és kattintson a Fuss .

  • Válassza ki azt a tartományt, ahol a sorok és oszlopok között váltani szeretne, és kattintson a OK :
  • Jelölje ki a céltartomány bal felső celláját, majd kattintson a OK :
  • Élvezd az eredményt :)

    Oszlopok és sorok váltása a Transpose eszközzel

    Ha rendszeresen kell sor-oszlop átalakításokat végeznie, akkor valóban kereshet egy gyorsabb és egyszerűbb módszert. Szerencsére nekem van egy ilyen módszer az Excelemben, és az Ultimate Suite többi felhasználójának is :)

    Hadd mutassam meg, hogyan lehet szó szerint néhány kattintással sorokat és oszlopokat váltani az Excelben:

    1. Válassza ki a táblázat bármelyik celláját, lépjen a Ablebits tab> Átalakítás csoport, és kattintson a Transpose gomb.

  • Az alapértelmezett beállítások a legtöbb esetben jól működnek, így egyszerűen kattintson a Transpose anélkül, hogy bármit is megváltoztatna.
  • Ha szeretnél Csak értékek beillesztése vagy Linkek létrehozása a forrásadatokhoz ha azt szeretné elérni, hogy az elforgatott táblázat automatikusan frissüljön az eredeti táblázat minden egyes módosításakor, válassza a megfelelő opciót.

    Kész! A táblázat át lett helyezve, a formázás megmaradt, nincs szükség további manipulációra:

    Ha kíváncsi vagy erre és több mint 70 másik professzionális eszközre az Excelhez, akkor meghívlak, hogy töltsd le az Ultimate Suite próbaverzióját. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogunkon!

    Michael Brown elkötelezett technológiai rajongó, aki szenvedélyesen egyszerűsíti a bonyolult folyamatokat szoftvereszközök segítségével. A technológiai iparban szerzett több mint egy évtizedes tapasztalatával a Microsoft Excel és az Outlook, valamint a Google Táblázatok és a Dokumentumok területén fejlesztette tudását. Michael blogja célja, hogy megossza tudását és szakértelmét másokkal, könnyen követhető tippeket és oktatóanyagokat adva a termelékenység és a hatékonyság javításához. Akár tapasztalt szakember, akár kezdő, Michael blogja értékes betekintést és gyakorlati tanácsokat kínál, amelyek segítségével a legtöbbet hozhatja ki ezekből az alapvető szoftvereszközökből.