• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

rekenen met datum

Status
Niet open voor verdere reacties.

deheugden

Terugkerende gebruiker
Lid geworden
1 mrt 2006
Berichten
1.087
Zie voorbeeld.

Kolom E is de expiry date. Wanneer deze datum kleiner of gelijk is aan 2011-12-31, dan moet er in A1 in melding komen replace. Anders OK. Is dat mogelijk? Het probleem waar ik namelijk tegenaan loop is het feit dat de datum ook met tijd is.

Dank
 

Bijlagen

  • datumtest.xls
    13,5 KB · Weergaven: 33
Denk dat deze moet lukken:
Code:
=ALS(E2<=40908;"replace";"ok")

Cobbe
 
Je kan die datum ook eruit filteren door geheel(nu()) te gebruiken.
Ook vandaag() moet lukken. In beide gevallen wordt de tijd op 0 uur en 0 minuten gezet. Een rechtstreeks ingevoerde datum staat daar vanzelf op.
 
Hoi,

In D2:

=ALS(DATUM(LINKS(E2;4);DEEL(E2;6;2);DEEL(E2;9;2))<=DATUM(2011;12;31);"Replace";"OK")

En de opmerking "Het probleem waar ik namelijk tegenaan loop is het feit dat de datum ook met tijd is", veronderstelt dat de notatie van datum/tijd in kolom F correct zou zijn, maar dat klopt niet. Excel kan niks met de inoud en 'ziet' het als tekst. Daarom werkt de formule van cobbe ook niet.
Vandaar mijn oplossing in bovenvermeldde formule
 
Laatst bewerkt:
Code:
=ALS(E2<=40908;"replace";"ok")
is hetzelfde als
Code:
=ALS(DATUM(LINKS(E2;4);DEEL(E2;6;2);DEEL(E2;9;2))<=DATUM(2011;12;31);"Replace";"OK")

Denk ej echt dat die formule beter werkt omdat ze ingewikkeld is?

Cobbe
 
Hoe is de excelse formule van deze? En wat doe je precies in de formule?

De engelse functiebenaming voor 'deel' weet ik niet.
De andere zijn DATE en LEFT
Je moet even kijken onder de 'text'-functies, mogelijk is het TILE of PART

Uitleg: met behulp van tekstfuncties vis je de datum uit E2. Het gaat dus om de getallen die staan voor jaar;maand;dag.
Ik ga ervan uit dat de inhoud van de cellen in kolom E steeds dezelfde structuur hebben, met name de eerste 11 tekens:
jaar(4cijfers) 'min'-teken maand(2cijfers) 'min'-teken dag(2cijfers)
Het verschil met de 'ogenschijnlijk' logische formule van @Cobbe is, dat hij er nog steeds vanuit gaat dat de datumwaarde in E correct zou worden weergegeven.
 
Laatst bewerkt:
voor vertaling van excelformules gebruikte ik altijd deze:

klik hier

(NL) deel
(Engels) mid
 
En toch klopt ze.:) De waarde in kolom E is een foutieve waarde en ik zou geen foutieve waardes in mijn bestand dulden, dus moet je dat eerst oplossen en die .000 eerst weghalen en dan krijg je een datum/tijdwaarde. Dan maakt het verder niets uit of naast de datum ook
nog een tijdwaarde staat.
Dit gezegd zijnde uw formule werkt ook(natuurlijk) al ben ik dan toch niet te overtuigd dat het resultaat klopt.

Cobbe
 
En toch klopt ze.:) De waarde in kolom E is een foutieve waarde en ik zou geen foutieve waardes in mijn bestand dulden, dus moet je dat eerst oplossen en die .000 eerst weghalen en dan krijg je een datum/tijdwaarde. Dan maakt het verder niets uit of naast de datum ook
nog een tijdwaarde staat.
Dit gezegd zijnde uw formule werkt ook(natuurlijk) al ben ik dan toch niet te overtuigd dat het resultaat klopt.

Cobbe

