Excel SORTBY function - pasadyang pag-uuri na may formula

  • Ibahagi Ito
Michael Brown

Ngayon, susuriin nating mabuti ang syntax at karaniwang paggamit ng bagong dynamic array SORTBY function. Matututuhan mo kung paano mag-customize ng custom sa Excel gamit ang isang formula, random na pag-uri-uriin ang isang listahan, ayusin ang mga cell ayon sa haba ng text, at higit pa.

Ang Microsoft Excel ay nagbibigay ng ilang paraan upang ayusin ang data ng text ayon sa alpabeto, mga petsa kronolohikal, at mga numero mula sa pinakamaliit hanggang sa pinakamalaki o mula sa pinakamataas hanggang sa pinakamababa. Mayroon ding paraan upang pagbukud-bukurin ayon sa iyong sariling mga pasadyang listahan. Bilang karagdagan sa kumbensyonal na pag-andar ng Pag-uuri, ipinakilala ng Excel 365 ang isang bagong paraan upang pagbukud-bukurin ang data gamit ang mga formula - napaka-maginhawa at napakadaling gamitin!

    Excel SORTBY function

    Ang SORTBY function sa Excel ay idinisenyo upang pagbukud-bukurin ang isang hanay o hanay batay sa mga halaga sa ibang hanay o hanay. Ang pag-uuri ay maaaring gawin sa pamamagitan ng isa o maraming column.

    Ang SORTBY ay isa sa anim na bagong dynamic array function na available sa Excel para sa Microsoft 365 at Excel 2021. Ang resulta nito ay isang dynamic na array na dumadaloy sa mga kalapit na cell at awtomatikong nag-a-update kapag nagbabago ang source data.

    Ang SORTBY function ay may variable na bilang ng mga argumento - ang unang dalawa ay kinakailangan at ang isa ay opsyonal:

    SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2] ,…)

    Array (kinakailangan) - ang hanay ng mga cell o hanay ng mga halaga na pagbukud-bukurin.

    By_array1 (kinakailangan) - ang hanay o array upang ayusinsa pamamagitan ng.

    Pagbukud-bukurin1 (opsyonal) - ang pagkakasunud-sunod ng pag-uuri:

    • 1 o tinanggal (default) - pataas
    • -1 - pababang

    By_array2 / Sort_order2 , … (opsyonal) - karagdagang array / order pairs na gagamitin para sa pag-uuri.

    Mahalagang paalala! Sa kasalukuyan, available lang ang SORTBY function sa mga subscription sa Microsoft 365 at Excel 2021. Sa Excel 2019, Excel 2016 at mga naunang bersyon, hindi available ang SORTBY function.

    SORTBY function - 4 na dapat tandaan

    Para gumana nang tama ang isang formula ng Excel SORTBY, may ilang mahahalagang puntong dapat pansinin:

    • By_array ang mga argumento ay dapat na isang row ang taas o isang column ang lapad.
    • Ang array at lahat ng by_array na argumento ay dapat na may mga tugmang dimensyon. Halimbawa, kapag nag-uuri ayon sa dalawang column, ang array , by_array1 at by_array2 ay dapat magkaroon ng parehong bilang ng mga row; kung hindi, magkakaroon ng #VALUE error.
    • Kung ang array na ibinalik ng SORTBY ay ang huling resulta (output sa isang cell at hindi naipasa sa isa pang function), gagawa ang Excel ng dynamic na spill range at nilalagyan ito ng mga resulta. Kaya, tiyaking mayroon kang sapat na mga cell na walang laman sa ibaba at/o sa kanan ng cell kung saan mo ilalagay ang formula, kung hindi, makakakuha ka ng #SPILL error.
    • Awtomatikong nag-a-update ang mga resulta ng SORTBY formula sa tuwing ang pagbabago ng source data. Gayunpaman, ang mga bagong entry na idinagdag sa labas ngang array na isinangguni sa formula ay hindi kasama sa mga resulta maliban kung i-update mo ang array reference. Para awtomatikong lumawak ang reference na array, i-convert ang source range sa isang Excel table o gumawa ng dynamic na pinangalanang range.

    Basic SORTBY formula sa Excel

    Narito ang isang tipikal na senaryo ng paggamit ng isang SORTBY formula sa Excel:

    Ipagpalagay, mayroon kang listahan ng mga proyekto na may field na Value . Gusto mong pag-uri-uriin ang mga proyekto ayon sa kanilang halaga sa isang hiwalay na sheet. Dahil hindi kailangang makita ng ibang mga user ang mga numero, mas gugustuhin mong hindi isama ang column na Value sa mga resulta.

    Madaling magawa ang gawain gamit ang SORTBY function, kung saan mo ibigay ang mga sumusunod na argumento:

    • Array ay A2:A10 - dahil hindi mo gustong ipakita ang column na Value sa mga resulta, iiwan mo ito wala sa array.
    • By_array1 ay B2:B10 - pag-uri-uriin ayon sa Halaga .
    • Pagsunud-sunod_sunod1 ay -1 - pababang, ibig sabihin, mula sa pinakamataas hanggang sa pinakamababa.

    Pagsasama-sama ng mga argumento, makukuha namin ang formula na ito:

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

    Para sa pagiging simple, ginagamit namin ang formula sa parehong sheet - ipasok ito sa D2 at pindutin ang Enter key. Awtomatikong "spill" ang mga resulta sa pinakamaraming cell kung kinakailangan (D2:D10 sa aming kaso). Ngunit sa teknikal, ang formula ay nasa unang cell lamang, at ang pagtanggal nito sa D2 ay magtatanggal ng lahat ng mga resulta.

    Kapag ginamit sa isa pang sheet, kinukuha ng formula angsumusunod na hugis:

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

    Kung saan ang Sheet1 ay ang worksheet na naglalaman ng orihinal na data.

    Paggamit ng SORTBY function sa Excel - mga halimbawa ng formula

    Sa ibaba ay makakakita ka ng ilan pang mga halimbawa ng paggamit ng SORTBY, na sana ay mapatunayang kapaki-pakinabang at nagbibigay-kaalaman.

    Pagbukud-bukurin ayon sa maraming column

    Ang pangunahing formula na tinalakay sa itaas ay nag-uuri ng data ayon sa isang column. Ngunit paano kung kailangan mong magdagdag ng isa pang antas ng pag-uuri?

    Ipagpalagay na ang aming sample na talahanayan ay may dalawang field, Status (column B) at Value (column C) , nais naming pag-uri-uriin muna ayon sa Katayuan ayon sa alpabeto, at pagkatapos ay sa pamamagitan ng pababang Halaga .

    Upang pagbukud-bukurin ayon sa dalawang column, magdagdag lang kami ng isa pang pares ng by_array / sort_order arguments:

    • Array ay A2:C10 - sa pagkakataong ito, gusto naming isama ang lahat ng tatlong column sa mga resulta.
    • By_array1 ay B2:B10 - una, pag-uri-uriin ayon sa Katayuan .
    • Pagsunud-sunod_sunod1 ay 1 - pag-uri-uriin ayon sa alpabeto mula sa A hanggang Z.
    • By_array2 ay C2:C10 - pagkatapos, pag-uri-uriin ayon sa Halaga .
    • Pagsunud-sunod_sunod2 ay -1 - pagbukud-bukurin mula sa pinakamalaki hanggang sa pinakamaliit.

    Bilang resulta, nakukuha namin ang sumusunod na formula:

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

    Na muling nagsasaayos sa aming data nang eksakto tulad ng itinuro namin dito:

    Custom sort sa Excel na may formula

    Upang pagbukud-bukurin ang data sa custom na pagkakasunud-sunod, maaari mong gamitin ang feature ng Excel na Custom Sort o bumuo ng SORTBY MATCH formula sa ganitong paraan:

    SORTBY(array,MATCH( range_to_sort , custom_list , 0))

    Kung susuriing mabuti ang aming data set, malamang na mas maginhawang pag-uri-uriin ang mga proyekto ayon sa kanilang katayuan na "lohikal" , hal. ayon sa kahalagahan, sa halip na ayon sa alpabeto.

    Upang magawa ito, lumikha muna kami ng custom na listahan sa nais na pagkakasunud-sunod ng pag-uuri ( Isinasagawa , Nakumpleto , Naka-hold ) na nagta-type ng bawat value sa isang hiwalay na cell sa range na E2:E4.

    At pagkatapos, gamit ang generic na formula sa itaas, ibinibigay namin ang source range para sa array (A2 :C10), ang column na Status para sa range_to_sort (B2:B10), at ang custom na listahan na ginawa namin para sa custom_list (E2:E4).

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

    Bilang resulta, inayos namin ang mga proyekto ayon sa kanilang katayuan nang eksakto kung kinakailangan:

    Upang pag-uri-uriin ayon sa custom na listahan sa reverse order, ilagay ang -1 para sa sort_order1 argument:

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

    At ipapaayos mo ang mga proyekto sa kabilang direksyon:

    Gusto mo bang mag-uri-uriin ang mga talaan sa bawat status? Walang problema. Lamang, magdagdag ng isa pang antas ng pag-uuri sa formula, sabihin sa pamamagitan ng Value (C2:C10), at tukuyin ang nais na pagkakasunud-sunod ng pag-uuri, pataas sa aming kaso:

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

    Ang isang malaking bentahe ng SORTBY formula kumpara sa Custom Sort feature ng Excel ay ang formula ay awtomatikong nag-a-update sa tuwing nagbabago ang orihinal na data, habang ang feature ay nangangailangan ng paglilinis at muling pag-uuri sa bawat pagbabago.

    Paano ang formula na itogumagana:

    Tulad ng nabanggit na, ang SORTBY function ng Excel ay maaari lamang magproseso ng mga "sort by" array na ang mga sukat ay tugma sa source array. Dahil ang aming source array (C2:C10) ay naglalaman ng 9 na row at ang custom na listahan (E2:E4) ay 3 row lang, hindi namin ito maibibigay nang direkta sa by_array argument. Sa halip, ginagamit namin ang function na MATCH upang lumikha ng 9-row array:

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

    Dito, ginagamit namin ang column na Status (B2:B10) bilang mga value ng paghahanap at ang aming custom na listahan (E2:E5) bilang lookup array. Ang huling argumento ay nakatakda sa 0 upang maghanap ng mga eksaktong tugma. Bilang resulta, nakakakuha kami ng array ng 9 na numero, bawat isa ay kumakatawan sa relatibong posisyon ng isang ibinigay na value ng Status sa custom na listahan:

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

    Direktang pupunta ang array na ito sa by_array argument ng SORTBY function at pinipilit itong ilagay ang data sa pagkakasunud-sunod na tumutugma sa mga elemento ng array, ibig sabihin, ang mga unang entry na kinakatawan ng 1's, pagkatapos ay ang mga entry na kinakatawan ng 2's, at iba pa.

    Random na pag-uuri sa Excel na may formula

    Sa mga naunang bersyon ng Excel, maaari kang gumawa ng random na pag-uuri gamit ang RAND function gaya ng ipinaliwanag sa tutorial na ito: Paano random na pag-uri-uriin ang isang listahan sa Excel.

    Sa bagong Excel, maaari kang gumamit ng mas malakas na RANDARRAY function kasama ng SORTBY:

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

    Kung saan ang array ay ang source data na gusto mong i-shuffle.

    Ang generic na formula na ito ay gumagana para sa isang listahan na binubuo ng isangsolong column pati na rin para sa hanay ng maraming column.

    Halimbawa, para random na pag-uri-uriin ang isang listahan sa A2:A10, gamitin ang formula na ito:

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

    Upang i-shuffle data sa A2:C10 na pinapanatili ang mga row, gamitin ang isang ito:

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

    Paano gumagana ang formula na ito:

    Ang RANDARRAY function ay gumagawa ng array ng mga random na numero na gagamitin para sa pag-uuri, at ipapasa mo ito sa by_array argument ng SORTBY. Upang tukuyin kung gaano karaming mga random na numero ang bubuo, bibilangin mo ang bilang ng mga row sa hanay ng pinagmulan sa pamamagitan ng paggamit ng ROWS function, at "i-feed" ang numerong iyon sa rows argument ng RANDARRAY. Iyon lang!

    Tandaan. Tulad ng hinalinhan nito, ang RANDARRAY ay isang pabagu-bagong function at ito ay bumubuo ng isang bagong hanay ng mga random na numero sa bawat oras na ang worksheet ay muling kinalkula. Bilang resulta, ang iyong data ay gagamitin sa bawat pagbabago sa sheet. Upang maiwasan ang awtomatikong pag-resort, maaari mong gamitin ang feature na Paste Special > Values upang palitan ang mga formula ng kanilang mga value.

    Pagbukud-bukurin ang mga cell ayon sa haba ng string

    Upang pagbukud-bukurin ang mga cell ayon sa haba ng mga string ng text na nilalaman ng mga ito, gamitin ang function na LEN upang bilangin ang bilang ng mga character sa bawat cell, at ibigay ang mga kinakalkula na haba sa by_array argument ng SORTBY. Ang argument na sort_order ay maaaring itakda sa alinman sa 1 o -1, depende sa ginustong pagkakasunud-sunod ng pag-uuri.

    Upang pag-uri-uriin ayon sa text string mula sa pinakamaliit hanggang sa pinakamalaki:

    SORTBY(array, LEN(array), 1)

    Upang pag-uri-uriin ayon satext string mula sa pinakamalaki hanggang sa pinakamaliit:

    SORTBY(array, LEN(array), -1)

    At narito ang isang formula na nagpapakita ng diskarteng ito sa totoong data:

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

    Kung saan ang A2:A7 ay ang orihinal na mga cell na gusto mong pag-uri-uriin ayon sa haba ng teksto sa pataas na pagkakasunud-sunod:

    SORTBY vs. SORT

    Sa pangkat ng mga bagong Excel dynamic array function, mayroong dalawang dinisenyo para sa pag-uuri. Inililista namin sa ibaba ang pinakamahalagang pagkakaiba at pagkakatulad pati na rin kung kailan pinakamahusay na gamitin ang bawat isa.

    • Hindi tulad ng SORT function, hindi hinihiling ng SORTBY ang "sort by" array upang maging bahagi ng source array, at hindi rin ito kailangang lumitaw sa mga resulta. Kaya, kapag ang iyong gawain ay pag-uri-uriin ang isang hanay batay sa isa pang independiyenteng hanay o isang pasadyang listahan, ang SORTBY ay ang tamang function na gagamitin. Kung naghahanap ka upang pagbukud-bukurin ang isang hanay batay sa sarili nitong mga halaga, kung gayon ang SORT ay mas naaangkop.
    • Ang parehong mga function ay sumusuporta sa maramihang mga antas ng pag-uuri at pareho ay maaaring i-chain kasama ng iba pang dynamic na array at conventional function.
    • Ang parehong function ay available lang sa mga user ng Excel 365 at Excel 2021.

    Hindi gumagana ang Excel SORTBY function

    Kung sakaling magbalik ng error ang iyong SORTBY formula, malamang dahil sa isa sa mga sumusunod na dahilan.

    Invalid by_array arguments

    Ang by_array na argumento ay dapat isang solong row o isang column at tugma sa laki sa array argumento. Halimbawa, kung ang array ay may 10row, by_array ay dapat ding may kasamang 10 row. Kung hindi, isang #VALUE! nangyayari ang error.

    Mga di-wastong argumento ng sort_order

    Ang sort_order na argumento ay maaari lamang maging 1 (pataas) o -1 (pababa). Kung walang nakatakdang halaga, magde-default ang SORTBY sa pataas na pagkakasunod-sunod. Kung may iba pang value na nakatakda, isang #VALUE! ibinalik ang error.

    Walang sapat na espasyo para sa mga resulta

    Tulad ng anumang iba pang dynamic na array function, ibinubuhos ng SORTBY ang mga resulta sa isang awtomatikong resizable at naa-update na hanay. Kung walang sapat na mga cell na walang laman upang ipakita ang lahat ng mga halaga, isang #SPILL! ang error ay itinapon.

    Ang source workbook ay sarado

    Kung ang SORTBY formula ay tumutukoy sa isa pang Excel file, ang parehong workbook ay kailangang bukas. Kung sarado ang source workbook, isang #REF! nangyayari ang error.

    Hindi sinusuportahan ng iyong bersyon ng Excel ang mga dynamic na array

    Kapag ginamit sa isang pre-dynamic na bersyon ng Excel, ang SORT function ay nagbabalik ng #NAME? error.

    Ganyan gamitin ang SORTBY function sa Excel para gumawa ng custom na pag-uuri at iba pang bagay. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!

    Magsanay ng workbook para sa pag-download

    Excel SORTBY formula (.xlsx file)

    Si Michael Brown ay isang dedikadong mahilig sa teknolohiya na may hilig sa pagpapasimple ng mga kumplikadong proseso gamit ang mga tool sa software. Sa higit sa isang dekada ng karanasan sa industriya ng tech, hinasa niya ang kanyang mga kasanayan sa Microsoft Excel at Outlook, pati na rin ang Google Sheets at Docs. Ang blog ni Michael ay nakatuon sa pagbabahagi ng kanyang kaalaman at kadalubhasaan sa iba, na nagbibigay ng madaling sundan na mga tip at mga tutorial para sa pagpapabuti ng pagiging produktibo at kahusayan. Isa ka mang batikang propesyonal o baguhan, nag-aalok ang blog ni Michael ng mahahalagang insight at praktikal na payo para masulit ang mahahalagang software tool na ito.