Sammenligne Dato-intervaller
DatoOverlapp() er en spesialfunksjon (makro) som kan være nyttig hvis du vil sjekke at datointervaller ikke overlapper hverandre. Hvis du f.eks skal beregne ansiennitet, er dette viktig.
DatoOverlapp kan også sjekke datointervaller hvor radene skilles på navn (eller annen identifikator). Nederst i artikkelen kan du laste ned Excelboka som benyttes i eksemplet. VBA-prosjektet er åpent.
DatoOverlapp er en matrisefunksjon skrevet for Office365. Den krever at du har Excel installert på PC’en (eller MAC’en), og er ikke testet på Excel 2016/2019.
(Artikkelen fortsetter under videoruten. ) |
Oppgaven
Vi har et antall rader med Fra- og Til-datoer, der hver enkelt rad skal sammenlignes med de øvrige. Det gis et varsel hvis:
- Det er overlapp mellom raden som testes og de øvrige
- Fra-dato er høyere enn Til-dato
- Datoformatet er feil i enten Fra- eller Til-Dato
Eksempel 1: Sjekk overlapp på radene i området
Den enkleste varianten er hvis du har Fra-Dato og Til-Dato i kolonner ved siden av hverandre. Du setter inn DatoOverlapp og setter inn området du vil evaluere, i dette tilfellet B4:C19:
=DatoOverlapp(B4:C19)
Eksempel 2: Sjekk rader med like navn
Du kan også avgrense funksjonen til å kun sjekke rader som har samme navn eller en annen identifikator. Formelen her benytter flere parametre:
=DatoOverlapp(G4:K19;1;5;3)
- G3:K18
- 1 (kolonnen i utvalget som inneholder Fra-Dato)
- 5 (kolonnen i utvalget som inneholder Til-Dato)
- 3 (Kolonnen i utvalget som inneholder Navn eller annen identifikator)
Her vil funksjonen sjekke de tre som har navnet Per for seg, de tre med Ole for seg og de seks med Eva for seg.
Pass på…
Matrisefunksjoner som DatoOverlapp krever at området som data skal returneres til er tomt. Hvis det ligger innhold i returområdet, vil du få feilmeldingen #OVERFLYT! :
Konseptet – hva vi må teste (for deg som er litt nysgjerrig)
Det er fem mulige scenarier.
Case 1
Datointervallet vi sjekker er likt det vi sjekker mot (Rad tre sammenlignes mot rad 2 i bildet under). Testen er Fra >= FraX og Fra <= TilX
Case 2
Datointervallet vi sjekker starter før og slutter i intervallet vi sjekker mot.
Testen er Til <= TilX og Til >=FraX
Case 3
Datointervallet vi sjekker starter i og slutter etter intervallet vi sjekker mot.
Testen er Fra>=FraX og Fra <=TilX
Case 4
Datointervallet vi sjekker starter i og slutter i intervallet vi sjekker mot.
Testen er Fra>=FraX og Fra <=TilX
Case 5
Datointervallet vi sjekker starter før og slutter etter intervallet vi sjekker mot.
Testen er Fra<=FraX og Til >=TilX
Tre av disse testene er identiske, så vi sitter igjen med tre situasjoner vi må sjekke.
Last ned
Last ned Excelboken her: Konflikt mellom dato-intervaller - Matrisefunksjon (10 downloads )
Hvis du har en gammel versjon av Excel, kan du prøve denne. Da er parameteroppsettet annerledes, så sjekk med fx : Sammenlign datoområde Excel 2016/2019 (0 downloads )