Nee inderdaad: je bent af en toe nogal eigenwijs. Jammer want vaak geef je goeie oplossingen c.q. adviezen. Wat je hier vermeldt houd in dat TS meer 'werk' heeft door eerst de inhoud van kolom E te corrigeren. Het gaat waarschijnlijk om een geïmporteerd bestand en dan zou je dat elke keer opnieuw moeten doen ......
 
Nee inderdaad: je bent af en toe nogal eigenwijs. Jammer want vaak geef je goeie oplossingen c.q. adviezen. Wat je hier vermeldt houd in dat TS meer 'werk' heeft door eerst de inhoud van kolom E te corrigeren. Het gaat waarschijnlijk om een geïmporteerd bestand en dan zou je dat elke keer opnieuw moeten doen ......

het bestand is inderdaad geimporteerd; 1 malig
 
Die 40908 is de rekenwaarde waarmee Excel werkt voor de datum 31-12-2011.
Omdat 90% van de problemen met datums en tijden ontstaan door de opmaakverschillen is het goed om altijd terug te keren naar de werkelijke rekenwaarde van Excel en daar uw bewerkingen en opzoekingen te doen, dan kan je altijd nog de opmaak verzorgen.

Hoop dat het een beetje duidelijk is.

Succes, Cobbe
 
ook geprobeerd en werkt ook goed. dank je. maar hoe kom je aan de 40908 ??

Dat is dag 40908, gerekend vanaf 01-01-1900.

tik bijvoorbeeld maar eens een 1 in een cel en wijzig de celopmaak dan in DATE
 
Ik ben nog een ander probleem tegengekomen. Een datum kan er uit zien als 2011-01-01 11:14:17.000 of 1904-01-01 00:00:00.000 of NULL. Hoe kunnen we dat het beste oplossen??
 
Ik ben nog een ander probleem tegengekomen. Een datum kan er uit zien als 2011-01-01 11:14:17.000 of 1904-01-01 00:00:00.000 of NULL. Hoe kunnen we dat het beste oplossen??

Buh ... ? Wie zijn 'we'.

De rijen die NULL bevatten kan je gevoegelijk verwijderen want daar heb je niets aan.
De andere 'voorbeelden' die je aangeeft kan je behandelen op de manier die Cobbe aangaf .... toch?
 
Buh ... ? Wie zijn 'we'.

QUOTE] :D:D:D

Ik weet het. ik ben al de hele dag bezig om iets fatsoendelijks van mijn excel te maken; iets waar ik wat aan heb en dus ook later weer kan gebruiken. En iets waar ik van leer.



Maar voor wat betreft de oplossing van Cobbe; deze werkt niet met de toevoeging van de tijd zoals ik ze nu aanhaal. Wanneer ik de tijd weg haal, is er niets aan de hand. Maar handmatig de tijd weg halen is ook ontzettend veel werk(3600 rijen)
 
Ik ben nog een ander probleem tegengekomen. Een datum kan er uit zien als 2011-01-01 11:14:17.000 of 1904-01-01 00:00:00.000 of NULL. Hoe kunnen we dat het beste oplossen??
Daar heb ik je vanmiddag antwoord op gegeven in dit topic:

http://www.helpmij.nl/forum/showthread.php/602143-rekenen-met-kwartalen

Daaruit kun je afleiden dat dit een goede oplossing is voor je probleem in dit topic:

Code:
=ALS(LINKS(E2;10)<="2011-12-31";"Replace";"Ok")
of, in het Engels:
Code:
=IF(LEFT(E2;10)<="2011-12-31";"Replace";"Ok")
Het is wel de bedoeling dat als je een oplossing krijgt, je die ook bestudeert, zodat je eenzelfde soort probleem in de toekomst zelf kunt oplossen.
 
Laatst bewerkt:
Klopt. Ik was met deze aan het stoeien wat niet lukte:
=ALS(J119<=40908;"replace";"ok")

Maar nu lukt het wel. Dank je

Het is verder lastig om iets fatsoendelijks in exvel gedaan te krijgen omdat boeken meestal niet duidelijk zijn en maar beperkte voorbeelden geven. Daarom ook dat ik vandaag de hele dag hier ben met als doel ietsfatosendelijks te krijgen om mijn werk makkelijker te maken en om er wat van te leren. Maar ik heb nog een lange lange weg te gaan.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan