Змест
Лёгкі спосаб пераўтварыць масіў або дыяпазон у слупок з дапамогай функцыі TOCOL.
Магчымасць транспанаваць даныя са слупкоў у радкі і ў адваротным кірунку існуе ў Excel даволі даўно некаторы час. Але пераўтварэнне дыяпазону вочак у адзін слупок было складанай задачай для ўзлому. Цяпер гэта нарэшце мяняецца. Microsoft прадставіла новую функцыю пад назвай TOCOL, якая можа імгненна пераўтвараць масіў у слупок. Ніжэй прыведзены спіс задач, якія гэтая новая функцыя можа лёгка вырашыць.
Функцыя Excel TOCOL
Функцыя TOCOL у Excel пераўтварае масіў або дыяпазон вочак у адну слупок.
Функцыя прымае тры аргументы, але патрабуецца толькі першы.
TOCOL(масіў, [ігнараваць], [сканаваць_па_слупку])Дзе:
Масіў (абавязкова) - масіў або дыяпазон для пераўтварэння ў слупок.
Ігнараваць (неабавязкова) - вызначае, ці трэба ігнараваць прабелы і/або памылкі. Можа быць адным з наступных значэнняў:
- 0 або апушчаны (па змаўчанні) - захаваць усе значэнні
- 1 - ігнараваць прабелы
- 2 - ігнараваць памылкі
- 3 - ігнараваць прабелы і памылкі
Scan_by_column (неабавязкова) - вызначае, сканаваць масіў па гарызанталі або па вертыкалі:
- FALSE або прапушчана (па змаўчанні) - сканаваць масіў па радках злева направа.
- TRUE - сканаваць масіў па слупках зверху ўніз.
Парады:
- Каб пераўтварыць масіў у адзін радок, выкарыстоўвайце TOROW
- Каб выканаць супрацьлеглае пераўтварэнне слупка ў масіў, выкарыстоўвайце функцыю WRAPCOLS для пераносу па слупку або функцыю WRAPROWS для пераносу па радку.
- Каб транспанаваць масіў з гарызанталі ў вертыкальна ці наадварот, г. зн. змяніць радкі на слупкі, выкарыстоўваць функцыю TRANSPOSE.
Даступнасць TOCOL
TOCOL — гэта новая функцыя, якая падтрымліваецца ў Excel для Microsoft 365 (для Windows і Mac) і Excel для Інтэрнэту.
Асноўная формула TOCOL для пераўтварэння дыяпазону ў слупок
Формула TOCOL у сваёй самай простай форме патрабуе толькі аднаго аргумента - масіў . Напрыклад, каб змясціць двухмерны масіў, які складаецца з 3 слупкоў і 4 радкоў, у адзін слупок, формула:
=TOCOL(A2:C5)
Формула ўводзіцца толькі ў адну ячэйку (E2 у гэты прыклад) і аўтаматычна пераходзіць у наступныя вочкі. З пункту гледжання Excel вынік называецца дыяпазонам разліву.
Як працуе гэтая формула:
Тэхнічна дыяпазон A2:C5 спачатку пераўтвараецца ў двухмерны масіў. Звярніце ўвагу на радкі, падзеленыя кропкай з коскі, і слупкі, раздзеленыя коскамі:
{"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}
Функцыя TOCOL скануе масіў злева направа і пераўтварае яго ў аднамерны вертыкальны масіў:
{"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}
Вынік змяшчаецца ў ячэйку E2, з якой ён перацякае ў ячэйкі ніжэй.
Як выкарыстоўваць функцыю TOCOL у Excel - прыклады формул
Каб атрымаць большае разуменнемагчымасці функцыі TOCOL і задачы, якія яна можа ахопліваць, давайце паглядзім на некаторыя прыклады формул.
Пераўтварыць масіў у слупок без уліку прабелаў і памылак
Як вы маглі заўважыць у папярэднім прыкладзе , формула TOCOL па змаўчанні захоўвае ўсе значэнні з зыходнага масіва, уключаючы пустыя ячэйкі і памылкі.
У атрыманым масіве пустыя ячэйкі прадстаўлены нулямі, што можа быць вельмі блытаным, асабліва калі зыходны масіў мае 0 значэнняў. Рашэнне ў тым, каб прапусціць прабелы . Для гэтага вы задаеце 2-му аргументу 1:
=TOCOL(A2:C5, 1)
Каб ігнараваць памылкі , задайце 2-му аргументу 2:
=TOCOL(A2:C5, 2)
Каб выключыць абодва, прабелы і памылкі , выкарыстоўвайце 3 для аргумента ігнараваць :
=TOCOL(A2:C5, 3)
Сканаваць масіў гарызантальна або вертыкальна
З аргументам scan_by_column па змаўчанні (FALSE або апушчаны), функцыя TOCOL скануе масіў гарызантальна па радках. Каб апрацоўваць значэнні па слупках, усталюйце для гэтага аргумента TRUE або 1. Напрыклад:
=TOCOL(A2:C5, ,TRUE)
Звярніце ўвагу, што ў абодвух выпадках вяртаюцца масівы аднолькавага памеру, але значэнні ўпарадкаваны у іншым парадку.
Аб'яднанне некалькіх дыяпазонаў у адзін слупок
Калі вы маеце справу з некалькімі несумежнымі дыяпазонамі, вы можаце спачатку аб'яднаць дыяпазоны па вертыкалі ў адзіны масіў з дапамогай функцыі VSTACK і затым выкарыстоўвайце TOCOL, каб пераўтварыць аб'яднаны масіў у слупок.
Калі выказаць здагадку, што першы дыяпазон — A2:C4, а другі — A8:C9, формула прымае наступны выгляд:
=TOCOL(VSTACK(A2:C4, A8:C9))
Гэтая формула дэманструе паводзіны па змаўчанні — чытае аб'яднаныя масівы па гарызанталі злева справа, як паказана ў слупку E на малюнку ніжэй.
Каб счытваць значэнні вертыкальна зверху ўніз, вы задаеце 3-му аргументу TOCOL значэнне TRUE:
=TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)
Звярніце ўвагу, што ў гэтым выпадку формула спачатку вяртае значэнні са слупка A абодвух масіваў, потым са слупка B і г.д. Прычына ў тым, што TOCOL скануе адзіны стэкаваны масіў, а не зыходныя асобныя дыяпазоны.
Калі ваша бізнес-логіка патрабуе размяшчэння зыходных дыяпазонаў па гарызанталі, а не па вертыкалі, выкарыстоўвайце функцыю HSTACK замест VSTACK.
Каб дадаць кожны наступны масіў справа ад папярэдняга масіва і прачытаць аб'яднаныя масівы па гарызанталі, формула:
=TOCOL(HSTACK(A2:C4, A8:C10))
Каб дадаць кожны наступны масіў справа ад папярэдняга масіва і сканаваць аб'яднаныя масівы па вертыкалі, формула:
=TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)
Выманне унікальных значэнняў з дыяпазону з некалькімі слупкамі
Функцыя Excel UNIQUE можа лёгка знаходзіць унікальныя значэнні ў адным слупку ці радку, а таксама вяртаць унікальныя радкі, але яна не можа здабываць унікальныя значэнні з масіў з некалькіх слупкоў. Рашэнне складаецца ў тым, каб выкарыстоўваць яго разам з функцыяй TOCOL.
Напрыклад, каб атрымаць усе розныя (адрозныя) значэнні з дыяпазонуA2:C7, формула:
=UNIQUE(TOCOL(A2:C7))
Акрамя таго, вы можаце змясціць прыведзеную вышэй формулу ў функцыю SORT, каб упарадкаваць вернуты масіў у алфавітным парадку:
=SORT(UNIQUE(TOCOL(A2:C7)))
Як пераўтварыць дыяпазон у слупок у Excel 365 - 2010
У версіях Excel, дзе функцыя TOCOL не падтрымліваецца, існуе некалькі альтэрнатыўных спосабаў пераўтварэння дыяпазону вочак у слупок. Гэтыя рашэнні даволі складаныя, але ў любым выпадку працуюць.
Каб прачытаць дыяпазон па радку:
INDEX( дыяпазон , QUOTIENT(ROW(A1)-1, COLUMNS( дыяпазон ))+1, MOD(ROW(A1)-1, COLUMNS( дыяпазон ))+1)Каб прачытаць дыяпазон па слупках:
INDEX( дыяпазон , MOD(ROW(A1)-1, ROWS( дыяпазон ))+1, QUOCIENT(ROW(A1)-1, ROWS( дыяпазон ))+1 )Для нашага ўзору даных формулы наступныя:
Для сканіравання дыяпазону па гарызанталі злева направа :
=INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
Гэта формула эквівалентная функцыі TOCOL з 3-м аргументам, усталяваным у FALSE або апушчаным:
=TOCOL(A2:C5)
Каб сканаваць дыяпазон вертыкальна зверху ўніз :
=INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)
Гэтая формула параўнальная з функцыяй TOCOL з 3-м аргументам, усталяваным у TRUE:
=TOCOL(A2:C5, ,TRUE)
У адрозненне ад TOCOL, альтэрнатыўныя формулы трэба ўводзіць у кожную вочка, дзе вы хочаце, каб з'явіліся вынікі. У нашым выпадку формулы ідуць у ячэйкі E2 (па радку) і G2 (па слупку), а потым капіююцца ў радок 13.
Калі формулы капіююцца ў больш радкоў, чым трэба,#REF! у «лішніх» вочках з'явіцца памылка. Каб гэтага не адбылося, вы можаце ўкласці формулы ў функцыю IFERROR наступным чынам:
=IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1), "")
Звярніце ўвагу, што для правільнага капіравання формул мы фіксуем дыяпазон з дапамогай абсалютных спасылак на ячэйкі ($ A$2:$C$5). Замест гэтага вы можаце выкарыстоўваць найменны дыяпазон.
Як працуюць гэтыя формулы
Ніжэй прыведзена падрабязная разбіўка першай формулы, якая размяшчае ячэйкі па радках:
=INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
Ідэя заключаецца ў тым, каб выкарыстоўваць функцыю INDEX для вяртання значэння пэўнай ячэйкі на падставе адносных нумароў радкоў і слупкоў у дыяпазоне.
Нумар радка вылічваецца гэтай камбінацыяй :
QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1
QUOTIENT вяртае цэлую частку дзялення.
Для лічніка вы выкарыстоўваеце ROW(A1)-1, які вяртае парадкавы нумар ад 0 у E2 (першая ячэйка, у якую ўведзена формула) да 11 у E13 (апошняя ячэйка, у якую ўведзена формула).
Назоўнік разбіваецца па COLUMNS($A) $2:$C$5)) пастаянная і роўная колькасці слупкоў у вашым дыяпазоне (3 у нашым выпадку).
Цяпер, калі вы праверыце вынік QUOTIENT для першых 3 вочак (E2:E4) , вы ўбачыце, што яно роўна 0 (таму што цэлая частка дзялення роўная нулю). Даданне 1 дае радок з нумарам 1.
Для наступных 3 вочак (E5:E5) QUOTIENT вяртае 1, а аперацыя +1 дае радок з нумарам 2. І гэтак далей.
Іншымі словамі, гэтая частка формулы стварае паўторпаслядоўнасць лікаў, напрыклад 1,1,1,2,2,2,3,3,3,4,4,4,… Кожны лік паўтараецца столькі разоў, колькі слупкоў у вашым дыяпазоне.
Каб вылічыць нумар слупка , вы будуеце адпаведную лікавую паслядоўнасць з дапамогай функцыі MOD:
MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1
Паколькі ёсць 3 слупкі ў нашым дыяпазоне (A2:C5), паслядоўнасць павінна быць 1,2,3,1,2,3,…
Функцыя MOD вяртае астатак пасля дзялення.
У E2, MOD(ROW(A1)-1, COLUMNS ($A$2:$C$5))+1)
становіцца
MOD(1-1, 3)+1)
і вяртае 1.
У E3 MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)
становіцца
MOD(2-1, 3) +1)
і вяртае 2.
З устаноўленымі нумарамі радкоў і слупкоў INDEX без праблем атрымлівае патрэбнае значэнне.
У E2 INDEX($A$2 :$C$5, 1, 1) вяртае значэнне з 1-га радка і 1-га слупка дыяпазону, на які спасылаецца, г.зн. з ячэйкі A2.
У E3, INDEX($A$2:$C$5, 1 , 2) вяртае значэнне з 1-га радка і 2-га слупка, г.зн. з ячэйкі B2.
І гэтак далей.
Другая формула, якая скануе дыяпазон па c olumn, працуе падобным чынам. Розніца ў тым, што ён выкарыстоўвае MOD для атрымання нумара радка і QUOTIENT для атрымання нумара слупка.
Функцыя TOCOL не працуе
Калі функцыя TOCOL выдае памылку, гэта, хутчэй за ўсё, быць адной з наступных прычын:
TOCOL не падтрымліваецца ў вашым Excel
Калі вы атрымліваеце #NAME? памылка, правільнае напісанне назвы функцыі - гэта першаеправерыць. Калі імя правільнае, але памылка не знікае, функцыя недаступная ў вашай версіі Excel. У гэтым выпадку разгледзьце магчымасць выкарыстання альтэрнатывы TOCOL.
Масіў занадта вялікі
Памылка #NUM паказвае, што масіў не можа змясціцца ў слупок. Тыповы выпадак, калі вы спасылаецеся на цэлыя слупкі або радкі.
Недастаткова пустых вочак
Калі ўзнікае памылка #SPILL, праверце, ці слупок, у які ўведзена формула мае дастатковую колькасць пустых вочак для запаўнення вынікамі. Калі вочкі візуальна пустыя, пераканайцеся, што ў іх няма прабелаў і іншых недрукаваных знакаў. Для атрымання дадатковай інфармацыі гл. Як выправіць памылку #SPILL у Excel.
Такім чынам вы можаце выкарыстоўваць функцыю TOCOL у Excel 365 і альтэрнатыўныя рашэнні ў больш ранніх версіях для пераўтварэння 2-мернага масіва ў адзін слупок. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!
Практычны сшытак
Функцыя Excel TOCOL - прыклады формул (.xlsx файл)