Discussion:
Werken met datum
(te oud om op te antwoorden)
fasterik
2021-10-08 12:02:47 UTC
Permalink
Beste,
Als eerste: ik werk met office 365 voor mac
Aan de hand van onderstaande formule wil ik het jaartal in het verleden berekenen.
Het jaartal wordt ingegeven in A3 (vb: 1/1/1963)
In C5 wordt een getal ingegeven waarmee het jaar in het verleden wordt berekend.

=DATUM(JAAR(A3)-C5;MAAND(A3);DAG(A3))

Alles werkt perfect tot ik een datum ingeef voor 1963.
Om een of andere reden krijg ik dan een datum die ver in de toekomst ligt.
Geef ik 1/1/1962 in dan geeft de formule een datum terug beginnende bij 1/1/3799

Geef ik 1/1/1961 in dan geeft de formule een datum terug beginnende bij 1/1/3798
enz....

De celeigenschappen in de ingave-cel en de berekende cel staan identiek ingesteld op dd/mm/jjjj

Heeft er iemand hier een oplossing voor.
Ik veronderstel dat ik ergens iets fout doe maar ik weet niet waar

Groeten en dank,
Erik
2021-10-08 17:49:27 UTC
Permalink
Post by fasterik
Beste,
Als eerste: ik werk met office 365 voor mac
Aan de hand van onderstaande formule wil ik het jaartal in het verleden berekenen.
Het jaartal wordt ingegeven in A3 (vb: 1/1/1963)
In C5 wordt een getal ingegeven waarmee het jaar in het verleden wordt berekend.
=DATUM(JAAR(A3)-C5;MAAND(A3);DAG(A3))
Alles werkt perfect tot ik een datum ingeef voor 1963.
Om een of andere reden krijg ik dan een datum die ver in de toekomst ligt.
Geef ik 1/1/1962 in dan geeft de formule een datum terug beginnende bij 1/1/3799
Geef ik 1/1/1961 in dan geeft de formule een datum terug beginnende bij 1/1/3798
enz....
De celeigenschappen in de ingave-cel en de berekende cel staan identiek
ingesteld op dd/mm/jjjj
Heeft er iemand hier een oplossing voor.
Ik veronderstel dat ik ergens iets fout doe maar ik weet niet waar
Groeten en dank,
Erik
Heeft C5 in dat geval de waarde 63 ?

Groet,

TR
fasterik
2021-10-11 12:09:43 UTC
Permalink
Post by
Post by fasterik
Beste,
Als eerste: ik werk met office 365 voor mac
Aan de hand van onderstaande formule wil ik het jaartal in het verleden berekenen.
Het jaartal wordt ingegeven in A3 (vb: 1/1/1963)
In C5 wordt een getal ingegeven waarmee het jaar in het verleden wordt berekend.
=DATUM(JAAR(A3)-C5;MAAND(A3);DAG(A3))
Alles werkt perfect tot ik een datum ingeef voor 1963.
Om een of andere reden krijg ik dan een datum die ver in de toekomst ligt.
Geef ik 1/1/1962 in dan geeft de formule een datum terug beginnende bij 1/1/3799
Geef ik 1/1/1961 in dan geeft de formule een datum terug beginnende bij 1/1/3798
enz....
De celeigenschappen in de ingave-cel en de berekende cel staan identiek
ingesteld op dd/mm/jjjj
Heeft er iemand hier een oplossing voor.
Ik veronderstel dat ik ergens iets fout doe maar ik weet niet waar
Groeten en dank,
Erik
Heeft C5 in dat geval de waarde 63 ?
Groet,
TR
De waarde 63 is willekeurig. Kan zowel 15 als 153 zijn bij manier van spreken
2021-10-11 19:17:32 UTC
Permalink
Post by fasterik
Post by
Post by fasterik
Beste,
Als eerste: ik werk met office 365 voor mac
Aan de hand van onderstaande formule wil ik het jaartal in het verleden berekenen.
Het jaartal wordt ingegeven in A3 (vb: 1/1/1963)
In C5 wordt een getal ingegeven waarmee het jaar in het verleden wordt berekend.
=DATUM(JAAR(A3)-C5;MAAND(A3);DAG(A3))
Alles werkt perfect tot ik een datum ingeef voor 1963.
Om een of andere reden krijg ik dan een datum die ver in de toekomst ligt.
Geef ik 1/1/1962 in dan geeft de formule een datum terug beginnende bij 1/1/3799
Geef ik 1/1/1961 in dan geeft de formule een datum terug beginnende bij 1/1/3798
enz....
De celeigenschappen in de ingave-cel en de berekende cel staan identiek
ingesteld op dd/mm/jjjj
Heeft er iemand hier een oplossing voor.
Ik veronderstel dat ik ergens iets fout doe maar ik weet niet waar
Groeten en dank,
Erik
Heeft C5 in dat geval de waarde 63 ?
Groet,
TR
De waarde 63 is willekeurig. Kan zowel 15 als 153 zijn bij manier van spreken
De oorzaak van het probleem is gelegen in het datumsysteem van excel.
Excel begint te tellen vanaf 1 januari 1900 (in een aantal gevallen vanaf 1
januari 1904).

