Екцел СОРТ функција - аутоматско сортирање података помоћу формуле

  • Деле Ово
Michael Brown

Водич показује како да користите функцију СОРТ за динамичко сортирање низова података. Научићете формулу за сортирање по абецедном реду у Екцел-у, распоређивање бројева у растућем или опадајућем редоследу, сортирање по више колона и још много тога.

Функција сортирања постоји већ дуже време. Али са увођењем динамичких низова у Екцел 365, појавио се невероватно једноставан начин сортирања помоћу формула. Лепота ове методе је у томе што се резултати аутоматски ажурирају када се изворни подаци промене.

    Екцел функција СОРТ

    Функција СОРТ у Екцел-у сортира садржај низа или опсег по колонама или редовима, у растућем или опадајућем редоследу.

    СОРТ припада групи функција динамичког низа. Резултат је динамички низ који се аутоматски преноси на суседне ћелије вертикално или хоризонтално, у зависности од облика изворног низа.

    Синтакса функције СОРТ је следећа:

    СОРТ(низ, [сорт_индек ], [ред_сортирања], [по_колцу])

    Где:

    Низ (обавезно) - је низ вредности или опсег ћелија за сортирање. То могу бити било које вредности укључујући текст, бројеве, датуме, времена итд.

    Сорт_индек (опционо) - цео број који показује по којој колони или реду треба сортирати. Ако је изостављен, користи се подразумевани индекс 1.

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

    • 1 или изостављен (подразумевано) - растући редослед , односно одформуле (.клск датотека) од најмањег до највећег
    • -1 - опадајући редослед, тј. од највећег до најмањег

    Би_цол (опционо) - логичка вредност која указује на смер сортирања:

    • ФАЛСЕ или изостављено (подразумевано) - сортирај по реду. Ову опцију ћете користити већину времена.
    • ТРУЕ - сортирај по колони. Користите ову опцију ако су ваши подаци организовани хоризонтално у колоне као у овом примеру.

    Екцел СОРТ функција – савети и напомене

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

    • Тренутно је функција СОРТ доступна само у Мицрософт 365 и Екцел 2021. Екцел 2019, Екцел 2016 не подржавају формуле динамичког низа, тако да функција СОРТ није доступан у овим верзијама.
    • Ако је низ који враћа СОРТ формула коначни резултат (тј. није прослеђен другој функцији), Екцел динамички креира опсег одговарајуће величине и попуњава га сортираним вредностима. Дакле, уверите се да увек имате довољно празних ћелија доле или/и десно од ћелије у коју уносите формулу, иначе ће доћи до грешке #СПИЛЛ.
    • Резултати се ажурирају динамички како се изворни подаци мењају. Међутим, низ који се доставља формули не проширује се аутоматски да би укључио нове уносе који се додају изван референтног низа . Да бисте укључили такве ставке, морате или да ажурирате референцу низ у формули, иликонвертујте изворни опсег у табелу као што је приказано у овом примеру или креирајте динамички именовани опсег.

    Основна Екцел формула СОРТ

    Овај пример приказује основну формулу за сортирање података у Екцел-у у растућем и опадајућем редоследу.

    Претпоставимо да су ваши подаци распоређени по абецедном реду као што је приказано на слици испод. Тражите да сортирате бројеве у колони Б без раздвајања или мешања података.

    Формула за сортирање у растућем редоследу

    Да бисте сортирали вредности у колони Б од најмање до највеће, ево формуле коју треба користити:

    =SORT(A2:B8, 2, 1)

    Где:

    • А2:Б8 је изворни низ
    • 2 је број колоне за сортирање по
    • 1 је растући редослед сортирања

    Пошто су наши подаци организовани у редове, последњи аргумент може да се изостави као подразумевани на ФАЛСЕ – сортирај по редовима.

    Само унесите формулу у било коју празну ћелију (у нашем случају Д2), притисните Ентер и резултати ће се аутоматски прелити на Д2:Е8.

    Формула за сортирање у опадајућем редоследу

    Да бисте сортирали податке опадајуће, тј. од највећег до најмањег, поставите аргумент сорт_ордер на -1 овако:

    =SORT(A2:B8, 2, -1)

    Унесите формулу у горњу леву ћелију опсег одредишта и добићете овај резултат:

    На сличан начин можете сортирати текстуалне вредности по абецедном реду од А до З или од З до А.

    Како сортирати податке у Екцел-у помоћу ф ормула

    Доле наведени примери показују неколико типичних употреба функције СОРТ у Екцел-уи неколико нетривијалних.

    Екцел СОРТИРАЈ по колони

    Када сортирате податке у Екцел-у, углавном мењате редослед редова. Али када су ваши подаци организовани хоризонтално са редовима који садрже ознаке и колонама које садрже записе, можда ћете морати да сортирате с лева на десно, а не одозго надоле.

    Да бисте сортирали по колони у Екцел-у, поставите би_цол аргумент на ТРУЕ. У овом случају, сорт_индек ће представљати ред, а не колону.

    На пример, да бисте сортирали податке испод по количини. од највишег ка најнижем, користите ову формулу:

    =SORT(B1:H2, 2, 1, TRUE)

    Где је:

    • Б1:Х2 изворни подаци за сортирање
    • 2 је индекс сортирања, пошто сортирамо бројеве у другом реду
    • -1 означава опадајући редослед сортирања
    • ТРУЕ значи сортирати колоне, а не редове

    Сортирај по више колона у различитом редоследу (сортирање на више нивоа)

    Када радите са сложеним моделима података, често ће вам требати сортирање на више нивоа. Може ли се то урадити помоћу формуле? Да, лако! Оно што радите је да обезбедите константе низа за аргументе сорт_индек и сорт_ордер .

    На пример, да прво сортирате податке испод према Регион (колона А) од А до З, а затим за Кти . (колона Ц) од најмањег до највећег, поставите следеће аргументе:

    • Низ је податак у А2:Ц13.
    • Индекс_сортирања је константа низа {1,3}, пошто прво сортирамо по Регион (1.колона), а затим за Количину . (3. колона).
    • Сорт_ордер је константа низа {1,-1}, пошто прва колона треба да се сортира растућим, а трећа колона опадајућем.
    • Би_цол је изостављен јер сортирамо редове, што је подразумевано.

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

    =SORT(A2:C13, {1,3}, {1,-1})

    И ради савршено! Текстуалне вредности у првој колони се сортирају по абецедном реду, а бројеви у трећој колони од највеће до најмање:

    Сортирај и филтрирај у Екцел-у

    У случају када желите да филтрирате податке са неким критеријумима и ставите излаз у ред, користите функције СОРТ и ФИЛТЕР заједно:

    СОРТ(ФИЛТЕР(низ, опсег_критеријума= критеријум) , [сорт_индек], [сорт_ордер], [би_цол])

    Функција ФИЛТЕР добија низ вредности на основу критеријума које дефинишете и прослеђује тај низ првом аргументу СОРТ-а.

    Најбоља ствар о овој формули је да она такође даје резултате као динамички распон просуте, без потребе да притиснете Цтрл + Схифт + Ентер или погодите у колико ћелија да га копирате. Као и обично, уносите формулу у најгорњу ћелију и притиснете тастер Ентер.

    На пример, издвојићемо ставке чија је количина једнака или већа од 30 (&гт;=30) из изворне податке у А2:Б9 и распоредите резултате у растућем редоследу.

    За ово прво постављамо услов, рецимо, ућелија Е2 као што је приказано на слици испод. И онда, направите нашу Екцел СОРТ формулу на овај начин:

    =SORT(FILTER(A2:B9, B2:B9>=E2), 2)

    Осим низа који генерише функција ФИЛТЕР, ми наводимо само сорт_индек аргумент (колона 2). Преостала два аргумента су изостављена јер подразумеване вредности раде тачно онако како нам је потребно (сортирајте узлазно, по реду).

    Набавите Н највећих или најмањих вредности и сортирајте резултате

    Када се анализирају огромне количине информација, често постоји потреба да се издвоји одређени број највећих вредности. Можда их не само издвојите, већ и распоредите по жељеном редоследу. У идеалном случају, изаберите које колоне ћете укључити у резултате. Звучи незгодно? Не са новим функцијама динамичког низа!

    Ево генеричке формуле:

    ИНДЕКС(СОРТ(…), СЕКУЕНЦЕ( н), { колона1_до_поврата, цолумн2_то_ретурн, …})

    Где је н број вредности које желите да вратите.

    Из доњег скупа података претпоставите да желите да добијете топ 3 листа заснована на бројевима у колони Ц.

    Да бисте то урадили, прво сортирате низ А2:Ц13 према 3. колони у опадајућем редоследу:

    SORT(A2:C13, 3, -1)

    А затим, угнездите горњу формулу у први ( низ ) аргумент функције ИНДЕКС да бисте имали низ сортиран од највишег до најмањег.

    За други ( ред_нум) ) аргумент, који показује колико редова треба да се врати, генерише потребне секвенцијалне бројеве помоћу функције СЕКУЕНЦЕ. Каопотребне су нам 3 горње вредности, користимо СЕКУЕНЦЕ(3), што је исто као да унесемо константу вертикалног низа {1;2;3} директно у формулу.

    За трећу ( цол_нум ) аргумент, који дефинише колико колона треба вратити, даје бројеве колона у облику константе хоризонталног низа. Желимо да вратимо колоне Б и Ц, па користимо низ {2,3}.

    На крају, добијамо следећу формулу:

    =INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

    И она производи тачно резултате које желимо:

    Да бисте вратили 3 доње вредности, једноставно сортирајте оригиналне податке од најмањег до највећег. За ово промените аргумент сорт_ордер из -1 у 1:

    =INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

    Врати сортирану вредност на одређеној позицији

    Гледајући из другог угла, шта ако желите да вратите само одређену позицију сортирања? Рецимо, само 1., само 2. или само 3. запис са сортиране листе? Да бисте то урадили, користите поједностављену верзију формуле ИНДЕКС СОРТ о којој је горе дискутовано:

    ИНДЕКС(СОРТ(…), н, { колона1_до_поврата, колона2_до_поврата, …})

    Где је н позиција од интереса.

    На пример, да бисте добили одређену позицију од врха (тј. из података сортираних опадајуће), користите ову формулу :

    =INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

    Да бисте добили одређену позицију одоздо (тј. из података сортираних узлазно), користите ово:

    =INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

    Где је А2: Ц13 је извор података, Ф1 је позиција од врха, И1 је позиција оддно, а {2,3} су колоне које треба да се врате.

    Користите Екцел табелу да добијете сортирање низа да се аутоматски прошири

    Као што већ знате , сортирани низ се аутоматски ажурира када унесете било какве промене у оригиналне податке. Ово је стандардно понашање свих функција динамичког низа, укључујући СОРТ. Међутим, када додате нове уносе изван референтног низа, они се не укључују аутоматски у формулу. Ако желите да ваша формула реагује на такве промене, конвертујте изворни опсег у потпуно функционалну Екцел табелу и користите структуриране референце у својој формули.

    Да бисте видели како функционише у пракси, размотрите следеће пример.

    Претпоставимо да користите доњу Екцел СОРТ формулу да уредите вредности у опсегу А2:Б8 по абецедном реду:

    =SORT(A2:B8, 1, 1)

    Затим, унесете нови унос у ред 9... и разочарани су када виде да је новододати унос изостављен ван опсега просипања:

    Сада, конвертујте изворни опсег у табелу. За ово једноставно изаберите свој опсег укључујући заглавља колона (А1:Б8) и притисните Цтрл + Т. Када правите формулу, изаберите изворни опсег помоћу миша и име табеле ће се аутоматски уметнути у формулу (ово се зове структурирана референца):

    =SORT(Table1, 1, 1)

    Када унесете нови унос одмах испод последњег реда, табела ће се аутоматски проширити, а нови подаци ће бити укључени у опсег изливањаформуле СОРТ:

    Екцел функција СОРТ не ради

    Ако ваша СОРТ формула резултира грешком, то је највероватније из следећих разлога.

    Грешка #НАМЕ: старија верзија Екцела

    СОРТ је нова функција и ради само у Екцел 365 и Екцел 2021. У старијим верзијама где ова функција није подржана, #НАМЕ? јавља се грешка.

    #Грешка изливања: нешто блокира опсег просипања

    Ако једна или више ћелија у опсегу преливања нису потпуно празне или спојене, #ПРОЛИВАЊЕ! приказује се грешка. Да бисте то поправили, само уклоните блокаду. За више информација погледајте Екцел #СПИЛЛ! грешка - шта то значи и како да се исправи.

    #ВАЛУЕ грешка: неважећи аргументи

    Кад год наиђете на #ВАЛУЕ! грешка, проверите аргументе индекс_разврставања и поређај_разврставања . Индекс_сортирања не би требало да пређе број колона је низ и поређај_разврставања би требало да буде или 1 (узлазно) или -1 (опадајуће).

    #РЕФ грешка: изворна радна свеска је затворена

    Пошто динамички низови имају ограничену подршку за референце између радних књига, функција СОРТ захтева да обе датотеке буду отворене. Ако је изворна радна свеска затворена, формула ће избацити #РЕФ! грешка. Да бисте то поправили, само отворите референцирану датотеку.

    Тако можете сортирати податке у Екцел-у помоћу формуле. Захваљујем вам се на читању и надам се да се видимо на нашем блогу следеће недеље!

    Вежбајте радну свеску за преузимање

    Сортирај у Екцел-у са

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.