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

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

Бърз начин за превръщане на набор от клетки в един ред с помощта на функцията TOROW функция.

В Microsoft Excel 365 са въведени няколко нови функции за извършване на различни манипулации с масиви. С TOROW можете да извършвате трансформации от обхват към ред за нула време. Ето списък на задачите, които тази нова функция може да изпълнява:

    Функция TOROW на Excel

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

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

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

    Къде:

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

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

    • 0 или пропуснато (по подразбиране) - запазване на всички стойности
    • 1 - игнориране на празните полета
    • 2 - игнориране на грешки
    • 3 - игнориране на празни полета и грешки

    Scan_by_column (по избор) - определя начина на сканиране на масива:

    • FALSE или пропуснато (по подразбиране) - сканира масива хоризонтално по редове.
    • TRUE - сканира масива вертикално по колони.

    Съвети:

    • За да трансформирате масив в една колона, използвайте функцията TOCOL.
    • За да извършите обратното преобразуване от ред в масив, използвайте функцията WRAPCOLS, за да превърнете масива в колони, или функцията WRAPROWS, за да превърнете масива в редове.
    • За да превърнете редовете в колони, използвайте функцията TRANSPOSE.

    Наличие на TOROW

    TOROW е нова функция, която се поддържа само в Excel за Microsoft 365 (за Windows и Mac) и Excel за уеб.

    Основна формула TOROW в Excel

    За да извършите просто преобразуване от обхват към ред, използвайте формулата TOROW в нейната основна форма. За целта трябва да дефинирате само първия аргумент ( масив ).

    Например, за да превърнете двумерен масив, състоящ се от 3 колони и 3 реда, в един ред, формулата е:

    =TOROW(A3:C6)

    Въвеждате формулата само в една клетка (A10 в нашия случай) и тя автоматично се разлива в толкова клетки, колкото са необходими, за да се съхранят всички резултати. На езика на Excel изходният диапазон, заобиколен от тънка синя рамка, се нарича диапазон на разливане.

    Как работи тази формула:

    Първо, предоставеният диапазон от клетки се трансформира в двумерен масив. Обърнете внимание на колоните, разделени със запетая, и редовете, разделени със запетая:

    {"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}

    След това функцията TOROW прочита масива отляво надясно и го преобразува в едномерен хоризонтален масив:

    {"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}

    Резултатът отива в клетка А10, откъдето се прелива в съседната клетка вдясно.

    Преобразуване на обхвата в ред, като се игнорират празните места и грешките

    По подразбиране функцията TOROW запазва всички стойности от изходния масив, включително празните клетки и грешките. В изхода на мястото на празните клетки се появяват нулеви стойности, което може да е доста объркващо.

    За изключване на празни полета , задайте игнориране на на 1:

    =TOROW(A3:C5, 1)

    За игнориране на грешки , задайте игнориране на до 2:

    =TOROW(A3:C5, 2)

    За да пропуснете и двете, празни полета и грешки , използвайте 3 за игнориране на аргумент:

    =TOROW(A3:C5, 3)

    Изображението по-долу показва и трите сценария в действие:

    Четене на масива хоризонтално или вертикално

    При поведението по подразбиране функцията TOROW обработва масива хоризонтално отляво надясно. За да сканирате стойностите по колони отгоре надолу, задайте третия аргумент ( scan_by_column ) на TRUE или 1.

    Например, за да прочетете обхвата на източника по редове, формулата в E3 е:

    =TOROW(A3:C5)

    За сканиране на обхвата по колони формулата в E8 е:

    =TOROW(A3:C5, ,TRUE)

    И в двата случая получените масиви са с еднакъв размер, но стойностите са подредени в различен ред.

    Сливане на няколко диапазона в един ред

    За да комбинирате няколко несъседни диапазона в един ред, първо ги подреждате хоризонтално или вертикално в един масив с помощта съответно на HSTACK или VSTACK и след това използвате функцията TOROW, за да превърнете комбинирания масив в ред.

    В зависимост от вашата бизнес логика задачата ще бъде изпълнена с една от следните формули.

    Подреждане на масиви хоризонтално и преобразуване по редове

    С първия диапазон в A3:C4 и втория диапазон в A8:C9, формулата по-долу ще подреди двата диапазона хоризонтално в един масив и след това ще го трансформира в ред, четящ стойностите от ляво на дясно. Резултатът е в E3 на изображението по-долу.

    =TOROW(HSTACK(A3:C4, A8:C9))

    Подреждане на масиви хоризонтално и преобразуване по колони

    За да прочетете подредения масив вертикално отгоре надолу, задайте третия аргумент на TOROW на TRUE, както е показано в E5 на изображението по-долу:

    =TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)

    Подреждане на масиви вертикално и преобразуване по редове

    За да добавите всеки следващ масив към долната част на предишния и да прочетете комбинирания масив хоризонтално, формулата в E12 е:

    =TOROW(VSTACK(A3:C4, A8:C9))

    Подреждане на масиви вертикално и преобразуване по колони

    За добавяне на всеки следващ масив към долната част на предишния и сканиране на комбинирания масив по вертикала формулата е:

    =TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)

    За да разберете по-добре логиката, обърнете внимание на различния ред на стойностите в получените масиви:

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

    От Microsoft Excel 2016 разполагаме с чудесна функция, наречена UNIQUE, която може лесно да получава уникални стойности от една колона или ред. Тя обаче не може да обработва масиви с много колони. За да преодолеете това ограничение, използвайте функциите UNIQUE и TOROW заедно.

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

    =UNIQUE(TOROW(A2:C7), TRUE)

    Тъй като TOROW връща едноизмерен хоризонтален масив, задаваме 2-та ( by_col ) от аргумента UNIQUE на TRUE, за да се сравнят колоните една с друга.

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

    =SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )

    Както и при UNIQUE, by_col на аргумента SORT също се задава стойност TRUE.

    Алтернатива на TOROW за Excel 365 - 2010

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

    За хоризонтално сканиране на обхвата общата формула е:

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

    За сканиране на обхвата по вертикала общата формула е:

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

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

    Сканиране на диапазона по редове:

    =INDEX($A$3:$C$5, QUOTIENT(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1, MOD(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1)

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

    =TOROW(A3:C5)

    Сканиране на обхвата по колони:

    =INDEX($A$3:$C$5, MOD(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1, QUOTIENT(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1)

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

    =TOROW(A3:C5, ,TRUE)

    Обърнете внимание, че за разлика от функцията TOROW за динамични масиви, тези традиционни формули трябва да се въвеждат във всяка клетка, в която искате да се появят резултатите. В нашия случай първата формула (по ред) отива в E3 и се копира през M3. Втората формула (по колона) попада в E8 и се премества през M8.

    За правилното копиране на формулите заключваме диапазона, като използваме абсолютни препратки ($A$3:$C$5). Именуван диапазон също е подходящ.

    Ако сте копирали формулите в повече клетки, отколкото е необходимо, в "допълнителните" клетки ще се появи грешка #REF! За да поправите това, обвийте формулата си във функцията IFERROR по следния начин:

    =IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1), "")

    Как работят тези формули

    По-долу е представена подробна разбивка на първата формула, която подрежда стойностите по редове:

    =INDEX($A$3:$C$5, QUOTIENT(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1, MOD(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1)

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

    Сайтът номер на реда се изчислява по тази формула:

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

    Идеята е да се създаде повтаряща се последователност от числа, например 1,1,1,2,2,2,3,3,3, ..., при която всяко число се повтаря толкова пъти, колкото са колоните в изходния диапазон. Ето как го правим:

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

    За числител , използваме COLUMN(A1)-1, който връща пореден номер от 0 в първата клетка, в която е въведена формулата, до n (общия брой стойности в диапазона минус 1) в последната клетка, в която е въведена формулата. В този пример имаме 0 в E2 и 8 в M3.

    За знаменател , използваме COLUMNS($A$3:$C$5)). Това връща постоянно число, равно на броя на колоните във вашия диапазон (3 в нашия случай).

    В резултат на това функцията QUOTIENT връща 0 в първите 3 клетки (E3:G3), към които добавяме 1, така че номерът на реда е 1.

    За следващите 3 клетки (H3:J3) QUOTIENT връща 1, а +1 дава номера на ред 2. и т.н.

    За да изчислите номер на колоната , изграждате подходяща последователност от числа с помощта на функцията MOD:

    MOD(КОЛОНА(A1)-1, КОЛОНИ($A$3:$C$5))+1

    Тъй като в нашия диапазон има 3 колони, последователността трябва да изглежда така: 1,2,3,1,2,3,...

    Функцията MOD връща остатъка след делението.

    В E3, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+

    става

    MOD(1-1, 3)+1)

    и връща 1.

    В F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+

    става

    MOD(2-1, 3)+1)

    и връща 2.

    След като се установят номерата на реда и колоната, INDEX лесно извлича стойността в пресечната точка на този ред и колона.

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

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

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

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

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

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

    #NAME? грешка

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

    #NUM грешка

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

    Грешка #SPILL

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

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

    Практическа работна тетрадка за изтегляне

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

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