Als een formule een jnegatieve datum aartal oplevert (een datum die _voor_
1900 ligt), dan "loopt excel rond".
Vegelijk het maar met een muis die onderaan het scherm verdwijnt en dan
bovenaan het scherm weer zichtbaar wordt.

De truc is dat je alle elementen uit de sfeer van datum- en tijdberekeningen
haalt. Ik doe dat meestal met de tekst-functie, omdat die een handige
parameter heeft.

De essentie is:
Zet het jaar in A3 om naar tekst met de functie tekst(a3;"jjjj")
En eventueel:
Zet de maand in A3 om naar tekst met de functie tekst(a3;"mm")
Zet de dag in A3 om naar tekst met de functie tekst(a3;"dd")

Vervolgens haal je C5 af van het jaar en pak je de termen weer samen.
Dat wordt dan:

=tekst(A3;"dd") & "-" & tekst(A3;"mm") & "-" & tekst(A3;"jjjj")-C5

nb: ook de streepjes toevoegen.

Als je het zou doen via =-datum(tekst(...)-C5 ; tekst(...) ; tekst(...)) dan
krijg je weer het gedoe met rondlopen.

Er is een nadeel: het resultaat wordt door excel niet meer gezien als datum.

Groet,

TR
Thibaud Taudin Chabot
2021-10-12 09:44:48 UTC
Permalink
Post by
Post by fasterik
Post by fasterik
Beste,
Als eerste: ik werk met office 365 voor mac
Aan de hand van onderstaande formule wil ik het jaartal in het
verleden
Post by fasterik
berekenen.
Het jaartal wordt ingegeven in A3 (vb: 1/1/1963)
In C5 wordt een getal ingegeven waarmee het jaar in het verleden wordt berekend.
=DATUM(JAAR(A3)-C5;MAAND(A3);DAG(A3))
Alles werkt perfect tot ik een datum ingeef voor 1963.
Om een of andere reden krijg ik dan een datum die ver in de toekomst ligt.
Geef ik 1/1/1962 in dan geeft de formule een datum terug beginnende
bij
Post by fasterik
1/1/3799
Geef ik 1/1/1961 in dan geeft de formule een datum terug beginnende
bij
Post by fasterik
1/1/3798
enz....
De celeigenschappen in de ingave-cel en de berekende cel staan
identiek
Post by fasterik
ingesteld op dd/mm/jjjj
Heeft er iemand hier een oplossing voor.
Ik veronderstel dat ik ergens iets fout doe maar ik weet niet waar
Groeten en dank,
Erik
Heeft C5 in dat geval de waarde 63 ?
Groet,
TR
De waarde 63 is willekeurig.  Kan zowel 15 als 153 zijn bij manier van
spreken
De oorzaak van het probleem is gelegen in het datumsysteem van excel.
Excel begint te tellen vanaf 1 januari 1900 (in een aantal gevallen vanaf 1
januari 1904).
Als een formule een jnegatieve datum aartal oplevert (een datum die _voor_
1900 ligt), dan "loopt excel rond".
Vegelijk het maar met een muis die onderaan het scherm verdwijnt en dan
bovenaan het scherm weer zichtbaar wordt.
De truc is dat je alle elementen uit de sfeer van datum- en
tijdberekeningen
haalt. Ik doe dat meestal met de tekst-functie, omdat die een handige
parameter heeft.
Zet het jaar in A3 om naar tekst met de functie tekst(a3;"jjjj")
Zet de maand in A3 om naar tekst met de functie tekst(a3;"mm")
Zet de dag in A3 om naar tekst met de functie tekst(a3;"dd")
Vervolgens haal je C5 af van het jaar en pak je de termen weer samen.
=tekst(A3;"dd") & "-" & tekst(A3;"mm") & "-" & tekst(A3;"jjjj")-C5
nb: ook de streepjes toevoegen.
Als je het zou doen via =-datum(tekst(...)-C5 ; tekst(...) ; tekst(...)) dan
krijg je weer het gedoe met rondlopen.
Er is een nadeel: het resultaat wordt door excel niet meer gezien als datum.
Groet,
TR
dat excel begint te tellen bij 1 jan 1900 blijkt achteraf wat ongelukkig
gekozen. Want kijk maar eens bij dag 60. Dat blijkt 29 feb 1900 te zijn
en die dag bestaat niet. De workaround van Microsoft is om vanaf 1 jan
1904 te tellen.
Thibaud

Lees verder op narkive:
Loading...