Функцыя Excel SORTBY - карыстацкая сартаванне па формуле

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

Сёння мы ўважліва разгледзім сінтаксіс і тыповае выкарыстанне новай функцыі дынамічнага масіва SORTBY. Вы даведаецеся, як карыстальніцкае сарціраванне ў Excel з дапамогай формулы, выпадковым чынам сартаваць спіс, упарадкоўваць ячэйкі па даўжыні тэксту і многае іншае.

Microsoft Excel прапануе некалькі спосабаў размяшчэння тэкставых даных у алфавітным парадку, даты храналагічна, і лікі ад найменшага да вялікага або ад самага высокага да найменшага. Таксама ёсць спосаб сартаваць па ўласных карыстальніцкіх спісах. У дадатак да звычайнай функцыі сартавання, Excel 365 прадстаўляе зусім новы спосаб сартавання даных з дапамогай формул - вельмі зручны і неверагодна просты ў выкарыстанні!

    Функцыя Excel SORTBY

    Функцыя SORTBY у Excel прызначана для сартавання аднаго дыяпазону або масіва на аснове значэнняў у іншым дыяпазоне або масіве. Сартаванне можа выконвацца па адным або некалькіх слупках.

    SORTBY - адна з шасці новых функцый дынамічнага масіва, даступных у Excel для Microsoft 365 і Excel 2021. Яе вынік - дынамічны масіў, які перацякае ў суседнія ячэйкі і аўтаматычна абнаўляецца пры зыходныя даныя змяняюцца.

    Функцыя САРТАВАЦЬ мае зменную колькасць аргументаў - першыя два абавязковыя, а другі неабавязковы:

    САРТАВАЦЬ(масіў, па_масіўу1, [парадак_сартавання1], [па_масіўу2, парадак_сартавання2] ,…)

    Масіў (абавязкова) - дыяпазон ячэек або масіў значэнняў для сартавання.

    Па_масіўу1 (абавязкова) - дыяпазон або масіў сартавацьпа.

    Парадак_сартавання1 (неабавязкова) - парадак сартавання:

    • 1 або апушчаны (па змаўчанні) - па ўзрастанні
    • -1 - па змяншэнні

    Па_масіўу2 / Парадак_сартавання2 , … (неабавязкова) - дадатковыя пары масіў/парадак для сартавання.

    Важная заўвага! У цяперашні час функцыя SORTBY даступная толькі з падпіскамі на Microsoft 365 і Excel 2021. У Excel 2019, Excel 2016 і больш ранніх версіях функцыя SORTBY недаступная.

    Функцыя SORTBY - 4 рэчы, пра якія трэба памятаць

    Каб формула Excel SORTBY працавала карэктна, варта звярнуць увагу на некалькі важных момантаў: аргументы

    • By_array павінны быць альбо ў адзін радок у вышыню, альбо ў адзін слупок у шырыню.
    • масіў і ўсе аргументы па_масіўу павінны мець сумяшчальныя памеры. Напрыклад, пры сартаванні па двух слупках масіў , масіў1 і масіў2 павінны мець аднолькавую колькасць радкоў; у адваротным выпадку адбудзецца памылка #ЗНАЧЭННЕ.
    • Калі масіў, які вяртае SORTBY, з'яўляецца канчатковым вынікам (выводзіцца ў ячэйцы і не перадаецца іншай функцыі), Excel стварае дынамічны дыяпазон разліву і запаўняе яго вынікамі. Такім чынам, пераканайцеся, што ў вас ёсць дастаткова пустых вочак унізе і/або справа ад ячэйкі, у якую вы ўводзіце формулу, інакш вы атрымаеце памылку #SPILL.
    • Вынікі формул SORTBY абнаўляюцца аўтаматычна кожны раз, калі змены зыходных даных. Аднак новыя запісы, якія дадаюцца па-замасіў, на які спасылаецца формула, не ўключаецца ў вынікі, калі вы не абнавіце спасылку на масіў . Каб масіў, на які спасылаецца, пашыраўся аўтаматычна, пераўтварыце зыходны дыяпазон у табліцу Excel або стварыце дынамічны найменны дыяпазон.

    Асноўная формула САРТАВАННЯ ў Excel

    Вось тыповы сцэнар выкарыстання Формула SORTBY у Excel:

    Выкажам здагадку, у вас ёсць спіс праектаў з полем Значэнне . Вы хочаце адсартаваць праекты па іх вартасці на асобным аркушы. Паколькі іншым карыстальнікам не трэба бачыць лічбы, вам лепш не ўключаць слупок Значэнне ў вынікі.

    Задача можа быць лёгка выканана з дапамогай функцыі САРТАВАЦЬ, для якой вы падайце наступныя аргументы:

    • Масіў гэта A2:A10 - паколькі вы не хочаце, каб слупок Значэнне адлюстроўваўся ў выніках, вы пакідаеце яго па-за масіва.
    • Па_масіўу1 роўна B2:B10 - сартаваць па значэнні .
    • Парадак_сартавання1 роўна -1 - па змяншэнні, г.зн. ад самага высокага да самага нізкага.

    Складваючы аргументы разам, мы атрымліваем наступную формулу:

    =SORTBY(A2:B10, B2:B10, -1)

    Для прастаты мы выкарыстоўваем формулу на тым самым ліст - увядзіце яго ў D2 і націсніце клавішу Enter. Вынікі "разліваюцца" аўтаматычна ў столькі вочак, колькі неабходна (у нашым выпадку D2:D10). Але тэхнічна формула знаходзіцца толькі ў першай ячэйцы, і выдаленне яе з D2 прывядзе да выдалення ўсіх вынікаў.

    Пры выкарыстанні на іншым аркушы формула прымаенаступная форма:

    =SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)

    Дзе Sheet1 - працоўны ліст, які змяшчае зыходныя дадзеныя.

    Выкарыстанне функцыі SORTBY у Excel - прыклады формул

    Ніжэй вы знойдзеце яшчэ некалькі прыкладаў выкарыстання SORTBY, якія, спадзяюся, апынуцца карыснымі і праніклівымі.

    Сартаванне па некалькіх слупках

    Асноўная формула, разгледжаная вышэй, сартуе даныя па адным слупку. Але што, калі вам трэба дадаць яшчэ адзін узровень сартавання?

    Калі выказаць здагадку, што наша ўзорная табліца мае два палі, Статус (слупок B) і Значэнне (слупок C) , мы жадаем адсартаваць спачатку па Стан у алфавітным парадку, а потым па Значэнні па змяншэнні.

    Каб адсартаваць па двух слупках, мы проста дадаем яшчэ адну пару <1 Аргументы>by_array / sort_order :

    • Masiv A2:C10 - на гэты раз мы хочам уключыць у вынікі ўсе тры слупкі.
    • Па_масіўу1 роўна B2:B10 - спачатку сартуйце па Статусе .
    • Парадак_сартавання1 роўны 1 - сартуйце ў алфавітным парадку ад A да Z.
    • Па_масіўу2 роўна C2:C10 - тады сартуйце па Значэнні .
    • Парадак_сартавання2 роўна -1 - сартаваць ад найбольшага да меншага.

    У выніку мы атрымаем наступную формулу:

    =SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)

    Якая пераўпарадкоўвае нашы даныя ў дакладнасці так, як мы ёй загадалі:

    Карыстальніцкае сартаванне ў Excel з дапамогай формулы

    Каб сартаваць даныя ў нестандартным парадку, вы можаце выкарыстаць функцыю карыстальніцкага сартавання Excel або стварыць формулу САРТАВАННЯ ПА СУПАДЗЕННІ такім чынам:

    САРТАВАЦЬ (масіў,MATCH( range_to_sort , custom_list , 0))

    Прыгледзеўшыся да нашага набору даных, вы, напэўна, палічыце зручней сартаваць праекты па статусе "лагічна" , напр. паводле важнасці, а не ў алфавітным парадку.

    Каб гэта было зроблена, мы спачатку ствараем уласны спіс у жаданым парадку сартавання ( Выконваецца , Завершана , На ўтрыманні ), уводзячы кожнае значэнне ў асобную ячэйку ў дыяпазоне E2:E4.

    І затым, выкарыстоўваючы агульную формулу вышэй, мы даем зыходны дыяпазон для масіва (A2 :C10), слупок Status для range_to_sort (B2:B10) і карыстальніцкі спіс, які мы стварылі для custom_list (E2:E4).

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))

    У выніку мы атрымалі праекты, адсартаваныя па іх статусе менавіта так, як трэба:

    Каб сартаваць па карыстальніцкаму спісу ў адваротным парадку, пастаўце -1 для sort_order1 аргумент:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)

    І вы будзеце мець праекты адсартаваныя ў адваротным кірунку:

    Хочаце дадаткова сартаваць запісы ў кожным статусе? Няма праблем. Проста дадайце да формулы яшчэ адзін узровень сартавання, скажам, па Значэнні (C2:C10), і вызначце жаданы парадак сартавання, у нашым выпадку па ўзрастанні:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)

    Вялікая перавага формулы SORTBY перад функцыяй карыстальніцкага сартавання Excel заключаецца ў тым, што формула аўтаматычна абнаўляецца кожны раз, калі зыходныя даныя змяняюцца, у той час як гэтая функцыя патрабуе ачысткі і паўторнай сартавання пры кожнай змене.

    Як гэтая формулапрацуе:

    Як ужо згадвалася, функцыя SORTBY Excel можа апрацоўваць толькі масівы "сартаваць па", памеры якіх сумяшчальныя з зыходным масівам. Паколькі наш зыходны масіў (C2:C10) змяшчае 9 радкоў, а карыстальніцкі спіс (E2:E4) толькі 3 радкі, мы не можам паставіць яго непасрэдна ў аргумент by_array . Замест гэтага мы выкарыстоўваем функцыю MATCH для стварэння масіва з 9 радкоў:

    MATCH(B2:B10, E2:E5, 0)

    Тут мы выкарыстоўваем слупок Статус (B2:B10) у якасці значэнняў пошуку і наш карыстальніцкі спіс (E2:E5) як масіў пошуку. Апошні аргумент усталяваны ў 0 для пошуку дакладных супадзенняў. У выніку мы атрымаем масіў з 9 лікаў, кожны з якіх уяўляе адносную пазіцыю зададзенага значэння Status у карыстальніцкім спісе:

    {1;3;2;1;3;2;2;1;2}

    Гэты масіў ідзе непасрэдна да аргументу by_array функцыі SORTBY і прымушае яе размяшчаць даныя ў парадку, які адпавядае элементам масіва, г.зн. спачатку запісы, прадстаўленыя адзінкамі, потым запісы, прадстаўленыя двойкамі, і гэтак далей.

    Выпадковае сартаванне ў Excel з дапамогай формулы

    У больш ранніх версіях Excel вы можаце выконваць выпадковае сартаванне з дапамогай функцыі RAND, як тлумачыцца ў гэтым уроку: Як выпадкова сартаваць спіс у Excel.

    У новым Excel вы можаце выкарыстоўваць больш магутную функцыю RANDARRAY разам з SORTBY:

    SORTBY( array , RANDARRAY(ROWS( array )))

    Дзе масіў - гэта зыходныя даныя, якія вы хочаце ператасаваць.

    Гэта агульная формула працуе для спісу, які складаецца заднаго слупка, а таксама для дыяпазону з некалькіх слупкоў.

    Напрыклад, каб выпадкова адсартаваць спіс у A2:A10, выкарыстоўвайце наступную формулу:

    =SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))

    Каб ператасаваць даныя ў A2:C10 захоўваючы радкі разам, выкарыстоўвайце гэты:

    =SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))

    Як працуе гэтая формула:

    Функцыя RANDARRAY стварае масіў выпадковых лікаў, якія будуць выкарыстоўвацца для сартавання, і вы перадаеце гэта ў аргумент by_array функцыі SORTBY. Каб вызначыць, колькі выпадковых лікаў трэба згенераваць, вы падлічваеце колькасць радкоў у зыходным дыяпазоне з дапамогай функцыі ROWS і "карміце" гэты лік у аргумент rows RANDARRAY. Вось і ўсё!

    Заўвага. Як і яго папярэднік, RANDARRAY з'яўляецца зменлівай функцыяй і стварае новы масіў выпадковых лікаў кожны раз, калі аркуш пералічваецца. У выніку вашы даныя будуць перабірацца з кожным змяненнем на аркушы. Каб прадухіліць аўтаматычны перабор, вы можаце выкарыстоўваць функцыю Спецыяльная ўстаўка > Значэнні , каб замяніць формулы іх значэннямі.

    Сартаваць ячэйкі па даўжыні радка

    Каб адсартаваць ячэйкі па даўжыні тэкставых радкоў, якія яны ўтрымліваюць, выкарыстоўвайце функцыю LEN, каб падлічыць колькасць сімвалаў у кожнай ячэйцы, і ўвядзіце вылічаную даўжыню ў аргумент by_array функцыі SORTBY. Аргумент sort_order можа мець значэнне 1 або -1, у залежнасці ад пераважнага парадку сартавання.

    Для сартавання па тэкставым радку ад найменшага да вялікага:

    SORTBY(масіў, LEN(масіў), 1)

    Для сартавання патэкставы радок ад вялікага да меншага:

    SORTBY(масіў, LEN(масіў), -1)

    І вось формула, якая дэманструе гэты падыход на рэальных дадзеных:

    =SORTBY(A2:A7, LEN(A2:A7), 1)

    Дзе A2:A7 - гэта зыходныя ячэйкі, якія вы хочаце адсартаваць па даўжыні тэксту ў парадку ўзрастання:

    SORTBY супраць SORT

    У групе новых функцый дынамічнага масіву Excel ёсць дзве прызначаны для сартавання. Ніжэй мы пералічваем найбольш важныя адрозненні і падабенствы, а таксама тое, калі кожны з іх лепш выкарыстоўваць.

    • У адрозненне ад функцыі SORT, SORTBY не патрабуе, каб масіў "сартаваць па" быў часткай крыніцы. масіў, і ён не павінен паказвацца ў выніках. Такім чынам, калі ваша задача складаецца ў тым, каб сартаваць дыяпазон на аснове іншага незалежнага масіва або карыстацкага спісу, SORTBY - гэта правільная функцыя для выкарыстання. Калі вы жадаеце сартаваць дыяпазон на аснове яго ўласных значэнняў, то SORT больш падыходзіць.
    • Абедзве функцыі падтрымліваюць некалькі ўзроўняў сартавання, і абедзве могуць быць злучаныя разам з іншымі дынамічнымі масівамі і звычайнымі функцыямі.
    • Абедзве функцыі даступныя толькі для карыстальнікаў Excel 365 і Excel 2021.

    Функцыя Excel SORTBY не працуе

    Калі ваша формула SORTBY вяртае памылку, гэта, хутчэй за ўсё, з-за адна з наступных прычын.

    Няправільныя аргументы by_array

    Аргументы by_array павінны быць адным радком або адным слупком і сумяшчальныя па памеры з масіўам аргумент. Напрыклад, калі масіў мае 10радкоў, by_array павінен таксама ўключаць 10 радкоў. У адваротным выпадку #ЗНАЧЭННЕ! адбываецца памылка.

    Няправільныя аргументы парадку_сартавання

    Аргументы парадак_сартавання могуць быць толькі 1 (па ўзрастанні) або -1 (па змяншэнні). Калі значэнне не ўстаноўлена, SORTBY па змаўчанні ў парадку ўзрастання. Калі ўсталявана любое іншае значэнне, #VALUE! вяртаецца памылка.

    Не хапае месца для вынікаў

    Як і любая іншая функцыя дынамічнага масіву, SORTBY разлівае вынікі ў дыяпазон, які аўтаматычна змяняецца і абнаўляецца. Калі пустых вочак недастаткова для адлюстравання ўсіх значэнняў, #РАЗЛІВ! выдаецца памылка.

    Зыходная кніга закрыта

    Калі формула SORTBY спасылаецца на іншы файл Excel, абедзве кнігі павінны быць адкрыты. Калі зыходная кніга закрыта, #REF! адбываецца памылка.

    Ваша версія Excel не падтрымлівае дынамічныя масівы

    Пры выкарыстанні ў папярэдне дынамічнай версіі Excel функцыя SORT вяртае #NAME? памылка.

    Вось як выкарыстоўваць функцыю САРТАВАЦЬ у Excel для карыстальніцкага сартавання і іншых рэчаў. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!

    Практычны сшытак для спампоўкі

    Формулы Excel SORTBY (файл .xlsx)

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