Avatar billede tville Juniormester
20. maj 2016 - 15:26 Der er 7 kommentarer og
1 løsning

finde sidste dato før en anden dato

Jeg har en fil med brug af lokaler med start- og slutdatoer. Ud fra den laver jeg en oversigt over reservationer der slutter inden for et givent datointerval. Jeg skal nu have tilføjet en kolonne der viser hvilken dato lokalet bliver ledigt.

Eks:
Filen indeholder disse poster

Lokale  start    slut
1        04-05-16  05-05-16
1        01-05-16  03-05-16
1        12-05-16  17-05-16


Jeg skal lave en rapport der for start den 12-05-16 viser

lokale  start    ledigt
1        12-05-16  05-05-16

Jeg skal altså ud fra startdatoen for værelse 1 finde den slutdato der ligger tættest på.
Kan man lave en formel der slår det op?
Avatar billede natkatten Mester
20. maj 2016 - 15:36 #1
Hmm, hvorfor ligger d. 5.5. tættere på d. 12.5. end d. 17.5. Den logik forstår jeg ikke helt. Er det den nærmest foregående dato, du ønsker vist?
Avatar billede jens48 Ekspert
20. maj 2016 - 23:58 #2
Hvis du har slutdatoerne stående i kolonne C, og datoen d. 12-5-2016 i E1 kan du bruge denne formel:

=MAX(C:C*(C:C<E1))

Det er en matriksformel (tryk Ctrl + Shift + Enter)
Avatar billede tville Juniormester
23. maj 2016 - 09:49 #3
Hej natkatten

Du har helt ret - det er den nærmest foregående dato jeg ønsker.
Avatar billede tville Juniormester
23. maj 2016 - 09:50 #4
Hej Jens48

Det er muligt en matrixformel kan bruges, men den skal også tage højde for lokalenr. idet jeg har mange forskellige lokaler.
Avatar billede jens48 Ekspert
24. maj 2016 - 01:46 #5
Det havde jeg lige overset, men med lokalenummeret i E2 vil den så komme til at se sådan ud:

=MAX(C:C*(C:C<E1)*(A:A=E2))

Igen matriksformel
Avatar billede tville Juniormester
27. maj 2016 - 13:05 #6
Hej jens48

Det fungerer :-)
Jeg opretter hele arket vha en makro. Indtastningen af formlen ser således ud i koden:
    ActiveCell.FormulaR1C1 = _
    "=MAX(Tabel1[slut]*(Tabel1[slut]<RC[-1])*(Tabel1[Værelsesnr.]=RC[-4]))"

Men det er jo hvis det er en almindelig formel. Hvordan får jeg det i VBA til at blive en matrix formel - altså ctrl+shift+enter?
Avatar billede tville Juniormester
27. maj 2016 - 13:21 #7
Glem sidste spørgsmål - jeg har fundet ud af det. Formlen ser nu således ud:
    ActiveCell.FormulaArray = _
    "=MAX(Tabel1[slut]*(Tabel1[slut]<RC[-1])*(Tabel1[Værelsesnr.]=RC[-4]))"
Og du får dine velfortjente point, hvis du lige laver et svar. Tak for hjælpen.
Avatar billede jens48 Ekspert
27. maj 2016 - 14:18 #8
Det er fint, især når du også kan lære mig noget
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester