Функција Excel SORTBY - прилагодено сортирање со формула

  • Споделете Го Ова
Michael Brown

Денес внимателно ќе ја разгледаме синтаксата и типичната употреба на новата динамичка низа SORTBY функција. Ќе научите како да подредувате прилагодено во Excel со формула, по случаен избор да подредувате листа, да ги подредувате ќелиите по должина на текст и многу повеќе.

Microsoft Excel обезбедува голем број начини за распоредување на текстуални податоци по азбучен ред, датуми хронолошки, и броеви од најмали до најголеми или од највисоки до најниски. Исто така, постои начин да се подредат според вашите сопствени списоци. Покрај конвенционалната функционалност Сортирање, Excel 365 воведува сосема нов начин за подредување податоци со формули - многу удобен и неверојатно едноставен за користење!

    Excel SORTBY функција

    Функцијата SORTBY во Excel е дизајнирана да подредува еден опсег или низа врз основа на вредностите во друг опсег или низа. Сортирањето може да се врши со една или повеќе колони.

    SORTBY е една од шесте нови функции на динамична низа достапни во Excel за Microsoft 365 и Excel 2021. Нејзиниот резултат е динамична низа што се прелева во соседните ќелии и автоматски се ажурира кога изворните податоци се менуваат.

    Функцијата SORTBY има променлив број на аргументи - првите два се задолжителни, а другите се опционални:

    SORTBY(низа, по_низа1, [сорт_ред1], [по_низа2, сорт_ред2] ,…)

    Низа (задолжително) - опсег на ќелии или низа вредности што треба да се подредат.

    By_array1 (задолжително) - опсегот или низата да сортираатод.

    Сореди_ред1 (опционално) - редоследот на сортирање:

    • 1 или испуштен (стандардно) - растечки
    • -1 - опаѓачки

    By_array2 / Sort_order2 , … (опционално) - дополнителна низа / парови нарачки што ќе се користат за сортирање.

    Важна забелешка! Во моментов функцијата SORTBY е достапна само со претплати на Microsoft 365 и Excel 2021. Во Excel 2019, Excel 2016 и претходните верзии, функцијата SORTBY не е достапна.

    SORTBY функција - 4 работи што треба да се запомнат

    За формулата Excel SORTBY да работи правилно, има неколку важни точки што треба да се земат предвид:

    • By_array аргументите треба да бидат високи или еден ред или широки една колона.
    • Аргументите низа и сите по_низа мора да имаат компатибилни димензии. На пример, при подредување по две колони, низа , по_низа1 и по_низа2 треба да имаат ист број на редови; инаку ќе се појави грешка #VALUE.
    • Ако низата вратена од SORTBY е конечниот резултат (излез во ќелија и не е предаден на друга функција), Excel создава динамичен опсег на истурање и го пополнува со резултатите. Затоа, бидете сигурни дека имате доволно празни ќелии долу и/или десно од ќелијата каде што ја внесувате формулата, во спротивно ќе добиете грешка #SPILL.
    • Резултатите од формулите SORTBY се ажурираат автоматски секогаш кога промени на изворните податоци. Сепак, нови записи кои се додаваат надвор однизата наведени во формулата не се вклучени во резултатите освен ако не ја ажурирате референцата низа . За референтната низа автоматски да се прошири, претворете го изворниот опсег во табела Excel или креирајте динамичен опсег со име.

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

    Еве типично сценарио за користење на Формула SORTBY во Excel:

    Да претпоставиме дека имате листа на проекти со полето Вредност . Сакате да ги сортирате проектите според нивната вредност на посебен лист. Бидејќи другите корисници не треба да ги гледаат броевите, подобро е да не ја вклучите колоната Вредност во резултатите.

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

    • Array е A2:A10 - бидејќи не сакате колоната Вредност да се прикажува во резултатите, ја оставате надвор од низата.
    • By_array1 е B2:B10 - подредете по Вредност .
    • Сорт_ред1 е -1 - опаѓачки, т.е. од највисоко до најниско.

    Соединувајќи ги аргументите, ја добиваме оваа формула:

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

    За едноставност, ја користиме формулата на истото лист - внесете го во D2 и притиснете го копчето Enter. Резултатите „се прелеваат“ автоматски во онолку ќелии колку што е потребно (Д2: Д10 во нашиот случај). Но, технички, формулата е само во првата ќелија, а бришењето од D2 ќе ги избрише сите резултати.

    Кога се користи на друг лист, формулата го земаследнава форма:

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

    Каде што Лист 1 е работниот лист што ги содржи оригиналните податоци.

    Користење на функцијата SORTBY во Excel - примери на формули

    Подолу ќе најдете уште неколку примери за користење SORTBY, кои се надеваме дека ќе се покажат корисни и остроумни.

    Подреди по повеќе колони

    Основната формула дискутирана погоре ги подредува податоците по една колона. Но, што ако треба да додадете уште едно ниво на сортирање?

    Претпоставувајќи дека нашата примерна табела има две полиња, Статус (колона B) и Вредност (колона C) , сакаме прво да подредиме по Статус по азбучен ред, а потоа по Вредност опаѓачки.

    За да подредиме по две колони, само додаваме уште еден пар од <1 Аргументи>по_низа / сорт_ред :

    • Низа е A2:C10 - овој пат, сакаме да ги вклучиме сите три колони во резултатите.
    • By_array1 е B2:B10 - прво, подредете по Статус .
    • Сорт_ред1 е 1 - подредете по азбучен ред од A до Z.
    • By_array2 е C2:C10 - потоа, подредете по Вредност .
    • Сорт_ред2 е -1 - подредете од најголем до најмал.

    Како резултат, ја добиваме следнава формула:

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

    Која ги преуредува нашите податоци точно како што ги наложивме:

    Прилагодено подредување во Excel со формула

    За да ги сортирате податоците по прилагоден редослед, можете или да ја користите функцијата Прилагодено сортирање на Excel или да изградите формула SORTBY MATCH на овој начин:

    SORTBY(низа,MATCH( опсег_за_сортирање , прилагодена_листа , 0))

    Да погледнете подетално на нашиот сет на податоци, веројатно ќе ви биде попогодно да ги сортирате проектите според нивниот статус „логично“ , на пр. по важност, наместо по азбучен ред.

    За да го направиме тоа, прво создаваме приспособена листа во саканиот редослед на сортирање ( Во тек , Завршено , На чекање ) пишувајќи ја секоја вредност во посебна ќелија во опсегот E2:E4.

    И потоа, користејќи ја генеричката формула погоре, го снабдуваме изворниот опсег за низа (A2 :C10), колоната Статус за опсег_за_сортирање (B2:B10) и приспособената листа што ја создадовме за прилагодена_листа (E2:E4).

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

    Како резултат, проектите ги подредивме според нивниот статус точно како што е потребно:

    За подредување по приспособена листа во обратен редослед, ставете -1 за Аргументот сорт_ред1 :

    =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 броеви, секој ја претставува релативната позиција на дадената вредност Статус во приспособената листа:

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

    Оваа низа оди директно на аргументот by_array на функцијата SORTBY и го принудува да ги постави податоците по редослед што одговара на елементите на низата, т.е. први записи претставени со 1, потоа записи претставени со 2 и така натаму. 3>

    Случајно сортирање во Excel со формула

    Во претходните верзии на Excel, можете да направите случајно сортирање со функцијата RAND како што е објаснето во ова упатство: Како случајно да подредите листа во Excel.

    Во новиот Excel, можете да користите помоќна функција RANDARRAY заедно со SORTBY:

    SORTBY( низа , RANDARRAY(ROWS( низа )))

    Каде што низа се изворните податоци што сакате да ги измешате.

    Оваа генеричка формула работи за листа која се состои одединечна колона, како и за опсег со повеќе колони.

    На пример, за случајно подредување листа во A2:A10, користете ја оваа формула:

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

    За мешање податоци во A2:C10 одржувајќи ги редовите заедно, користете го ова:

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

    Како функционира оваа формула:

    Функцијата RANDARRAY произведува низа на случајни броеви што ќе се користат за сортирање, а вие го пренесувате во аргументот by_array на SORTBY. За да одредите колку случајни броеви да се генерираат, го броите бројот на редови во изворниот опсег со користење на функцијата ROWS и го „нахраните“ тој број во аргументот редови на RANDARRAY. Тоа е тоа!

    Забелешка. Како и неговиот претходник, RANDARRAY е испарлива функција и генерира нова низа од случајни броеви секогаш кога работниот лист повторно се пресметува. Како резултат на тоа, вашите податоци ќе се прибегнуваат со секоја промена на листот. За да спречите автоматско прибегнување, можете да ја користите функцијата Залепете специјално > Вредности за да ги замените формулите со нивните вредности.

    Подреди ќелии по должина на низата

    За да ги сортирате ќелиите според должината на текстуалните низи што ги содржат, користете ја функцијата LEN за да го броите бројот на знаци во секоја ќелија и доставете ги пресметаните должини на аргументот by_array на SORTBY. Аргументот сорт_ред може да се постави на 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 да врати грешка, најверојатно тоа е поради една од следните причини.

    Невалидни аргументи од_низа

    Аргументите по_низа мора да бидат единечен ред или една колона и компатибилен по големина со низата аргумент. На пример, ако низата има 10редови, по_низа треба да вклучува и 10 редови. Инаку #ВРЕДНОСТ! се појавува грешка.

    Аргументи за неважечки редослед на сортирање

    Аргументите сорт_ред можат да бидат само 1 (растечки) или -1 (опаѓачки). Ако не е поставена вредност, SORTBY стандардно поставува растечки редослед. Ако е поставена друга вредност, #VALUE! грешката е вратена.

    Нема доволно простор за резултати

    Како и секоја друга функција на динамична низа, SORTBY ги прелева резултатите во опсег што автоматски може да се промени големината и да се ажурира. Ако нема доволно празни ќелии за да се прикажат сите вредности, # SPILL! е исфрлена грешка.

    Изворната работна книга е затворена

    Ако формулата SORTBY упатува на друга датотека на Excel, двете работни книги треба да бидат отворени. Ако изворната работна книга е затворена, #REF! се појавува грешка.

    Вашата верзија на Excel не поддржува динамички низи

    Кога се користи во преддинамична верзија на Excel, функцијата SORT враќа #NAME? грешка.

    Така се користи функцијата SORTBY во Excel за да се изврши приспособено сортирање и други работи. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

    Вежбајте работна книга за преземање

    формули на Excel SORTBY (датотека .xlsx)

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.