Функцыя Excel SORT - аўтаматычная сартаванне дадзеных па формуле

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

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

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

    Функцыя Excel SORT

    Функцыя SORT у Excel сартуе змесціва масіва або дыяпазон па слупках або радках, у парадку ўзрастання або змяншэння.

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

    Сінтаксіс функцыі SORT наступны:

    SORT(масіў, [індэкс_сартавання). ], [парадак_сартавання], [па_слупку])

    Дзе:

    Масіў (абавязкова) - гэта масіў значэнняў або дыяпазон ячэек для сартавання. Гэта могуць быць любыя значэнні, уключаючы тэкст, лічбы, даты, час і г.д.

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

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

    • 1 або прапушчана (па змаўчанні) - парадак па ўзрастанні , гэта значыць адформулы (файл .xlsx) ад меншага да найбольшага
    • -1 - у парадку змяншэння, г.зн. ад большага да найменшага

    Па слупку (неабавязкова) - лагічнае значэнне, якое паказвае кірунак сартавання:

    • ХЛУСНЯ або прапушчана (па змаўчанні) - сартаваць па радку. Вы будзеце выкарыстоўваць гэты варыянт часцей за ўсё.
    • TRUE - сартаваць па слупку. Выкарыстоўвайце гэты параметр, калі вашы дадзеныя арганізаваны гарызантальна ў слупкі, як у гэтым прыкладзе.

    Функцыя Excel SORT - парады і заўвагі

    SORT - гэта новая функцыя дынамічнага масіву, і таму яна мае некаторыя асаблівасці, пра якія вы павінны ведаць:

    • У цяперашні час функцыя SORT даступная толькі ў Microsoft 365 і Excel 2021. Excel 2019, Excel 2016 не падтрымліваюць формулы дынамічнага масіва, таму функцыя SORT недаступны ў гэтых версіях.
    • Калі масіў, які вяртаецца формулай SORT, з'яўляецца канчатковым вынікам (г.зн. не перадаецца іншай функцыі), Excel дынамічна стварае дыяпазон адпаведнага памеру і запаўняе яго адсартаванымі значэннямі. Такім чынам, пераканайцеся, што ў вас заўсёды ёсць дастаткова пустых вочак унізе або/і справа ад ячэйкі, у якую вы ўводзіце формулу, інакш узнікае памылка #SPILL.
    • Вынікі абнаўляюцца дынамічна па меры змены зыходных даных. Аднак масіў , дадзены ў формулу, не пашыраецца аўтаматычна, каб уключыць новыя запісы, якія дадаюцца па-за масіўам , на які спасылаецца. Каб уключыць такія элементы, вам трэба альбо абнавіць спасылку на масіў у формуле, альбопераўтварыце зыходны дыяпазон у табліцу, як паказана ў гэтым прыкладзе, або стварыце дынамічны найменны дыяпазон.

    Асноўная формула Excel SORT

    У гэтым прыкладзе паказана базавая формула для сартавання даных у Excel у парадку ўзрастання і змяншэння.

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

    Формула для сартавання ў парадку ўзрастання

    Каб сартаваць значэнні ў слупку B ад найменшага да найбольшага, прывядзіце наступную формулу:

    =SORT(A2:B8, 2, 1)

    Дзе:

    • A2:B8 - зыходны масіў
    • 2 - нумар слупка для сартавання
    • 1 — парадак сартавання па ўзрастанні

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

    Проста ўвядзіце формулу ў любую пустую ячэйку (у нашым выпадку D2), націсніце Enter, і вынікі аўтаматычна перакінуцца ў D2:E8.

    Формула для сартавання ў парадку змяншэння

    Для сартавання даных па змяншэнні, г.зн. ад самага вялікага да меншага, усталюйце аргумент парадак_сартавання на -1 наступным чынам:

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

    Увядзіце формулу ў верхнюю левую ячэйку дыяпазон прызначэння, і вы атрымаеце наступны вынік:

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

    Як сартаваць даныя ў Excel з дапамогай f ormula

    У прыведзеных ніжэй прыкладах паказана некалькі тыповых ужыванняў функцыі SORT у Excelі пару нетрывіяльных.

    Сартаванне Excel па слупку

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

    Каб сартаваць па слупку ў Excel, усталюйце by_col аргумент TRUE. У гэтым выпадку індэкс_сартавання будзе прадстаўляць радок, а не слупок.

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

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

    Дзе:

    • B1:H2 з'яўляецца зыходнымі дадзенымі для сартавання
    • 2 з'яўляецца індэкс сартавання, паколькі мы сартуем лікі ў другім радку
    • -1 паказвае парадак сартавання па змяншэнні
    • TRUE азначае сартаваць слупкі, а не радкі

    Сартаванне па некалькіх слупках у розным парадку (шматузроўневае сартаванне)

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

    Напрыклад, каб адсартаваць дадзеныя ніжэй спачатку па Region (слупок A) ад A да Z, а затым па Qty . (слупок C) ад найменшага да вялікага, усталюйце наступныя аргументы:

    • Масіў - гэта даныя ў A2:C13.
    • Індэкс_сартавання з'яўляецца канстантай масіва {1,3}, паколькі мы спачатку сартуем па Рэгіён (1слупок), а потым па Колькасць . (3-і слупок).
    • Парадак_сартавання - гэта канстанта масіва {1,-1}, паколькі 1-ы слупок павінен быць адсартаваны ў парадку ўзрастання, а 3-ці - у парадку змяншэння.
    • By_col апускаецца, таму што мы сартуем радкі, што па змаўчанні.

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

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

    І гэта выдатна працуе! Тэкставыя значэнні ў першым слупку адсартаваны ў алфавітным парадку, а лічбы ў трэцім слупку адсартаваны ад вялікага да меншага:

    Сартаваць і фільтраваць у Excel

    У выпадку калі вы жадаеце адфільтраваць даныя па некаторых крытэрыях і ўпарадкаваць выснову, выкарыстоўвайце функцыі SORT і FILTER разам:

    SORT(FILTER(масіў, дыяпазон_крытэрыяў= крытэрыі) , [індэкс_сартавання], [парадак_сартавання], [па_слупку])

    Функцыя FILTER атрымлівае масіў значэнняў на аснове крытэрыяў, якія вы вызначаеце, і перадае гэты масіў у першы аргумент SORT.

    Лепшая рэч аб гэтай формуле з'яўляецца тое, што яна таксама выводзіць вынікі ў выглядзе дынамічнага дыяпазону разліву, без неабходнасці націскаць Ctrl + Shift + Enter або адгадваць, у колькі ячэек яго скапіяваць. Як звычайна, вы ўводзіце формулу ў самую верхнюю ячэйку і націскаеце клавішу Enter.

    У якасці прыкладу мы збіраемся атрымаць элементы з колькасцю, роўнай або большай за 30 (>=30) з зыходныя даныя ў A2:B9 і размясціць вынікі ў парадку ўзрастання.

    Для гэтага мы спачатку ўсталёўваем умову, скажам, увочка E2, як паказана на малюнку ніжэй. А потым пабудуйце нашу формулу Excel SORT наступным чынам:

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

    Акрамя масіва , згенераванага функцыяй FILTER, мы паказваем толькі sort_index аргумент (слупок 2). Астатнія два аргументы апушчаны, таму што значэнні па змаўчанні працуюць менавіта так, як нам трэба (сартаваць па ўзрастанні, па радку).

    Атрымаць N найбольшых або найменшых значэнняў і адсартаваць вынікі

    Пры аналізе велізарных аб'ёмаў інфармацыі часта ўзнікае неабходнасць атрымаць пэўную колькасць галоўных значэнняў. Магчыма, не проста здабываць, але і размяшчаць іх у патрэбным парадку. І ў ідэале выберыце, якія слупкі ўключыць у вынікі. Гучыць складана? Не з новымі функцыямі дынамічнага масіву!

    Вось агульная формула:

    INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})

    Дзе n гэта колькасць значэнняў, якія вы жадаеце вярнуць.

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

    Каб гэта зрабіць, вы спачатку адсартуеце масіў A2:C13 па 3-м слупку ў парадку змяншэння:

    SORT(A2:C13, 3, -1)

    А потым укладзіце прыведзеную вышэй формулу ў першы ( масіў ) аргумент функцыі INDEX, каб масіў быў адсартаваны ад самага высокага да найменшага.

    Для другога ( нумар_роўну) ), які паказвае, колькі радкоў вярнуць, згенераваць неабходныя паслядоўныя нумары з дапамогай функцыі SEQUENCE. Якнам патрэбныя 3 верхнія значэнні, мы выкарыстоўваем SEQUENCE(3), што тое ж самае, што і пастаўка канстанты вертыкальнага масіва {1;2;3} непасрэдна ў формулу.

    Для трэцяга ( col_num ) аргумент, які вызначае, колькі слупкоў вярнуць, падайце нумары слупкоў у выглядзе канстанты гарызантальнага масіва. Мы хочам вярнуць слупкі B і C, таму мы выкарыстоўваем масіў {2,3}.

    У рэшце рэшт, мы атрымліваем наступную формулу:

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

    І яна дае менавіта тыя вынікі, якія мы жадаем:

    Каб вярнуць 3 ніжнія значэнні, проста адсартуйце зыходныя даныя ад найменшага да вялікага. Для гэтага змяніце аргумент sort_order з -1 на 1:

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

    Вярнуць адсартаванае значэнне ў пэўнай пазіцыі

    Гледзячы з іншага боку, што, калі вы хочаце вярнуць толькі пэўную пазіцыю сартавання? Скажам, толькі 1-ы, толькі 2-і ці толькі 3-ці запіс з адсартаванага спісу? Каб зрабіць гэта, выкарыстоўвайце спрошчаную версію формулы INDEX SORT, разгледжаную вышэй:

    INDEX(SORT(…), n, { column1_to_return, column2_to_return, …})

    Дзе n - цікавая пазіцыя.

    Напрыклад, каб атрымаць пэўную пазіцыю зверху (г.зн. з даных, адсартаваных па змяншэнні), выкарыстоўвайце гэту формулу :

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

    Каб атрымаць пэўную пазіцыю знізу (г.зн. з даных, адсартаваных па ўзрастанні), выкарыстоўвайце наступнае:

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

    Дзе A2: C13 - зыходныя даныя, F1 - пазіцыя зверху, I1 - пазіцыя адунізе, а {2,3} - гэта слупкі, якія трэба вярнуць.

    Выкарыстоўвайце табліцу Excel, каб аўтаматычна пашыраць масіў сартавання

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

    Каб убачыць, як гэта працуе на практыцы, звярніце ўвагу на наступнае. прыклад.

    Выкажам здагадку, што вы выкарыстоўваеце прыведзеную ніжэй формулу Excel SORT для размяшчэння значэнняў у дыяпазоне A2:B8 у алфавітным парадку:

    =SORT(A2:B8, 1, 1)

    Затым вы ўводзіце новы запіс у радок 9… і з расчараваннем бачым, што нядаўна дададзены запіс застаўся па-за дыяпазонам разліву:

    Цяпер пераўтварыце зыходны дыяпазон у табліцу. Для гэтага проста выберыце дыяпазон, уключаючы загалоўкі слупкоў (A1:B8) і націсніце Ctrl + T . Пры стварэнні формулы выберыце зыходны дыяпазон з дапамогай мышы, і назва табліцы будзе ўстаўлена ў формулу аўтаматычна (гэта называецца структураванай спасылкай):

    =SORT(Table1, 1, 1)

    Калі вы ўводзіце новы запіс прама пад апошнім радком, табліца разгорнецца аўтаматычна, і новыя дадзеныя будуць уключаны ў дыяпазон разлівуформулы SORT:

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

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

    Памылка #NAME: старая версія Excel

    SORT - гэта новая функцыя, якая працуе толькі ў Excel 365 і Excel 2021. У старых версіях, дзе гэтая функцыя не падтрымліваецца, #NAME? адбываецца памылка.

    Памылка #SPILL: штосьці блакуе дыяпазон разліву

    Калі адна або некалькі вочак у дыяпазоне разліву не зусім пустыя або аб'яднаныя, #SPILL! адлюстроўваецца памылка. Каб выправіць гэта, проста зніміце засор. Для атрымання дадатковай інфармацыі, калі ласка, глядзіце Excel #SPILL! памылка - што гэта значыць і як яе выправіць.

    Памылка #ЗНАЧЭННЕ: несапраўдныя аргументы

    Кожны раз, калі вы сутыкаецеся з #ЗНАЧЭННЕ! памылка, праверце аргументы sort_index і sort_order . Sort_index не павінен перавышаць колькасць слупкоў array і sort_order павінна быць альбо 1 (па ўзрастанні), альбо -1 (па змяншэнні).

    Памылка #REF: зыходная кніга закрыта

    Паколькі дынамічныя масівы маюць абмежаваную падтрымку спасылак паміж кнігамі, функцыя SORT патрабуецца, каб абодва файлы былі адкрыты. Калі зыходная кніга закрыта, формула выдасць #REF! памылка. Каб выправіць гэта, проста адкрыйце файл, на які спасылаецца спасылка.

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

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

    Сартаванне ў Excel з

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