Turinys
Lengvas būdas transformuoti masyvą arba intervalą į stulpelį naudojant funkciją TOCOL.
Galimybė perkelti duomenis iš stulpelių į eilutes ir atvirkščiai "Excel" programoje yra jau seniai. Tačiau paversti langelių intervalą į vieną stulpelį buvo sudėtinga užduotis. Dabar tai pagaliau keičiasi. "Microsoft" pristatė naują funkciją, pavadintą TOCOL, kuri gali akimirksniu paversti masyvą į stulpelį. Toliau pateikiamas užduočių, kurias ši naujoji funkcija gali lengvai išspręsti, sąrašas.
"Excel" TOCOL funkcija
"Excel" funkcija TOCOL konvertuoja masyvą arba ląstelių intervalą į vieną stulpelį.
Funkcijai reikalingi trys argumentai, tačiau reikalingas tik pirmasis.
TOCOL(masyvas, [ignore], [scan_by_column])Kur:
Masyvas (privaloma) - masyvas arba diapazonas, kurį reikia paversti stulpeliu.
Ignoruokite (neprivaloma) - apibrėžia, ar ignoruoti tuščias vietas ir (arba) klaidas. Gali būti viena iš šių verčių:
- 0 arba praleista (numatytoji reikšmė) - palikti visas reikšmes
- 1 - ignoruoti tuščius langus
- 2 - ignoruoti klaidas
- 3 - ignoruokite tuščias vietas ir klaidas
Scan_by_column (neprivaloma) - nustato, ar masyvą skenuoti horizontaliai, ar vertikaliai:
- FALSE arba praleista (numatytoji reikšmė) - nuskaityti masyvą pagal eilutes iš kairės į dešinę.
- TRUE - nuskaitykite masyvą pagal stulpelį iš viršaus į apačią.
Patarimai:
- Norėdami paversti masyvą į vieną eilutę, naudokite funkciją TOROW.
- Jei norite atlikti priešingą stulpelio ir eilutės transformaciją, naudokite WRAPCOLS funkciją, kad suvyniotumėte pagal stulpelį, arba WRAPROWS funkciją, kad suvyniotumėte pagal eilutę.
- Norėdami transponuoti masyvą iš horizontalaus į vertikalų arba atvirkščiai, t. y. pakeisti eilutes į stulpelius, naudokite funkciją TRANSPOSE.
TOCOL prieinamumas
TOCOL yra nauja funkcija, kuri palaikoma "Excel for Microsoft 365" ("Windows" ir "Mac") ir "Excel for the web".
Pagrindinė TOCOL formulė, skirta diapazonui transformuoti į stulpelį
Paprasčiausiai TOCOL formulei reikia tik vieno argumento - masyvas Pavyzdžiui, norint dvimatį masyvą, sudarytą iš 3 stulpelių ir 4 eilučių, patalpinti į vieną stulpelį, formulė yra tokia:
=TOCOL(A2:C5)
Formulė įvedama tik į vieną langelį (šiame pavyzdyje - E2) ir automatiškai išsilieja į toliau esančius langelius. Excel programoje rezultatas vadinamas išsiliejimo diapazonu.
Kaip veikia ši formulė:
Techniškai diapazonas A2:C5 pirmiausia paverčiamas į dvimatį masyvą. Atkreipkite dėmesį į kabliataškiu atskirtas eilutes ir kableliais apribotus stulpelius:
{"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}
Funkcija TOCOL nuskaito masyvą iš kairės į dešinę ir paverčia jį vienmačiu vertikaliuoju masyvu:
{"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}
Rezultatas įrašomas į E2 langelį, iš kurio išsilieja į toliau esančius langelius.
Kaip naudoti funkciją TOCOL "Excel" programoje - formulės pavyzdžiai
Kad geriau suprastumėte TOCOL funkcijos galimybes ir kokias užduotis ji gali atlikti, panagrinėkime keletą formulių pavyzdžių.
Transformuoti masyvą į stulpelį, neatsižvelgiant į tuščias vietas ir klaidas
Kaip pastebėjote ankstesniame pavyzdyje, numatytoji TOCOL formulė išsaugo visas šaltinio masyvo reikšmes, įskaitant tuščius langelius ir klaidas.
Gautame masyve tušti langeliai žymimi nuliais, o tai gali būti gana painu, ypač jei pradiniame masyve yra 0 reikšmių. praleisti tuščius laukelius . Šiuo atveju nustatote, kad 2-asis argumentas yra 1:
=TOKOLAS(A2:C5, 1)
Į ignoruoti klaidas , 2-ąjį argumentą nustatykite kaip 2:
=TOKOLAS(A2:C5, 2)
Neįtraukti abiejų, tuščios vietos ir klaidos , naudokite 3 ignoruoti argumentas:
=TOKOLAS(A2:C5, 3)
Masyvo nuskaitymas horizontaliai arba vertikaliai
Naudojant numatytuosius nustatymus scan_by_column argumentas (FALSE arba praleistas), funkcija TOCOL nuskaito masyvą horizontaliai pagal eilutes. Jei norite apdoroti reikšmes pagal stulpelius, nustatykite šį argumentą TRUE arba 1. Pavyzdžiui:
=TOKOLAS(A2:C5, ,TRUE)
Atkreipkite dėmesį, kad abiem atvejais grąžinami tokio paties dydžio masyvai, tačiau reikšmės išdėstytos skirtinga tvarka.
Kelių intervalų sujungimas į vieną stulpelį
Jei susiduriate su keliais nesusikertančiais intervalais, pirmiausia galite vertikaliai sujungti intervalus į vieną masyvą naudodami funkciją VSTACK, o tada naudodami funkciją TOCOL sujungtą masyvą paverskite stulpeliu.
Darant prielaidą, kad pirmasis intervalas yra A2:C4, o antrasis intervalas - A8:C9, formulė yra tokia:
=TOKOLAS(VSTACK(A2:C4, A8:C9))
Ši formulė demonstruoja numatytąjį elgesį - jungtiniai masyvai skaitomi horizontaliai iš kairės į dešinę, kaip parodyta toliau pateiktame paveikslėlyje E stulpelyje.
Jei norite skaityti reikšmes vertikaliai iš viršaus į apačią, nustatykite, kad trečiasis TOCOL argumentas būtų TRUE:
=TOKOLAS(VSTACK(A2:C4, A8:C9), ,TRUE)
Atkreipkite dėmesį, kad šiuo atveju formulė pirmiausia grąžina abiejų masyvų A stulpelio reikšmes, tada B stulpelio ir t. t. Taip yra todėl, kad TOCOL nuskaito vieną sukrautą masyvą, o ne pradinius atskirus intervalus.
Jei jūsų verslo logika reikalauja originalius intervalus sudėti horizontaliai, o ne vertikaliai, vietoj funkcijos VSTACK naudokite funkciją HSTACK.
Norint pridėti kiekvieną sekantį masyvą prie ankstesnio masyvo dešinės pusės ir skaityti sujungtus masyvus horizontaliai, formulė yra tokia:
=TOKOLAS(HSTACK(A2:C4, A8:C10))
Norint pridėti kiekvieną sekantį masyvą į dešinę nuo ankstesnio masyvo ir nuskaityti sujungtus masyvus vertikaliai, formulė yra tokia:
=TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)
Unikalių verčių išskyrimas iš kelių stulpelių diapazono
"Excel" funkcija UNIQUE gali lengvai rasti unikalias reikšmes viename stulpelyje ar eilutėje ir grąžinti unikalias eilutes, tačiau ji negali išskirti unikalių reikšmių iš kelių stulpelių masyvo. Sprendimas - naudoti ją kartu su funkcija TOCOL.
Pavyzdžiui, norint iš diapazono A2:C7 išgauti visas skirtingas (skirtingas) reikšmes, formulė yra tokia:
=UNIKALUS(TOCOL(A2:C7))
Be to, pirmiau pateiktą formulę galite įtraukti į funkciją SORT, kad grąžintą masyvą išdėstytumėte abėcėlės tvarka:
=SORT(UNIQUE(TOCOL(A2:C7))
Kaip konvertuoti diapazoną į stulpelį programoje "Excel 365" - 2010
Programos "Excel" versijose, kuriose nepalaikoma funkcija TOCOL, yra keletas alternatyvių būdų, kaip ląstelių intervalą paversti stulpeliu. Šie sprendimai yra gana sudėtingi, tačiau vis tiek veikia.
Jei norite skaityti intervalą pagal eilutes:
INDEKSAS( diapazonas , KOEFICIENTAS(EILUTĖ(A1)-1, STULPELIAI( diapazonas ))+1, MOD(EILUTĖ(A1)-1, STULPELIAI( diapazonas ))+1)Jei norite skaityti intervalą pagal stulpelį:
INDEKSAS( diapazonas , MOD(EILUTĖ(A1)-1, EILUTĖS( diapazonas ))+1, KOEFICIENTAS(EILUTĖ(A1)-1, EILUTĖS( diapazonas ))+1)Mūsų pavyzdinio duomenų rinkinio formulės yra tokios:
Kaip nuskaityti diapazoną horizontaliai iš kairės į dešinę :
=INDEX($A$2:$C$5, QUOTIENT(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1, MOD(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1)
Ši formulė yra lygiavertė funkcijai TOCOL, kurios trečiasis argumentas yra FALSE arba yra praleistas:
=TOCOL(A2:C5)
Kaip nuskaityti diapazoną vertikaliai iš viršaus į apačią :
=INDEX($A$2:$C$5, MOD(EILUTĖ(A1)-1, EILUTĖS($A$2:$C$5))+1, QUOTIENT(EILUTĖ(A1)-1, EILUTĖS($A$2:$C$5))+1)
Šią formulę galima palyginti su TOCOL funkcija, kurios 3-iasis argumentas yra TRUE:
=TOKOLAS(A2:C5, ,TRUE)
Kitaip nei TOCOL, alternatyvias formules reikia įvesti kiekvienoje ląstelėje, kurioje norite, kad būtų rodomi rezultatai. Mūsų atveju formulės patenka į ląsteles E2 (pagal eilutę) ir G2 (pagal stulpelį), o tada nukopijuojamos į 13 eilutę.
Jei formulės bus nukopijuotos į daugiau eilučių nei reikia, "papildomose" ląstelėse atsiras #REF! klaida. Kad taip neatsitiktų, galite įterpti formules į funkciją IFERROR taip:
=IFERROR(INDEX($A$2:$C$5, QUOTIENT(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1, MOD(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1), "")
Atkreipkite dėmesį, kad norint, jog formulės būtų teisingai nukopijuotos, diapazoną užfiksuojame naudodami absoliučias ląstelių nuorodas ($A$2:$C$5). Vietoj to galite naudoti pavadintą diapazoną.
Kaip veikia šios formulės
Toliau pateikiama išsami pirmosios formulės, pagal kurią ląstelės išdėstomos pagal eilutes, analizė:
=INDEX($A$2:$C$5, QUOTIENT(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1, MOD(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1)
Idėja yra naudoti funkciją INDEX, kad būtų grąžinta tam tikros ląstelės vertė pagal jos santykinius eilučių ir stulpelių numerius diapazone.
Svetainė eilutės numeris apskaičiuojamas pagal šį derinį:
KOEFICIENTAS(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1
QUOTIENT grąžina sveikąją dalybos dalį.
Tinklalapiui skaitiklis naudojate ROW(A1)-1, kuris grąžina eilės numerį nuo 0 E2 (pirmoji ląstelė, kurioje įvesta formulė) iki 11 E13 (paskutinė ląstelė, kurioje įvesta formulė).
Svetainė vardiklis brough by COLUMNS($A$2:$C$5)) yra pastovus ir lygus jūsų diapazono stulpelių skaičiui (mūsų atveju - 3).
Dabar, jei patikrinsite pirmųjų 3 langelių (E2:E4) QUOTIENT rezultatą, pamatysite, kad jis lygus 0 (nes sveikoji dalybos dalis lygi nuliui). Pridėjus 1 gaunamas eilutės numeris 1.
Kitų 3 langelių (E5:E5) atveju QUOTIENT grąžina 1, o operacija +1 suteikia eilutės numerį 2. Ir t. t.
Kitaip tariant, ši formulės dalis sukuria pasikartojančią skaičių seką, pavyzdžiui, 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,... Kiekvienas skaičius pasikartoja tiek kartų, kiek stulpelių yra jūsų diapazone.
Apskaičiuoti stulpelio numeris , naudodamiesi funkcija MOD sukursite atitinkamą skaičių seką:
MOD(EILUTĖ(A1)-1, STULPELIAI($A$2:$C$5))+1
Kadangi mūsų diapazone (A2:C5) yra 3 stulpeliai, seka turi būti 1,2,3,1,2,3,...
Funkcija MOD grąžina likutį po dalybos.
E2, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
tampa
MOD(1-1, 3)+1)
ir grąžina 1.
E3, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)
tampa
MOD(2-1, 3)+1)
ir grąžina 2.
Nustačius eilučių ir stulpelių numerius, INDEX be vargo suranda reikiamą reikšmę.
E2 langelyje INDEX($A$2:$C$5, 1, 1) grąžinama reikšmė iš 1-osios eilutės ir 1-ojo stulpelio, t. y. iš A2 langelio.
E3 langelyje INDEX($A$2:$C$5, 1, 2) grąžinama 1-osios eilutės ir 2-ojo stulpelio, t. y. B2 langelio, reikšmė.
Ir t. t.
Antroji formulė, kurioje diapazonas nuskaitomas pagal stulpelius, veikia panašiai. Skirtumas tas, kad eilutės numeriui gauti naudojama MOD, o stulpelio numeriui gauti - QUOTIENT.
Neveikia TOCOL funkcija
Jei TOCOL funkcija išmeta klaidą, greičiausiai tai yra viena iš šių priežasčių:
"Excel" nepalaiko TOCOL
Kai gaunate #NAME? klaidą, pirmiausia reikia patikrinti, ar teisingai parašytas funkcijos pavadinimas. Jei pavadinimas teisingas, bet klaida išlieka, vadinasi, funkcija jūsų "Excel" versijoje nepasiekiama. Tokiu atveju apsvarstykite galimybę naudoti TOCOL alternatyvą.
Masyvas yra per didelis
Klaida #NUM rodo, kad masyvas netelpa į stulpelį. Tipiškas atvejis, kai nurodomi ištisi stulpeliai arba eilutės.
Nėra pakankamai tuščių langelių
Kai atsiranda #SPILL klaida, patikrinkite, ar stulpelyje, kuriame įvesta formulė, yra pakankamai tuščių langelių, į kuriuos būtų galima įrašyti rezultatus. Jei ląstelės vizualiai tuščios, įsitikinkite, kad jose nėra tarpų ir kitų nespausdintinų simbolių. Daugiau informacijos rasite skyriuje Kaip ištaisyti #SPILL klaidą programoje "Excel".
Štai kaip galite naudoti "Excel 365" funkciją TOCOL ir alternatyvius sprendimus ankstesnėse versijose, norėdami dvimatį masyvą paversti vienu stulpeliu. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Praktikos sąsiuvinis
"Excel" funkcija TOCOL - formulių pavyzdžiai (.xlsx failas)