i dag viser jeg, hvordan man sorterer et datasæt i fremragende efter dato.
når vi arbejder med datoerne, er vi ofte nødt til at arbejde med datoerne. Fra indføring til manipulation og alt derimellem. Vi får et sæt data, hvor vi skal sortere dataene efter datoerne, i enten stigende eller faldende rækkefølge.
Læs mere: Sorter efter dato og klokkeslæt, og hvordan du sorterer datoer i udmærke efter år (4 nemme måder)
i dag viser jeg, hvordan du kan løse det.
Hent Øvelsesarbejdsbog
her har vi et datasæt med id ‘ er, navne og sammenføjningsdatoer for nogle medarbejdere i et firma ved navn Mars Group.
vores mål i dag er at sortere medarbejderne efter deres tilmeldingsdatoer i stigende rækkefølge.
Sorter efter dato ved hjælp af Sorter & Filtrer fra værktøjslinjen
først og fremmest sorterer vi dem ved hjælp af sektionen Sorter & Filtrer fra værktøjslinjen værktøjslinje.
Vælg hele datasættet og gå til hjem > Sorter & filtrer i værktøjslinjen.
Klik på rullemenuen. Du får nogle muligheder. Vælg Brugerdefineret Sortering.
du vil blive præsenteret for dialogboksen Brugerdefineret sortering.
Læs mere:
under indstillingen kolonne I Sorter efter skal du vælge den kolonne, du vil sortere efter. Af hensyn til dette eksempel, vælg tilmeldingsdato.
vælg derefter celleværdier under indstillingen sorter på.
og vælg enten den stigende eller faldende rækkefølge under indstillingen rækkefølge. Af hensyn til dette eksempel skal du vælge Sorter stigende.
klik derefter på OK.
du finder hele datasættet sorteret efter sammenføjningsdatoer i stigende rækkefølge som denne:
og selvfølgelig kan du også sortere dem i faldende rækkefølge, hvis du ønsker det.
Følg samme procedure.
Sorter efter dato ved hjælp af sorteringsfunktionen
vi har allerede sorteret hele datasættet en gang i det foregående afsnit.
men hvad nu hvis man ikke ønsker at ændre det originale datasæt og kun ønsker at oprette en kopi af et sorteret datasæt et andet sted?
du kan bruge dette ved hjælp af sorteringsfunktionen.
vælg en celle, og indsæt denne formel:
=SORT(B4:D19,3,1,FALSE)
og du får en sorteret kopi af datasættet.
her har vi sorteret efter sammenføjningsdatoer i stigende rækkefølge.
forklaring af formlen
- sorteringsfunktionen tager fire argumenter: array, sort_indeks, sort_order og by_col.
- arrayet er det område af celler, du vil sortere. Her vil vi sortere hele datasættet, så vores array er B4:D19.
- Sort_indeks er nummeret på den række eller kolonne, som du vil sortere i arrayet.
her vil vi sortere efter sammenføjningsdatoer, som er 3.kolonne i vores array.
således er vores sort_indeks 3.
- Sort_order bestemmer, om du vil sortere i stigende eller faldende rækkefølge. 1 For stigende rækkefølge og -1 for faldende rækkefølge.
her vil vi sortere i stigende rækkefølge. Så vi brugte 1. Du bruger din ene.
- By_col fortæller, om du vil sortere rækkevis eller kolonnevis. Sandt, hvis du vil have kolonnevis, falsk, hvis du vil have rækkevis.
her vil vi sortere dataene rækkevis.
så du bruger falsk.
- derfor bliver den komplette formel
SORT(B4:D19,3,1,FALSE)
. Det sorterer celleområdet B4: D19 i henhold til kolonne nummer 3 i stigende rækkefølge.
Sorter efter dato ved hjælp af SORTBY-funktionen
nu Kan du spørge:
hvad hvis jeg ikke vil sortere hele datasættet, kun ID ‘ erne og navnene, men i henhold til sammenføjningsdatoerne?
du kan ikke opnå dette ved hjælp af sorteringsfunktionen.
men du kan udføre dette ved hjælp af SORTBY-funktionen.
vælg en celle, og indsæt denne formel:
=SORTBY(
B4:C19
,
D4:D19
,1)
Du får Medarbejder-id ‘ er og medarbejdernavne sorteret i stigende rækkefølge i henhold til tilmeldingsdatoer.
forklaring af formlen
- SORTBY-funktionen tager tre argumenter: array, by_array og sort_order.
- arrayet er rækkevidden af de celler, som du vil sortere. Vi vil sortere de to kolonner, Medarbejder-ID og medarbejdernavn.
så vores array er B4:C19.
- By_array er den kolonne, som du vil sortere. Det kan være inden for eller uden for arrayet.
vi vil sortere efter sammenføjningsdatoer. Så vores by_array er D4: D19.
- Sort_order er den rækkefølge, du vil sortere. 1 For stigende rækkefølge, -1 for faldende rækkefølge.
vi vil sortere i stigende rækkefølge. Så vi brugte 1. Du bruger din ene.
- derfor bliver den komplette formel
SORTBY(
B4:C19
,
D4:D19
,1)
. Det sorterer celleområdet B4:C19 i henhold til kolonnen D4: D19 i stigende rækkefølge.
du kunne også have sorteret hele datasættet ved hjælp af SORTBY-funktionen.
Sorter efter måneder ved hjælp af funktionen SORTBY og måned
indtil nu har vi kun sorteret efter hele datoer.
vi kan også sortere datasættet specifikt efter måneder ved hjælp af funktionerne SORTBY og måned.
for at sortere datasættet i henhold til månederne for sammenføjningsdatoer skal du vælge en ny celle og indsætte denne formel:
=SORTBY(B4:D19,MONTH(D4:D19),1)
du finder datasættet sorteret efter månederne for medarbejdernes tilmeldingsdatoer i stigende rækkefølge.
forklaring af formlen
- her er arrayet, der skal sorteres, området B4:D19.
- by_array-argumentet er arrayet, der returneres med formlen
MONTH(D4:D19)
. Det returnerer månedens nummer på sammenføjningsdatoer. - sort_ordren er 1, fordi vi sorterer i stigende rækkefølge. For at sortere i faldende rækkefølge brug -1.
- så formlen
SORTBY(B4:D19,MONTH(D4:D19),1)
sorterer datasættet B4: D19 i henhold til månederne af datoerne D4:D19, i stigende rækkefølge.
Sorter efter dage ved hjælp af funktionerne SORTBY og DAY
hvis du ønsker det, kan du bruge kombinationen af SORTBY og DAY-funktionen til at sortere datasættet i henhold til sektionen dag for sammenføjningsdatoer.
så her er hvordan vi vil skrive formel:
=SORTBY(B4:D19,DAY(D4:D19),1)
Sorter efter år ved hjælp af funktionen SORTBY og YEAR
du kan også sortere datasættet efter kun årene for tilmeldingsdatoer. Formlen vil være:
=SORTBY(
B4:D19
,YEAR(
D4:D19
),1)
vi får datasættet sorteret efter årene i stigende rækkefølge.
Sorter efter dage og måneder ved hjælp af funktionerne SORTBY, dag og måned
denne gang har vi et nyt datasæt.
vi har id ‘ er, navne og fødselsdage for nogle studerende på en skole kaldet solsikke børnehave.
nu sorterer vi datasættet efter dage og måneder efter studerendes fødselsdage i stigende rækkefølge.
for eksempel, hvis tre fødselsdage er 10-Aug-2008, 5-Mar-2010 og 12-Dec-2009, vil serien være 5-Mar-2010, 10-Aug-2008 og 12-Dec-2009.
for at opnå dette skal du vælge en ny celle og indsætte denne formel:
=SORTBY(B4:D19,MONTH(D4:D19)+(DAY(D4:D19)/100))
vi får datasættet sorteret efter de stigende fødselsdage.
forklaring af formlen
- her er arrayet, der skal sorteres, B4:D19.
- by_array-argumentet er arrayet, der returneres med formlen
MONTH(D4:D19)+(DAY(D4:D19)/100)
.
det deler dagene med 100 og tilføjer derefter dem med månederne.
for eksempel bliver 2-Jan 1(januar)+(2/100)=1.02
16-Jan bliver 1.16
25-Feb bliver 2.25
9-Dec bliver 12.09
på denne måde vil den dag, der kommer først i året, have den mindste værdi, selvom to datoer har samme måned.
og den dag, der kommer sidst i året, vil have den største værdi, selvom to datoer har samme måned
- sort_ordren er 1, fordi vi sorterer i stigende rækkefølge. For at sortere i faldende rækkefølge brug -1.
- så formlen
SORTBY(B4:D19,MONTH(D4:D19)+(DAY(D4:D19)/100))
sorterer datasættet B4:D19 i henhold til kun måneder og dage af datoerne D4:D19, i stigende rækkefølge.
Sorter efter dato ved hjælp af Indeksmatch -, række-og RANGFUNKTIONERNE
se nu på dette nye datasæt.
vi har næsten det samme som det første datasæt, men der er indsat en ny kolonneløn mellem medarbejdernavn og tiltrædelsesdato.
hvad nu, hvis vi ikke vil sortere alle kolonnerne, kun medarbejder-ID, medarbejdernavn og tilmeldingsdato i henhold til Tilmeldingsdatoen?
du kan ikke udføre dette ved hjælp af funktionen sorter eller SORTBY.
ved hjælp af funktionerne sorter og SORTBY kan du kun sortere de tilstødende kolonner, ikke de ikke – tilstødende.
det betyder, at du kan sortere navne, lønninger og tilmeldingsdatoer. Eller ID ‘ er, navne og lønninger. Navne og lønninger.
men ikke id ‘ er, navne og sammenføjningsdatoer.
du kan bruge en kombination af INDEKSMATCH, række og RANGFUNKTIONER til at sortere de kolonner, der ikke er tilstødende.
Læs mere: Sorter kolonne efter værdi
for at sortere id ‘ er, navne og sammenføjningsdatoer i henhold til sammenføjningsdatoer i stigende rækkefølge skal du vælge en ny celle og indsætte denne formel:
=INDEX(B4:E19,MATCH(ROW(A1:A16),RANK(E4:E19,E4:E19,1),0),{1,2,4})
du finder Medarbejder-id ‘ er, medarbejdernavne og Tilmeldingsdatoer sorteret i stigende rækkefølge i henhold til tilmeldingsdatoer.
forklaring af formlen
-
ROW(A1:A16)
returnerer et array med tallene fra 1 til 16, som {1, 2, 3, …, 16}. Jeg har taget fra 1 til 16, fordi hver af mine kolonner har 16 værdier (B4:B19).
du bruger din ene.
-
RANK(E4:E19,E4:E19,1)
returnerer et array, der indeholder rangeringen af hver af cellerne i kolonnen E4:E19 i stigende rækkefølge. For at komme i faldende rækkefølge skal du bruge 0 i stedet for 1. -
MATCH(ROW(A1:A16),RANK(E4:E19,E4:E19,1),0)
returnerer placeringen af hvert af numrene i arrayet {1, 2, 3, …, 16} i arrayet returneres af RANGFUNKTIONEN.
det betyder, at det først returnerer rækkenummeret for 1.Dato i det oprindelige datasæt i stigende rækkefølge.
så returnerer den rækkenummeret på 2.dato.
derefter den 3. dato.
vender således tilbage til den 16.Dato.
- endelig returnerer
INDEX(B4:E19,MATCH(ROW(A1:A16),RANK(E4:E19,E4:E19,1),0),{1,2,4})
kolonnerne 1,2 og 4 (ID, navn og sammenføjningsdatoer) fra området B4:E19 i stigende rækkefølge.
for at sortere andre kolonner skal du justere formlen i overensstemmelse hermed.
Bemærk: funktionerne sortering og SORTBY er kun tilgængelige i Office 365. Så hvis du ikke har et Office 365-abonnement, skal du bruge denne procedure.
fejlfinding af problemer, du kan få for at sortere efter dato i
mens du arbejder med datoer i
Genkend ikke en dato som en dato
dette er det mest almindelige problem. Nogle gange indsætter vi en dato i en celle ved hjælp af vores konventionelle måde (mm-dd-ÅÅÅÅ eller dd-mm-ÅÅÅÅ), men vi genkender den ikke som en dato.
hvis du vil løse dette problem, skal du bruge DATOFUNKTIONEN i stedet for at indsætte datoen manuelt.
hvis du f.eks. vil indsætte 2-maj-1996 i nogle celler, skal du bruge Dato(1996,5,2), ikke 05-02-96.
og hvordan ved man, om man har genkendt en dato som en dato eller ej?
let. Hvis datoen som standard er justeret til højre i cellen, har vi genkendt den som en dato.
men hvis det er justeret til venstre, har det ikke.
på billedet nedenfor genkender du den første som en dato, men ikke den anden.
fejl med formlerne med datoer
dette er også et almindeligt problem. Når vi indsætter en dato direkte i en formel, vises der en fejl.
for at løse dette problem skal du ikke bruge en dato direkte inde i en formel på en konventionel måde. Brug funktionen dato til at indsætte en dato i en formel.
brug f.eks. ikke =MONTH(05-02-96)
.
brug =MONTH(DATE(1996,5,2))
Bliv forvirret, mens du ser en dato i Generelt Format
nogle gange genkender vi en dato som en dato, men vi bliver forvirrede, når vi ser den i generelt format (som er indstillet som standard).
for eksempel viser datoen 2-maj-1996 som standard 35187 (hvis du ikke ændrer formatet korrekt).
hvis du vil løse dette problem, skal du vælge cellen og gå til hjem > Talformat i værktøjslinjen. Vælg derefter Kort Dato.
konklusion
ved hjælp af disse metoder kan du sortere ethvert datasæt i udmærke efter datoer, i både stigende og faldende rækkefølge. Kender du flere metoder? Eller har du spørgsmål? Du er velkommen til at spørge os.
Yderligere Aflæsninger:
- Sorter datoer i kronologisk rækkefølge (6 effektive måder)
- sådan sorteres efter efternavn i udmærke sig (4 metoder)
- sådan sorteres flere kolonner i udmærke sig (5 hurtige tilgange)
- sådan sorteres automatisk flere kolonner i udmærke sig (3 måder)
- sådan sorteres to kolonner i udmærke sig for at matche (både nøjagtige og nøjagtige) delvis match)
- sådan sorteres data efter farve i udmærke sig (4 kriterier)
- sådan sorteres alfabetisk i udmærke sig med flere kolonner (4 metoder)