Turinys
Greitas būdas ląstelių intervalą paversti viena eilute naudojant TOROW funkcija.
Programoje "Microsoft Excel 365" įdiegtos kelios naujos funkcijos, skirtos įvairioms manipuliacijoms su masyvais atlikti. Naudodami TOROW galite akimirksniu atlikti diapazono transformavimą į eilutes. Pateikiame užduočių, kurias gali atlikti ši nauja funkcija, sąrašą:
"Excel" funkcija TOROW
Funkcija TOROW "Excel" naudojama masyvui arba ląstelių intervalui konvertuoti į vieną eilutę.
Funkcija iš viso turi tris argumentus, iš kurių reikalingas tik pirmasis.
TOROW(masyvas, [ignore], [scan_by_column])Kur:
Masyvas (privaloma) - masyvas arba intervalas, kurį reikia paversti viena eilute.
Ignoruokite (neprivaloma) - nustato, ar ignoruoti tuščius ženklus ir (arba) klaidas. Gali įgyti vieną iš šių reikšmių:
- 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) - apibrėžia, kaip nuskaityti masyvą:
- FALSE arba praleista (numatytoji reikšmė) - nuskaityti masyvą horizontaliai pagal eilutes.
- TRUE - nuskaitykite masyvą vertikaliai pagal stulpelius.
Patarimai:
- Jei norite masyvą paversti vienu stulpeliu, naudokite funkciją TOCOL.
- Norėdami atlikti atvirkštinį eilučių transformavimą į masyvą, naudokite WRAPCOLS funkciją, kad suvyniotumėte į stulpelius, arba WRAPROWS funkciją, kad suvyniotumėte masyvą į eilutes.
- Norėdami eilutes paversti stulpeliais, naudokite funkciją TRANSPOSE.
TOROW prieinamumas
TOROW yra nauja funkcija, kuri palaikoma tik "Excel for Microsoft 365" ("Windows" ir "Mac") ir "Excel for the web".
Pagrindinė TOROW formulė programoje "Excel
Norėdami atlikti paprastą diapazono transformavimą į eilutę, naudokite TOROW formulės pagrindinę formą. Tam reikia apibrėžti tik pirmąjį argumentą ( masyvas ).
Pavyzdžiui, norint dvimatį masyvą, sudarytą iš 3 stulpelių ir 3 eilučių, paversti viena eilute, formulė yra tokia:
=TOROW(A3:C6)
Įveskite formulę tik į vieną langelį (mūsų atveju - A10), ir ji automatiškai išsilies į tiek langelių, kiek reikia visiems rezultatams sutalpinti. "Excel" terminais išvesties diapazonas, apsuptas plonu mėlynu apvadu, vadinamas išsiliejimo diapazonu.
Kaip veikia ši formulė:
Pirmiausia pateiktas ląstelių intervalas paverčiamas dvimatiu masyvu. Atkreipkite dėmesį į kableliais atskirtus stulpelius ir kabliataškiais atskirtas eilutes:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Tada funkcija TOROW perskaito masyvą iš kairės į dešinę ir paverčia jį vienmačiu horizontaliu masyvu:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Rezultatas patenka į langelį A10, iš kurio išsilieja į gretimą langelį dešinėje.
Transformuoti diapazoną į eilutę, neatsižvelgiant į tuščias vietas ir klaidas
Pagal numatytuosius nustatymus TOROW funkcija išsaugo visas pradinio masyvo reikšmes, įskaitant tuščius langelius ir klaidas. Išvestyje vietoj tuščių langelių rodomos nulinės reikšmės, o tai gali būti gana painu.
Į neįtraukti tuščių vietų , nustatykite ignoruoti argumentą į 1:
=TOROW(A3:C5, 1)
Į ignoruoti klaidas , nustatykite ignoruoti argumentas 2:
=TOROW(A3:C5, 2)
Jei norite praleisti abu, tuščios vietos ir klaidos , naudokite 3 ignoruoti argumentas:
=TOROW(A3:C5, 3)
Toliau pateiktame paveikslėlyje pavaizduoti visi trys scenarijai:
Masyvo skaitymas horizontaliai arba vertikaliai
Pagal numatytuosius nustatymus funkcija TOROW apdoroja masyvą horizontaliai iš kairės į dešinę. Norėdami nuskaityti reikšmes pagal stulpelius iš viršaus į apačią, nustatykite 3 argumentą ( scan_by_column ) į TRUE arba 1.
Pavyzdžiui, norint nuskaityti šaltinio diapazoną pagal eilutes, E3 formulė yra tokia:
=TOROW(A3:C5)
Norint nuskaityti diapazoną pagal stulpelį, E8 formulė yra tokia:
=TOROW(A3:C5, ,TRUE)
Abiem atvejais gaunami tokio paties dydžio masyvai, tačiau reikšmės išdėstomos skirtinga tvarka.
Kelių intervalų sujungimas į vieną eilutę
Norėdami sujungti kelis nesusijusius intervalus į vieną eilutę, pirmiausia juos sukraukite horizontaliai arba vertikaliai į vieną masyvą, naudodami atitinkamai HSTACK arba VSTACK, o tada naudokite TOROW funkciją, kad sujungtą masyvą paverstumėte eilute.
Priklausomai nuo jūsų verslo logikos, užduotį atliks viena iš šių formulių.
Horizontaliai sukraukite masyvus ir konvertuokite pagal eilutes
Jei pirmasis intervalas yra A3:C4, o antrasis - A8:C9, toliau pateikta formulė abu intervalus horizontaliai sudės į vieną masyvą, o tada transformuos jį į eilutę, kurioje reikšmės skaitomos iš kairės į dešinę. Toliau pateiktame paveikslėlyje rezultatas yra E3.
=TOROW(HSTACK(A3:C4, A8:C9))
Horizontaliai sukraukite masyvus ir konvertuokite pagal stulpelius
Norėdami skaityti vertikaliai iš viršaus į apačią sukrautą masyvą, nustatykite trečiąjį TOROW argumentą į TRUE, kaip parodyta toliau pateiktame paveikslėlyje E5:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Vertikaliai sukraukite masyvus ir konvertuokite pagal eilutes
Norint pridėti kiekvieną paskesnį masyvą prie ankstesnio masyvo apačios ir bendrą masyvą skaityti horizontaliai, E12 formulė yra tokia:
=TOROW(VSTACK(A3:C4, A8:C9))
Vertikaliai sukraukite masyvus ir konvertuokite pagal stulpelius
Norint pridėti kiekvieną sekantį masyvą prie ankstesnio masyvo apačios ir nuskaityti sujungtą masyvą vertikaliai, formulė yra tokia:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Kad geriau suprastumėte logiką, atkreipkite dėmesį į skirtingą verčių eiliškumą gautuose masyvuose:
Unikalių verčių išskyrimas iš diapazono į eilutę
Pradedant "Microsoft Excel 2016", turime puikią funkciją UNIQUE, kuria galima lengvai gauti unikalias reikšmes iš vieno stulpelio ar eilutės. Tačiau ji negali apdoroti kelių stulpelių masyvų. Norėdami įveikti šį apribojimą, naudokite UNIQUE ir TOROW funkcijas kartu.
Pavyzdžiui, norint iš intervalo A2:C7 išrinkti visas skirtingas (skirtingas) reikšmes ir rezultatus sudėti į vieną eilutę, formulė yra tokia:
=UNIKALUS(TOROW(A2:C7), TRUE)
Kadangi TOROW grąžina vienmatį horizontalųjį masyvą, nustatome 2. ( by_col ) argumentą UNIQUE į TRUE, kad stulpeliai būtų lyginami tarpusavyje.
Jei norite, kad rezultatai būtų išdėstyti abėcėlės tvarka, pirmiau pateiktą formulę įtraukite į funkciją SORT:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Kaip ir UNIQUE atveju, by_col SORT argumentas taip pat nustatomas į TRUE.
TOROW alternatyva "Excel 365" - 2010
Programos "Excel" versijose, kuriose TOROW funkcija nepasiekiama, diapazoną į vieną eilutę galite paversti naudodami kelių skirtingų funkcijų, veikiančių senesnėse versijose, derinį. Šie sprendimai yra sudėtingesni, tačiau jie veikia.
Norint nuskaityti diapazoną horizontaliai, bendroji formulė yra tokia:
INDEKSAS( diapazonas , KOEFICIENTAS(STULPELIS (A1)-1, STULPELIAI( diapazonas ))+1, MOD(STULPELIS(A1)-1, STULPELIAI( diapazonas ))+1)Norint nuskaityti diapazoną vertikaliai, bendroji formulė yra tokia:
INDEKSAS( diapazonas , MOD(STULPELIS(A1)-1, STULPELIAI( diapazonas ))+1, KOEFICIENTAS(STULPELIS (A1)-1, STULPELIAI( diapazonas ))+1)Mūsų A3:C5 pavyzdžių duomenų rinkinio formulės yra tokios:
Jei norite nuskaityti diapazoną pagal eilutes:
=INDEX($A$3:$C$5, QUOTIENT(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1, MOD(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1)
Ši formulė yra TOROW funkcijos alternatyva, kai 3-iasis argumentas yra FALSE arba praleistas:
=TOROW(A3:C5)
Norėdami nuskaityti diapazoną pagal stulpelį:
=INDEX($A$3:$C$5, MOD(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1, QUOTIENT(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1)
Ši formulė yra lygiavertė TOROW funkcijai, kurios 3-iasis argumentas yra TRUE:
=TOROW(A3:C5, ,TRUE)
Atkreipkite dėmesį, kad, skirtingai nei dinaminio masyvo TOROW funkcija, šias tradicines formules reikia įvesti į kiekvieną ląstelę, kurioje norite, kad būtų rodomi rezultatai. Mūsų atveju pirmoji formulė (pagal eilutę) patenka į E3 ir kopijuojama per M3. Antroji formulė (pagal stulpelį) patenka į E8 ir yra perkeliama per M8.
Kad formulės būtų kopijuojamos teisingai, diapazoną užfiksuojame naudodami absoliučias nuorodas ($A$3:$C$5). Taip pat tinka ir įvardytas diapazonas.
Jei nukopijavote formules į daugiau langelių nei reikia, "papildomuose" langeliuose atsiras #REF! klaida. Norėdami tai ištaisyti, formulę apvyniokite funkcija IFERROR taip:
=IFERROR(INDEX($A$3:$C$5, QUOTIENT(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1, MOD(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1), "")
Kaip veikia šios formulės
Toliau pateikiama išsami pirmosios formulės, kurioje vertės išdėstomos pagal eilutes, analizė:
=INDEX($A$3:$C$5, QUOTIENT(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1, MOD(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1)
Formulės esmė - naudodami funkciją INDEX gauname ląstelės vertę pagal jos santykinę padėtį diapazone.
Svetainė eilutės numeris apskaičiuojamas pagal šią formulę:
KOEFICIENTAS(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1
Idėja - sukurti pasikartojančių skaičių seką, pavyzdžiui, 1,1,1,1,2,2,2,2,3,3,3, ..., kurioje kiekvienas skaičius pasikartoja tiek kartų, kiek yra stulpelių šaltinio diapazone. Štai kaip tai padaryti:
QUOTIENT grąžina sveikąją dalybos dalį.
Tinklalapiui skaitiklis , naudojame COLUMN(A1)-1, kuris grąžina eilės numerį nuo 0 pirmojoje ląstelėje, kurioje įvesta formulė, iki n (bendras reikšmių skaičius intervale minus 1) paskutiniame ląstelėje, kurioje įvesta formulė. Šiame pavyzdyje E2 ląstelėje yra 0, o M3 ląstelėje - 8.
Tinklalapiui vardiklis naudojame COLUMNS($A$3:$C$5)). Grąžinamas pastovus skaičius, lygus jūsų diapazono stulpelių skaičiui (mūsų atveju - 3).
Dėl to QUOTIENT funkcija pirmuose 3 langeliuose (E3:G3) grąžina 0, prie kurio pridedame 1, todėl eilutės numeris yra 1.
Kitų 3 langelių (H3:J3) atveju QUOTIENT grąžina 1, o +1 nurodo eilutės numerį 2. Ir t. t.
Apskaičiuoti stulpelio numeris , naudodamiesi funkcija MOD sukursite atitinkamą skaičių seką:
MOD(STULPELIS(A1)-1, STULPELIAI($A$3:$C$5))+1
Kadangi mūsų diapazone yra 3 stulpeliai, seka turi atrodyti taip: 1,2,3,1,2,3,...
Funkcija MOD grąžina likutį po dalybos.
E3, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+
tampa
MOD(1-1, 3)+1)
ir grąžina 1.
F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+
tampa
MOD(2-1, 3)+1)
ir grąžina 2.
Nustačius eilučių ir stulpelių numerius, INDEX lengvai suranda eilutės ir stulpelio sankirtoje esančią reikšmę.
E3 langelyje INDEX($A$3:$C$5, 1, 1) grąžinama reikšmė iš 1-osios eilutės ir 1-ojo stulpelio, t. y. iš A3 langelio.
F3 langelyje INDEX($A$3:$C$5, 1, 2) grąžinama reikšmė iš 1 eilutės ir 2 stulpelio, t. y. iš B3 langelio.
Ir t. t.
Antroji formulė, kurioje diapazonas nuskaitomas pagal stulpelius, veikia panašiai. Skirtumas tas, kad eilutės numeriui apskaičiuoti naudojame MOD, o stulpelio numeriui nustatyti - QUOTIENT.
TOROW funkcija neveikia
Jei naudojant TOROW funkciją gaunama klaida, greičiausiai tai yra viena iš šių priežasčių:
#NAME?
Daugumos "Excel" funkcijų klaida #NAME? yra aiškus ženklas, kad funkcijos pavadinimas parašytas neteisingai. TOROW atveju tai taip pat gali reikšti, kad funkcijos jūsų "Excel" programoje nėra. Jei jūsų "Excel" versija yra kita nei 365, pabandykite naudoti TOROW alternatyvą.
#NUM klaida
Klaida #NUM rodo, kad grąžinamas masyvas netelpa į eilutę. Dažniausiai taip atsitinka, kai nurodomi ištisi stulpeliai ir (arba) eilutės, o ne mažesnis intervalas.
#SPILL klaida
Dažniausiai #SPILL klaida rodo, kad eilutėje, į kurią įvedėte formulę, nėra pakankamai tuščių langelių, į kuriuos būtų galima išlieti rezultatus. Jei gretimi langeliai vizualiai tušti, įsitikinkite, kad juose nėra tarpų ar kitų nespausdintinų simbolių. Daugiau informacijos rasite skyriuje Ką reiškia #SPILL klaida programoje "Excel".
Štai kaip "Excel" programoje naudojate funkciją TOROW, kad 2 matmenų masyvą arba intervalą paverstumėte viena eilute. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Atsisiųsti praktikos sąsiuvinį
"Excel" funkcija TOROW - formulių pavyzdžiai (.xlsx failas)