Функцыя Excel TOCOL для пераўтварэння дыяпазону ў адзін слупок

  • Падзяліцца Гэтым
Michael Brown

Лёгкі спосаб пераўтварыць масіў або дыяпазон у слупок з дапамогай функцыі 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 файл)

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.