Turinys
Šiame straipsnyje apžvelgsime įvairius datų rūšiavimo "Excel" programoje būdus. Sužinosite, kaip greitai sutvarkyti datas chronologine tvarka, rūšiuoti pagal mėnesį ignoruojant metus, rūšiuoti gimtadienius pagal mėnesį ir dieną ir kaip automatiškai rūšiuoti pagal datą įvedant naujas reikšmes.
"Excel" integruotos rūšiavimo parinktys yra galingi ir veiksmingi įrankiai, tačiau jie ne visada veikia tinkamai, kai reikia rūšiuoti datas. Šioje pamokoje sužinosite keletą naudingų gudrybių, kaip prasmingai sutvarkyti "Excel" pagal datas nesugadinant duomenų.
Kaip rūšiuoti datas chronologine tvarka
Datas "Excel" programoje chronologine tvarka išdėstyti labai paprasta. Didėjantis rūšiavimas galimybė:
- Pasirinkite datas, kurias norite rūšiuoti chronologiškai.
- Dėl Pagrindinis skirtuke Formatai grupę, spustelėkite Rūšiuoti ir filtruoti ir pasirinkite Rūšiuoti nuo seniausio iki naujausio . Arba galite naudoti A-Z parinktį Duomenys skirtuke Rūšiuoti ir filtruoti grupė.
Kaip rūšiuoti pagal datą programoje "Excel
"Excel" rūšiavimo parinktimis taip pat galima pertvarkyti visą lentelę, o ne tik vieną stulpelį. Norint surūšiuoti įrašus pagal datą, išsaugant nepažeistas eilutes, svarbiausia yra išskleisti pasirinkimą, kai būsite paraginti.
Čia pateikiami išsamūs veiksmai, kaip rūšiuoti duomenis "Excel" programoje pagal datą:
- Skaičiuoklėje pasirinkite datas be stulpelio antraštės.
- Dėl Pagrindinis skirtuką, spustelėkite Rūšiuoti ir filtruoti ir pasirinkite Rūšiuoti nuo seniausio iki naujausio .
- Svetainė Rūšiuoti Įspėjimas bus rodomas dialogo langas. Palikite numatytuosius Išplėskite pasirinkimą pasirinktą parinktį ir spustelėkite Rūšiuoti :
Štai ir viskas! Įrašai surūšiuoti pagal datą ir visos eilutės laikomos kartu:
Kaip rūšiuoti pagal mėnesį "Excel" programoje
Gali būti atvejų, kai norėsite rūšiuoti datas pagal mėnesį ignoruojant metus, pavyzdžiui, grupuojant kolegų ar giminaičių jubiliejines datas. Šiuo atveju numatytasis "Excel" rūšiavimo būdas neveiks, nes visada atsižvelgiama į metus, net jei ląstelės suformatuotos taip, kad būtų rodomas tik mėnuo arba mėnuo ir diena.
Sprendimas - pridėti pagalbinį stulpelį, išskirti mėnesio numerį ir rūšiuoti pagal tą stulpelį. Norėdami iš datos gauti mėnesį, naudokite funkciją MONTH.
Toliau pateiktoje ekrano kopijoje mėnesio numerį iš B2 datos išgauname naudodami šią formulę:
=MĖNESIS(B2)
Patarimas. Jei rezultatas rodomas kaip data, o ne kaip skaičius, nustatykite Bendra formatą į formulės langelius.
Dabar surūšiuokite lentelę pagal Mėnuo Šiuo tikslu pasirinkite mėnesio numerius (C2:C8), spustelėkite Rūšiuoti ir filtruoti > Rūšiuoti nuo mažiausio iki didžiausio , o tada išplėskite pasirinkimą, kai to paprašys "Excel". Jei viskas atlikta teisingai, gausite tokį rezultatą:
Atkreipkite dėmesį, kad mūsų duomenys dabar rūšiuojami pagal mėnesius, neatsižvelgiant į kiekvieno mėnesio metus ir dienas. rūšiuoti pagal mėnesį ir dieną , tada vadovaukitės kito pavyzdžio nurodymais.
Jei mėnesių pavadinimai įvesti kaip tekstas , tada rūšiuokite pagal pasirinktinį sąrašą, kaip paaiškinta šiame pavyzdyje.
Kaip rūšiuoti gimtadienius "Excel" programoje pagal mėnesį ir dieną
Tvarkant gimtadienio kalendoriaus datas, optimalus sprendimas bus rūšiuoti datas pagal mėnesius ir dienas. Todėl reikia formulės, kuri iš gimimo datų ištrauktų mėnesius ir dienas.
Šiuo atveju praverčia "Excel TEXT" funkcija, kuri gali konvertuoti datą į nurodyto formato teksto eilutę. Mūsų tikslui tinka "mmdd" arba "mm.dd" formato kodas.
Kai šaltinio data yra B2, formulė yra tokios formos:
=TEXT(B2, "mm.dd")
Tada surūšiuokite Mėnuo ir diena stulpelį nuo didžiausio iki mažiausio, ir duomenys bus išdėstyti pagal kiekvieno mėnesio dienas.
Tą patį rezultatą galima pasiekti naudojant tokią DATE formulę:
=DATA(2000, MĖNUO(B2),DIENA(B2))
Formulė sukuria datų sąrašą, iš B2 esančios datos išgaudama mėnesį ir dieną, o tikruosius metus pakeisdama netikrais metais, šiame pavyzdyje - 2000 m., nors galite įrašyti bet kokius. Norima, kad visų datų metai būtų vienodi, o tada datų sąrašas būtų surūšiuotas chronologine tvarka. Kadangi metai yra vienodi, datos bus surūšiuotos pagal mėnesį ir dieną, o būtent tai ir yra jūsų tikslas.ieško.
Kaip rūšiuoti duomenis pagal metus programoje "Excel
Kai reikia rūšiuoti pagal metus, paprasčiausia datas išdėstyti chronologine tvarka naudojant "Excel" didėjančio rūšiavimo funkciją ( Nuo seniausio iki naujausio ) parinktį.
Taip datos bus surūšiuotos pagal metus, tada pagal mėnesius ir pagal dienas, kaip parodyta toliau pateiktame paveikslėlyje.
Jei dėl kokių nors priežasčių tokia tvarka jūsų netenkina, galite pridėti pagalbinį stulpelį su formule YEAR, kuri iš datos išgauna metus:
= METAI(C2)
Surūšiavus duomenis pagal Metai stulpelyje pastebėsite, kad datos rūšiuojamos tik pagal metus, nekreipiant dėmesio į mėnesius ir dienas. .
Patarimas. Jei norite rūšiuoti datas pagal dieną neatsižvelgdami į mėnesius ir metus, išskleiskite dieną naudodami funkciją DAY, tada surūšiuokite pagal Diena skiltis:
=DAY(B2)
Kaip "Excel" rūšiuoti pagal savaitės dienas
Norint rūšiuoti duomenis pagal savaitės dieną, taip pat reikės pagalbinio stulpelio, kaip ir ankstesniuose pavyzdžiuose. Šiuo atveju pagalbinį stulpelį užpildysime WEEKDAY formule, kuri grąžins skaičių, atitinkantį savaitės dieną, ir tada rūšiuosime pagal pagalbinį stulpelį.
Jei savaitė prasideda nuo sekmadienio (1) iki šeštadienio (7), naudokite šią formulę:
=SAVAITĖS DIENA(A2)
Jei jūsų savaitė prasideda nuo pirmadienio (1) iki sekmadienio (7), tai čia yra teisinga:
= SAVAITĖS DIENA(A2, 2)
Kai A2 yra ląstelė, kurioje įrašyta data.
Šiame pavyzdyje naudojome pirmąją formulę ir gavome tokį rezultatą:
Jei savaitės dienų pavadinimai įvesti kaip tekstas , o ne datomis, tada naudokite pasirinktinio rūšiavimo funkciją, kaip paaiškinta kitame pavyzdyje.
Kaip rūšiuoti duomenis "Excel" programoje pagal mėnesių pavadinimus (arba savaitės dienų pavadinimus)
Jei turite mėnesių pavadinimų sąrašą, kaip tekstas , o ne kaip datos, suformatuotos taip, kad būtų rodomi tik mėnesiai, taikant "Excel" didėjantį rūšiavimą gali kilti problemų - jis išdėstys mėnesių pavadinimus pagal abėcėlę, užuot rūšiavęs pagal mėnesių eiliškumą nuo sausio iki gruodžio. Šiuo atveju padės pasirinktinis rūšiavimas:
- Pasirinkite įrašus, kuriuos norite rūšiuoti pagal mėnesio pavadinimą.
- Dėl Duomenys skirtuke Rūšiuoti ir filtruoti grupę, spustelėkite Rūšiuoti .
- Į Rūšiuoti dialogo lange atlikite šiuos veiksmus:
- Pagal Stulpelis , pasirinkite stulpelio, kuriame yra mėnesių pavadinimai, pavadinimą.
- Pagal Rūšiuoti pagal , pasirinkite Ląstelių vertės .
- Pagal Užsisakykite , pasirinkite Pasirinktinis sąrašas .
- Į Pasirinktiniai sąrašai dialogo lange pasirinkite pilnus mėnesių pavadinimus ( Sausis , Vasaris , Kovas , ...) arba trumpaisiais pavadinimais ( Jan , Vasaris , Mar ...), priklausomai nuo to, kaip mėnesiai išvardyti jūsų darbalapyje:
Atlikta! Jūsų duomenys buvo surūšiuoti pagal mėnesio pavadinimą chronologine, o ne abėcėlės tvarka:
Patarimas. Jei norite rūšiuoti pagal pavadinimai savaitės dienos , pasirinkite vardus ir pavardes ( Sekmadienis , Pirmadienis , Antradienis , ...) arba trumpaisiais pavadinimais ( Sun , Mon , Antradienis ...) Pasirinktiniai sąrašai dialogo langas.
Kaip automatiškai rūšiuoti pagal datą programoje "Excel
Kaip matote, "Excel" rūšiavimo funkcija susidoroja su įvairiais iššūkiais. Vienintelis trūkumas yra tas, kad ji nėra dinamiška. Tai reiškia, kad turėsite iš naujo rūšiuoti savo duomenis kiekvieną kartą, kai duomenys pasikeičia ir kai pridedama naujos informacijos. Galbūt jums kyla klausimas, ar yra būdas automatiškai rūšiuoti kiekvieną kartą, kai pridedama nauja data, kad jūsų duomenys visada būtų tvarkingi.
Geriausias būdas tai padaryti - naudoti makrokomandą. Toliau rasite keletą kodo pavyzdžių, skirtų automatiškai rūšiuoti šiuos duomenis pagal datą chronologine tvarka.
Makro 1: Automatinis rūšiavimas su kiekvienu darbalapio pakeitimu
Šis makrokomandas vykdomas, kai bet kurioje darbalapio vietoje įvyksta pakeitimas.
Daroma prielaida, kad jūsų duomenys yra A-C stulpeliuose, o datos, pagal kurias norite rūšiuoti, yra C stulpelyje, pradedant nuo C2. Taip pat daroma prielaida, kad 1 eilutėje yra antraštės (Header:=xlYes). Jei jūsų įrašai yra skirtinguose stulpeliuose, atlikite šiuos pakeitimus:
- Pakeiskite nuorodą A1 į viršutinį kairįjį tikslinio diapazono langelį (įskaitant antraštes).
- Pakeiskite C2 nuorodą į aukščiausią ląstelę, kurioje yra data.
2 makrokomanda: automatinis rūšiavimas, kai atliekami tam tikro diapazono pakeitimai
Jei dirbate su didžiuliu darbalapiu, kuriame yra daug informacijos, pakartotinis rūšiavimas, kai lape įvyksta absoliučiai bet koks pokytis, gali kelti rūpesčių. Tokiu atveju tikslinga apriboti makrokomandos paleidimą tik tais pokyčiais, kurie įvyksta tam tikrame intervale. Toliau pateiktas VBA kodas rūšiuoja duomenis tik tada, kai įvyksta pokytis C stulpelyje, kuriame yra datos.
Private Sub Worksheet_Change( ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C:C" )) Is Nothing Then Range("A1" ).Sort Key1:=Range("C2" ), _ Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:= False , _ Orientation:=xlTopToBottom End If End SubPatarimas. Šias makrokomandas galima naudoti automatiniam rūšiavimui pagal bet koks duomenų tipas , o ne tik datas. Mūsų pavyzdžių kodai rūšiuoja didėjančia tvarka. Jei norite rūšiuoti mažėjančia tvarka , pakeiskite Order1:=xlAscending į Order1:=xlDescending.
Kaip pridėti makrokomandą prie darbalapio
Kadangi abi makrokomandos paleidžiamos automatiškai pasikeitus darbalapiui, kodą reikia įterpti į tą lapą, kuriame norite rūšiuoti duomenis (šiame pavyzdyje - į 1 lapą). Štai kaip:
- Paspauskite Alt + F11, kad atidarytumėte VBA redaktorių.
- Į Projekto tyrėjas kairėje pusėje dukart spustelėkite lapą, kuriame norite automatiškai rūšiuoti.
- Įklijuokite kodą į langą Kodas.
Automatinis datų rūšiavimas naudojant formulę
Tarkime, turite datų sąrašą ir norite, kad jos būtų automatiškai išdėstytos chronologine tvarka atskirame stulpelyje šalia pradinio sąrašo. Tai galima padaryti naudojant šią masyvo formulę:
=IFERROR(INDEX($A$2:$A$20, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$20, "<="&$A$2:$A$20), 0)), "")
Kai A2:A20 yra pradinės (nerūšiuotos) datos, įskaitant kelis tuščius langelius galimiems naujiems įrašams.
Įveskite formulę į tuščią langelį šalia stulpelio su pradinėmis datomis (šiame pavyzdyje - C2) ir vienu metu paspauskite klavišus Ctrl + Shift + Enter, kad ją užbaigtumėte. Tada vilkite formulę žemyn į likusius langelius (mūsų atveju - C2:C20).
Patarimas. Norėdami, kad naujai įrašytos datos būtų automatiškai surūšiuotos, būtinai į nurodytą intervalą įtraukite pakankamą skaičių tuščių langelių. Pavyzdžiui, mūsų datų sąrašas yra intervale A2:A7, tačiau formulėje įrašome $A$2:$A$20 ir įrašome į langelius nuo C2 iki C20. Funkcija IFERROR apsaugo nuo klaidų papildomuose langeliuose ir vietoj jų grąžina tuščią eilutę ("").
"Excel" rūšiavimas pagal datą neveikia
Jei jūsų datos nesurūšiuotos taip, kaip turėtų būti, greičiausiai jos įvestos tokiu formatu, kurio "Excel" nesupranta, todėl jos suvokiamos kaip teksto eilutės, o ne kaip datos. Toliau pateiktoje pamokoje paaiškinta, kaip atskirti vadinamąsias "teksto datas" ir konvertuoti jas į įprastas "Excel" datas: Kaip konvertuoti tekstą į datą "Excel" programoje.
Štai kaip "Excel" programoje rūšiuoti pagal datą. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Galimi atsisiuntimai
Rūšiuoti pagal datą formulės pavyzdžiai (.xlsx failas)
Automatinio rūšiavimo makrokomandos (.xlsm failas)