Turinys
Pamokoje pateikiami įvairūs būdai, kaip "Excel" programoje perjungti eilutes į stulpelius: formulės, VBA kodas ir specialus įrankis.
Duomenų perkėlimas "Excel" programoje yra užduotis, pažįstama daugeliui naudotojų. Gana dažnai sukuriate sudėtingą lentelę tik tam, kad suprastumėte, jog ją tikslinga pasukti, kad galėtumėte geriau analizuoti ar pateikti duomenis diagramose.
Šiame straipsnyje rasite keletą būdų, kaip konvertuoti eilutes į stulpelius (arba stulpelius į eilutes), nesvarbu, kaip tai pavadinsite, tai tas pats : ) Šie sprendimai veikia visose "Excel 2010" ir "Excel 365" versijose, apima daugybę galimų scenarijų ir paaiškina daugumą tipinių klaidų.
Eilučių konvertavimas į stulpelius programoje "Excel" naudojant specialųjį įterpimą
Tarkime, kad turite duomenų rinkinį, panašų į tą, kuris matomas toliau pateikto grafiko viršutinėje dalyje. Šalių pavadinimai išdėstyti stulpeliais, tačiau šalių sąrašas yra per ilgas, todėl, kad lentelė tilptų į ekraną, geriau stulpelius pakeisti eilutėmis:
Norėdami perjungti eilutes į stulpelius, atlikite šiuos veiksmus:
- Pasirinkite pradinius duomenis. Norėdami greitai pasirinkti visą lentelę, t. y. visus skaičiuoklės langelius su duomenimis, paspauskite Ctrl + Home ir tada Ctrl + Shift + End .
- Kopijuokite pasirinktas ląsteles, dešiniuoju pelės klavišu spustelėdami pasirinkimą ir pasirinkdami Kopijuoti iš kontekstinio meniu arba paspausdami Ctrl + C .
- Pasirinkite pirmąją paskirties srities ląstelę.
Įsitikinkite, kad pasirinkote ląstelę, kuri nepatenka į diapazoną, kuriame yra pradiniai duomenys, kad kopijavimo ir įklijavimo sritys nepersidengtų. Pavyzdžiui, jei šiuo metu turite 4 stulpelius ir 10 eilučių, konvertuotoje lentelėje bus 10 stulpelių ir 4 eilutės.
- Dešiniuoju pelės mygtuku spustelėkite paskirties ląstelę ir pasirinkite Specialusis įklijavimas iš kontekstinio meniu, tada pasirinkite Transponuoti .
Daugiau informacijos rasite skyriuje Kaip naudoti "Paste Special" programoje "Excel".
Pastaba. Jei jūsų šaltinio duomenyse yra formulių, būtinai tinkamai naudokite santykines ir absoliučiąsias nuorodas, priklausomai nuo to, ar jas reikia koreguoti, ar jos lieka užrakintos tam tikrose ląstelėse.
Kaip ką tik matėte, funkcija "Paste Special" leidžia atlikti eilutės į stulpelį (arba stulpelio į eilutę) transformacijas tiesiog per kelias sekundes. Šis metodas taip pat kopijuoja pradinių duomenų formatavimą, o tai yra dar vienas argumentas jo naudai.
Tačiau šis metodas du trūkumai dėl kurių jo negalima vadinti tobulu sprendimu, skirtu duomenų perkėlimui "Excel" programoje:
- Ji nėra tinkama visiškai veikiančioms "Excel" lentelėms sukti. Jei nukopijuosite visą lentelę ir tada atidarysite Specialusis įklijavimas dialogo lange rasite Transponuoti Tokiu atveju reikia nukopijuoti lentelę be stulpelių antraščių arba pirmiausia konvertuoti ją į intervalą.
- Specialusis įklijavimas > Transponuoti nesusieja naujosios lentelės su pradiniais duomenimis, todėl ji tinka tik vienkartiniam konvertavimui. Pasikeitus šaltinio duomenims, tektų kartoti procesą ir sukti lentelę iš naujo. Juk niekas nenorėtų gaišti laiko, kad vėl ir vėl keistų tas pačias eilutes ir stulpelius, tiesa?
Kaip perkelti lentelę ir susieti ją su pradiniais duomenimis
Pažiūrėkime, kaip galite perjungti eilutes į stulpelius naudodami gerai žinomą Specialusis įklijavimas metodą, tačiau gautą lentelę sujunkite su pradiniu duomenų rinkiniu. Geriausia, kad kai tik pakeisite pradinės lentelės duomenis, apversta lentelė atspindės pokyčius ir bus atitinkamai atnaujinta.
- Nukopijuokite eilutes, kurias norite konvertuoti į stulpelius (arba stulpelius, kuriuos norite pakeisti į eilutes).
- Pasirinkite tuščią ląstelę tame pačiame arba kitame darbalapyje.
- Atidarykite Specialusis įklijavimas dialogo langą, kaip paaiškinta ankstesniame pavyzdyje, ir spustelėkite Įklijuoti nuorodą apatiniame kairiajame kampe:
Rezultatas bus panašus į šį:
Tai pavers jūsų lentelę šiek tiek bauginančia, kaip matote toliau pateiktoje ekrano nuotraukoje, tačiau nepanikuokite, atlikite dar 2 veiksmus ir pasieksite norimą rezultatą.
Tai šiek tiek ilgas, bet elegantiškas sprendimas, ar ne? Vienintelis šio metodo trūkumas yra tas, kad pirminis formatavimas prarandamas ir jį reikia atkurti rankiniu būdu (toliau šioje pamokoje parodysiu greitą būdą, kaip tai padaryti).
Kaip "Excel" persikelti naudojant formules
Greitesnis būdas dinamiškai perjungti stulpelius į eilutes "Excel" programoje - naudoti TRANSPOSE arba INDEX/ADDRESS formulę. Kaip ir ankstesniame pavyzdyje, šios formulės taip pat išlaiko ryšius su pradiniais duomenimis, tačiau veikia šiek tiek kitaip.
Eilučių keitimas į stulpelius "Excel" programoje naudojant funkciją TRANSPOSE
Kaip matyti iš pavadinimo, funkcija TRANSPOSE yra specialiai sukurta duomenims perkelti "Excel" programoje:
=TRANSPOSE(masyvas)Šiame pavyzdyje konvertuosime kitą lentelę, kurioje JAV valstijos išvardytos pagal gyventojų skaičių:
- Suskaičiuokite pradinės lentelės eilučių ir stulpelių skaičių ir pasirinkite tiek pat tuščių langelių, bet kita kryptimi.
Pavyzdžiui, mūsų pavyzdinėje lentelėje yra 7 stulpeliai ir 6 eilutės, įskaitant antraštes. Kadangi funkcija TRANSPOSE pakeis stulpelius į eilutes, pasirenkame 6 stulpelių ir 7 eilučių intervalą.
- Pasirinkę tuščius langelius, įveskite šią formulę:
=TRANSPOZICIJA(A1:G6)
- Kadangi mūsų formulę reikia taikyti kelioms ląstelėms, paspauskite Ctrl + Shift + Enter, kad formulė taptų masyvo formule.
Voila, stulpeliai pakeičiami į eilutes, kaip ir norėjome:
TRANSPOSE funkcijos privalumai:
Pagrindinis TRANSPOSE funkcijos naudojimo privalumas yra tas, kad pasukta lentelė išlaiko ryšį su šaltinio lentele ir, kai tik pakeisite šaltinio duomenis, atitinkamai pasikeis ir perkelta lentelė.
TRANSPOSE funkcijos trūkumai:
- Kaip matote pirmiau pateiktoje ekrano nuotraukoje, konvertuotoje lentelėje pirminis lentelės formatavimas neišsaugomas.
- Jei pradinėje lentelėje yra tuščių langelių, perkeltuose langeliuose vietoj jų bus 0. Norėdami tai ištaisyti, naudokite TRANSPOSE kartu su funkcija IF, kaip paaiškinta šiame pavyzdyje: Kaip perkelti be nulių.
- Negalite redaguoti jokių pasuktos lentelės langelių, nes ji labai priklauso nuo šaltinio duomenų. Jei bandysite pakeisti kurios nors langelio reikšmę, gausite klaidą "You cannot change part of an array" (negalima keisti masyvo dalies).
Apibendrinant galima teigti, kad ir kokia gera ir paprasta būtų naudoti TRANSPOSE funkcija, jai tikrai trūksta lankstumo, todėl daugeliu atvejų ji gali būti ne pats geriausias būdas.
Daugiau informacijos rasite "Excel" funkcijos TRANSPOSE pavyzdžiuose.
Eilutės konvertavimas į stulpelį naudojant INDIRECT ir ADDRESS funkcijas
Šiame pavyzdyje bus naudojamas dviejų funkcijų derinys, kuris yra šiek tiek sudėtingas. Taigi, pasukime mažesnę lentelę, kad būtų galima geriau sutelkti dėmesį į formulę.
Tarkime, turite duomenis 4 stulpeliuose (A - D) ir 5 eilutėse (1 - 5):
Jei norite, kad stulpeliai būtų perjungti į eilutes, atlikite šiuos veiksmus:
- Įveskite toliau pateiktą formulę į labiausiai kairėje esančią paskirties srities ląstelę, tarkime, A7, ir paspauskite klavišą Enter:
=INDIRECT(ADRESAS(STULPELIS(A1),EILUTĖ(A1)))
- Nukopijuokite formulę į dešinę ir žemyn į tiek eilučių ir stulpelių, kiek reikia, vilkdami mažą juodą kryžiuką apatiniame dešiniajame pasirinktų langelių kampe:
Štai ir viskas! Jūsų naujai sukurtoje lentelėje visi stulpeliai pakeisti į eilutes.
Jei jūsų duomenys prasideda kitoje eilutėje nei 1 ir kitame stulpelyje nei A, turėsite naudoti šiek tiek sudėtingesnę formulę:
=INDIRECT(ADRESAS(STULPELIS(A1) - STULPELIS($A$1) + EILUTĖ($A$1), EILUTĖ(A1) - EILUTĖ($A$1) + STULPELIS($A$1))))
Kai A1 yra viršutinė kairė viršutinė jūsų šaltinio lentelės ląstelė. Be to, nepamirškite naudoti absoliučiųjų ir santykinių ląstelių nuorodų.
Tačiau, palyginti su pradiniais duomenimis, perkeltos ląstelės atrodo labai paprastos ir nuobodžios:
Tačiau nenusivilkite, šią problemą galima lengvai išspręsti. Norėdami atkurti pradinį formatavimą, atlikite šiuos veiksmus:
- Nukopijuokite pirminę lentelę.
- Pasirinkite gautą lentelę.
- Dešiniuoju pelės mygtuku spustelėkite gautą lentelę ir pasirinkite Įklijuoti parinktys > Formatavimas .
Privalumai : Ši formulė yra lankstesnis būdas paversti eilutes į stulpelius "Excel" programoje. Ji leidžia atlikti bet kokius pakeitimus perkeltoje lentelėje, nes naudojama įprasta formulė, o ne masyvo formulė.
Trūkumai : matau tik vieną - prarandamas eiliškumo duomenų formatavimas. Nors, kaip parodyta aukščiau, galite greitai jį atkurti.
Kaip veikia ši formulė
Dabar, kai jau žinote, kaip naudoti kombinaciją INDIRECT / ADDRESS, galbūt norėsite sužinoti, ką iš tikrųjų daro ši formulė.
Funkcija INDIRECT, kaip rodo jos pavadinimas, naudojama netiesioginei nuorodai į ląstelę pateikti. Tačiau tikroji INDIRECT galia yra ta, kad ji gali bet kokią eilutę paversti nuoroda, įskaitant eilutę, kurią sudarėte naudodami kitas funkcijas ir kitų ląstelių reikšmes. Būtent tai ir padarysime. Jei sekate iki galo, lengvai suprasite visą kitą : )
Kaip pamenate, formulėje naudojome dar 3 funkcijas - ADDRESS, COLUMN ir ROW.
Funkcija ADDRESS gauna ląstelės adresą atitinkamai pagal nurodytus eilutės ir stulpelio numerius. Atminkite tvarką: pirma - eilutė, antra - stulpelis.
Mūsų formulėje koordinates pateikiame atvirkštine tvarka, ir tai iš tikrųjų atlieka triuką! Kitaip tariant, ši formulės dalis ADDRESS(COLUMN(A1),ROW(A1)) pakeičia eilutes į stulpelius, t. y. paima stulpelio numerį ir pakeičia jį eilutės numeriu, tada paima eilutės numerį ir pakeičia jį stulpelio numeriu.
Galiausiai funkcija INDIRECT išveda pasuktus duomenis. Nieko baisaus, ar ne?
Duomenų perkėlimas "Excel" naudojant VBA makrokomandą
Norėdami automatizuoti eilučių konvertavimą į stulpelius "Excel" programoje, galite naudoti šį makrokomandą:
Sub TransposeColumnsRows() Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Please select the range to transpose" , Title:= "Transpose Rows to Columns" , Type :=8) Set DestRange = Application.InputBox(Prompt:= "Select the upper left cell of the destination range" , Title:= "Transpose Rows to Columns" , Type :=8) SourceRange.Copy DestRange. SelectSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End SubNorėdami į darbalapį įtraukti makrokomandą, vadovaukitės gairėmis, aprašytomis skyriuje Kaip įterpti ir paleisti VBA kodą programoje "Excel".
Pastaba. Perkėlimas naudojant VBA turi 65536 elementų apribojimą. Jei jūsų masyvas viršija šią ribą, papildomi duomenys bus tyliai išmesti.
Kaip naudoti makrokomandą eilutei konvertuoti į stulpelį
Į sąsiuvinį įterpę makrokomandą, atlikite toliau nurodytus veiksmus, kad pasuktumėte lentelę:
- Atidarykite tikslinį darbalapį, paspauskite Alt + F8 , pasirinkite TransposeColumnsRows makrokomandą ir spustelėkite Paleisti .
Mėgaukitės rezultatu :)
Stulpelių ir eilučių perjungimas naudojant įrankį "Transpose
Jei jums reikia reguliariai atlikti eilučių ir stulpelių transformacijas, galbūt iš tikrųjų ieškote greitesnio ir paprastesnio būdo. Laimei, tokį būdą turiu savo "Excel" programoje, kaip ir kiti mūsų "Ultimate Suite" naudotojai :)
Parodysiu jums, kaip "Excel" programoje perjungti eilutes ir stulpelius tiesiog keliais spustelėjimais:
- Pasirinkite bet kurią vieną lentelės ląstelę, eikite į Ablebits skirtukas> Transformuoti grupę ir spustelėkite Transponuoti mygtuką.
Jei norite Tik įklijuoti vertes arba Sukurti nuorodas į šaltinio duomenis norėdami priversti pasuktą lentelę automatiškai atnaujinti kiekvieną pradinės lentelės pakeitimą, pasirinkite atitinkamą parinktį.
Atlikta! Lentelė perkelta, formatavimas išsaugotas, jokių papildomų veiksmų atlikti nereikia:
Jei norite išbandyti šiuos ir daugiau nei 70 kitų profesionalių "Excel" įrankių, kviečiu atsisiųsti bandomąją "Ultimate Suite" versiją. Dėkoju, kad skaitote, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!