Avatar billede carlt Seniormester
26. marts 2005 - 13:28 Der er 21 kommentarer og
1 løsning

Alder: År- måneder-dage

I(a1) fødselsdato
I(b1) dags dato (=idag)
I(c3) alder: år-måneder-dage
a1  22-03-1990
a2  26-03-2005 d.v.s. 15 år 0 md 4 dage
men c3: a2-a1 siger 15 01 04 formentlig 4 dage ind i første måned i det l5. år. Og det er jo sådan set rigtigt, men ikke det, jeg ville frem til!!
Avatar billede carlt Seniormester
26. marts 2005 - 13:41 #1
dags dato: =IDAG()
Avatar billede bejstrup Juniormester
26. marts 2005 - 13:42 #2
Det skyldes formentlig at der var 53 uger i 2005. Det er årsagen til regnefejlen. Hvis du i stedet for prøver at skrive 26-10-04, så regner den rigtig. For at få det rigtige resultat er du nødt til at "fuske".
Avatar billede carlt Seniormester
26. marts 2005 - 13:56 #3
26-10-04/22-03-90: 4 dage 7 md 14 år men excel siger 6 dage 8 md 14 år, så den er da helt skæv
Avatar billede jkrons Professor
26. marts 2005 - 14:45 #4
Hvordanser din formel ud?
Avatar billede carlt Seniormester
26. marts 2005 - 14:48 #5
c1(formateret som dato): =b1-a1
Avatar billede jkrons Professor
26. marts 2005 - 14:51 #6
Problemet er, at den formel giver dig det samlede antal dage. Så skal du selveregne videre om til år, måneder og dage. Når du får 15 01 04 er det et tilfælde. Det betyder i virkeligheden 15. januar 1904 og er den dato, der svarer forskellens serienummer, nemlig 5483.
Avatar billede jkrons Professor
26. marts 2005 - 14:57 #7
Du kan bruge denne funktion i stedet. Læg funktionen ind i et modul, og brug den som alle andre indbyggede funktioner:

Function Alder(Date1 As Date, Date2 As Date) As String
    Dim Y As Integer
    Dim M As Integer
    Dim D As Integer
    Dim Temp1 As Date
    Temp1 = DateSerial(Year(Date2), Month(Date1), Day(Date1))
    Y = Year(Date2) - Year(Date1) + (Temp1 > Date2)
    M = Month(Date2) - Month(Date1) - (12 * (Temp1 > Date2))
    D = Day(Date2) - Day(Date1)
    If D < 0 Then
        M = M - 1
        D = Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + D + 1
    End If
    Age = Y & " år " & M & " måneder " & D & " dage"
End Function
Avatar billede jkrons Professor
26. marts 2005 - 14:57 #8
Sorry:

Function Alder(Date1 As Date, Date2 As Date) As String
    Dim Y As Integer
    Dim M As Integer
    Dim D As Integer
    Dim Temp1 As Date
    Temp1 = DateSerial(Year(Date2), Month(Date1), Day(Date1))
    Y = Year(Date2) - Year(Date1) + (Temp1 > Date2)
    M = Month(Date2) - Month(Date1) - (12 * (Temp1 > Date2))
    D = Day(Date2) - Day(Date1)
    If D < 0 Then
        M = M - 1
        D = Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + D + 1
    End If
    Alder = Y & " år " & M & " måneder " & D & " dage"
End Function
Avatar billede carlt Seniormester
26. marts 2005 - 14:58 #9
jkrons> Må jeg foreslå, at det kunne betyde 4. januar 1915.
Avatar billede jkrons Professor
26. marts 2005 - 14:59 #10
Selvfølgelig, det er bare mig, der vrøvler :-)
Avatar billede carlt Seniormester
26. marts 2005 - 15:02 #11
Jeg markerer funktionen, ctrl c og sætter jeg den ind...Jkrons gider du fortsætte beskrivelsen
Avatar billede jkrons Professor
26. marts 2005 - 15:05 #12
Marker funktionen. Ctrl+C. Vælg Funktioner - Makro - visial Basic Editor. Klik på Insert - Module. I modulet, der nu kommer frem trykker du Ctrl+V.

I regnearket har du dine datoer i A1 og B1 og i C1 skriver du =Alder(A1;B1)
Avatar billede jkrons Professor
26. marts 2005 - 15:06 #13
Og husk, det skal være det sidste eksempel, ikke det første.
Avatar billede jkrons Professor
26. marts 2005 - 15:09 #14
Hvis du hellere vil have det som en formel, kan du brugev denne her i C1:

=ÅR(B1)-ÅR(A1) & " år, " & MÅNED(B1)-MÅNED(A1) & " måneder, " & DAG(B1)-DAG(A1) & " dage"
Avatar billede jkrons Professor
26. marts 2005 - 15:11 #15
Glem den sidste. Den virker kun i nogle tilfælde.
Avatar billede carlt Seniormester
26. marts 2005 - 15:24 #16
Når jeg kopirer og sætter ind, kommer dette resultat: #Navn?
Avatar billede carlt Seniormester
26. marts 2005 - 15:28 #17
Det falder mig ind: Det er en dansk excel, jeg bruger!
Avatar billede jkrons Professor
26. marts 2005 - 15:32 #18
Det skyulle ikke have noget at sige. Makroer er under alle omstændigheder på engelsk.

Du skriver =Alder(A1;B1) i C1?

Og funktionen starter med navnet Function Alder?
Avatar billede carlt Seniormester
26. marts 2005 - 15:33 #19
15:09:53 Den virker i hvert fald i nogle tilfælde (Det anførte i den oprindelig opgave)
Avatar billede jkrons Professor
26. marts 2005 - 15:35 #20
Ja, men desværre ikke hvis statdatoen ligger efter slutdatoen. Fx 27-03-90 til 26-03-05 giver 15 år, 0 måneder og -1 dag, og selv om det er rigtigt, er det jo ikke sådan, at du vil have det :-)
Avatar billede carlt Seniormester
26. marts 2005 - 15:39 #21
Det virker efter korrektion af et kolon/semikolon
Tak for hjælpen.
Hvis du lægger et svar!
Avatar billede jkrons Professor
26. marts 2005 - 15:40 #22
Velbekomme :-)
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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