Содржина
Лесен начин да се трансформира низа или опсег во колона со функцијата TOCOL.
Способноста за транспонирање податоци од колони во редови и обратно е во Excel веќе доста некое време. Но, конвертирањето на опсег на ќелии во една колона беше незгодна задача. Сега, тоа конечно се менува. Мајкрософт воведе нова функција, наречена TOCOL, која може да направи трансформација од низа во колона веднаш. Подолу е листа на задачи што оваа нова функција може лесно да ги реши.
Excel TOCOL функција
Функцијата TOCOL во Excel конвертира низа или опсег на ќелии во една колона.
Функцијата зема три аргументи, но само првиот е потребен.
TOCOL(низа, [игнорирај], [скенирање_по_колона])Каде:
Низа (задолжително) - низа или опсег за трансформирање во колона.
Игнорирај (опционално) - дефинира дали да се игнорираат празни места или/или грешки. Може да биде една од овие вредности:
- 0 или испуштена (стандардно) - зачувај ги сите вредности
- 1 - игнорирај празни места
- 2 - игнорирај ги грешките
- 3 - игнорирај празни места и грешки
Scan_by_column (опционално) - одредува дали да се скенира низата хоризонтално или вертикално:
- FALSE или испуштена (стандардно) - скенирајте ја низата по ред од лево кон десно.
- ТОЧНО - скенирајте ја низата по колона од врвот до дното.
Совети:
- За да конвертирате низа во еден ред, користете го 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 вредности. Решението е во прескокнување на празни места . За ова, го поставивте вториот аргумент на 1:
=TOCOL(A2:C5, 1)
За игнорирање на грешки , поставете го вториот аргумент на 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))
Оваа формула го демонстрира стандардното однесување - ги чита комбинираните низи хоризонтално од лево надесно како што е прикажано во колоната Е на сликата подолу.
За да ги читате вредностите вертикално од врвот до дното, го поставивте третиот аргумент на TOCOL на TRUE:
=TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)
Обрнете внимание дека, во овој случај, формулата прво враќа вредности од колоната А од двете низи, потоа од колоната Б итн. Причината е што 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, QUOTIENT(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 со третиот аргумент поставен на TRUE:
=TOCOL(A2:C5, ,TRUE)
За разлика од TOCOL, алтернативните формули треба да се внесат во секоја ќелија каде што сакате да се појават резултатите. Во нашиот случај, формулите одат во ќелиите E2 (по ред) и G2 (по колона), а потоа се копираат до редот 13.
Ако формулите се копираат во повеќе редови отколку што е потребно,#РЕФ! грешка ќе се појави во „екстра“ ќелии. За да спречите тоа да се случи, можете да ги вгнездите формулите во функцијата 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 колумна, работи на сличен начин. Разликата е во тоа што користи MOD за да го добие бројот на редот и QUOTIENT за да го добие бројот на колоната.
Функцијата TOCOL не работи
Ако функцијата TOCOL исфрли грешка, најверојатно е да биде една од овие причини:
TOCOL не е поддржан во вашиот Excel
Кога ќе добиете #NAME? грешка, правилното пишување на името на функцијата е првото нешто што треба да се направипровери. Ако името е точно, но грешката опстојува, функцијата не е достапна во вашата верзија на Excel. Во овој случај, размислете да користите алтернатива TOCOL.
Низата е преголема
Грешката #NUM покажува дека низата не може да се вклопи во колона. Типичен случај е кога се повикувате на цели колони или редови.
Нема доволно празни ќелии
Кога ќе се појави грешка #SPILL, проверете дали колоната каде што е внесена формулата има доволно празни ќелии за да се пополнат со резултатите. Ако ќелиите се визуелно празни, проверете дали во нив нема празни места и други знаци што не се печатат. За повеќе информации, видете Како да ја поправите грешката #SPILL во Excel.
Така можете да ја користите функцијата TOCOL во Excel 365 и алтернативните решенија во претходните верзии за да трансформирате 2-димензионална низа во една колона. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!
Вежбајте работна книга
Excel TOCOL функција - примери на формула (датотека .xlsx)