Функция TOCOL на Excel за преобразуване на диапазон в една колона

  • Споделя Това
Michael Brown

Лесен начин за преобразуване на масив или диапазон в колона с функцията TOCOL.

Възможността за транспониране на данни от колони в редове и в обратна посока е налична в Excel от доста време. Но преобразуването на редица клетки в една колона беше трудна задача за решаване. Сега това най-накрая се променя. Microsoft въведе нова функция, наречена TOCOL, която може да извърши преобразуване на масив в колона за един миг. По-долу е даден списък със задачи, които тази нова функция може лесно да реши.

    Функция TOCOL на Excel

    Функцията TOCOL в Excel преобразува масив или диапазон от клетки в една колона.

    Функцията приема три аргумента, но е необходим само първият.

    TOCOL(array, [ignore], [scan_by_column])

    Къде:

    Масив (задължително) - масив или диапазон, който да се трансформира в колона.

    Игнориране на (незадължително) - определя дали да се игнорират празни места и/или грешки. Може да бъде една от тези стойности:

    • 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. пропускане на празни полета За тази цел задавате втория аргумент на 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)

    Извличане на уникални стойности от диапазон с няколко колони

    Функцията UNIQUE на Excel може лесно да намери уникални стойности в една колона или ред, както и да върне уникални редове, но не може да извлече уникални стойности от масив с много колони. Решението е да я използвате заедно с функцията TOCOL.

    Например за извличане на всички различни (отделни) стойности от диапазона A2:C7 формулата е:

    =УНИКАЛНО(TOCOL(A2:C7))

    Освен това можете да обвиете горната формула във функцията SORT, за да подредите върнатия масив по азбучен ред:

    =SORT(UNIQUE(TOCOL(A2:C7))

    Как да конвертирате диапазона в колона в Excel 365 - 2010

    Във версиите на Excel, в които функцията TOCOL не се поддържа, съществуват няколко алтернативни начина за трансформиране на диапазон от клетки в колона. Тези решения са доста сложни, но така или иначе работят.

    Прочитане на диапазона по редове:

    INDEX( обхват , КОЕФИЦИЕНТ(РЕД(A1)-1, КОЛОНИ( обхват ))+1, MOD(РЕД(A1)-1, КОЛОНИ( обхват ))+1)

    Прочитане на диапазона по колони:

    INDEX( обхват , MOD(РЕД(A1)-1, РЕДОВЕ( обхват ))+1, КОЕФИЦИЕНТ(РЕД(A1)-1, РЕДОВЕ( обхват ))+1)

    За нашия примерен набор от данни формулите са следните:

    Сканиране на обхвата хоризонтално отляво надясно :

    =INDEX($A$2:$C$5, QUOTIENT(РЕД(A1)-1, КОЛОНИ($A$2:$C$5))+1, MOD(РЕД(A1)-1, КОЛОНИ($A$2:$C$5))+1)

    Тази формула е еквивалентна на функцията TOCOL, като третият аргумент е зададен на FALSE или е пропуснат:

    =TOCOL(A2:C5)

    Сканиране на обхвата вертикално отгоре надолу :

    =INDEX($A$2:$C$5, MOD(РЕД(A1)-1, РЕДОВЕ($A$2:$C$5))+1, QUOTIENT(РЕД(A1)-1, РЕДОВЕ($A$2:$C$5))+1)

    Тази формула е съпоставима с функцията TOCOL, при която третият аргумент е 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(РЕД(A1)-1, КОЛОНИ($A$2:$C$5))+1, MOD(РЕД(A1)-1, КОЛОНИ($A$2:$C$5))+1)

    Идеята е да се използва функцията INDEX, за да се върне стойността на определена клетка въз основа на относителните номера на редовете и колоните в обхвата.

    Сайтът номер на реда се изчислява чрез тази комбинация:

    КОЕФИЦИЕНТ(РЕД(A1)-1, КОЛОНИ($A$2:$C$5))+1

    QUOTIENT връща целочислената част на делението.

    За числител , използвате ROW(A1)-1, което връща пореден номер от 0 в E2 (първата клетка, в която е въведена формулата) до 11 в E13 (последната клетка, в която е въведена формулата).

    Сайтът знаменател brough by 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(РЕД(A1)-1, КОЛОНИ($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) връща стойността от първия ред и първата колона на посочения диапазон, т.е. от клетка A2.

    В E3, INDEX($A$2:$C$5, 1, 2) връща стойността от първия ред и втората колона, т.е. от клетка B2.

    И така нататък.

    Втората формула, която сканира диапазона по колони, работи по подобен начин. Разликата е, че тя използва MOD за получаване на номера на реда и QUOTIENT за получаване на номера на колоната.

    Функцията TOCOL не работи

    Ако функцията TOCOL хвърли грешка, това най-вероятно е една от тези причини:

    TOCOL не се поддържа във вашия Excel

    Когато получите грешка #NAME?, първото нещо, което трябва да проверите, е правилното изписване на името на функцията. Ако името е правилно, но грешката продължава, функцията не е налична във вашата версия на Excel. В този случай помислете за използване на алтернатива TOCOL.

    Масивът е твърде голям

    Грешката #NUM показва, че масивът не може да се побере в колона. Типичен случай е, когато се позовавате на цели колони или редове.

    Няма достатъчно празни клетки

    Когато се появи грешка #SPILL, проверете дали в колоната, в която е въведена формулата, има достатъчно празни клетки, които да бъдат запълнени с резултатите. Ако клетките са визуално празни, уверете се, че в тях няма интервали и други непечатни символи. За повече информация вижте Как да поправите грешка #SPILL в Excel.

    Ето как можете да използвате функцията TOCOL в Excel 365 и алтернативни решения в по-ранни версии, за да трансформирате двумерен масив в една колона. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Практическа работна тетрадка

    Функция TOCOL на Excel - примери за формули (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.