• 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.

tekst omzetten in datum

Status
Niet open voor verdere reacties.

PedroJV

Gebruiker
Lid geworden
23 aug 2018
Berichten
74
Beste Forumleden,

ik heb een standaard veld met daarin de volgende tekst: 1/21/1945 12:00:00 AM

Deze probeer ik om te zetten in een datum, alleen als ik de functie, Datumwaarde gebruik of Datum, dan gaat het fout met de maand en dag.
Hoe kan ik deze wel goed omzetten?

Alvast bedankt

Pedro
 
Dat is een Amerikaanse datum notatie, dus moet je eerst 1/21 omdraaien naar 21/1.
Vervolgens kan je er dan een datum van maken met:
PHP:
=SUBSTITUEREN(A1;"/";"-")
Waarbij dan in A1 die string met omgedraaide 1/21 staat.

Kan ook eenvoudig met een stukje VBA.
 
Deze werkt ook als je een Excel versie van 2019 of hoger hebt

Code:
=--TEKST.COMBINEREN("-";1;INDEX(XML.FILTEREN("<x><y>"&SUBSTITUEREN(A1;"/";"</y><y>")&"</y></x>";"//y");{2;1;3}))
 
Laatst bewerkt:
Dat is een Amerikaanse datum notatie, dus moet je eerst 1/21 omdraaien naar 21/1.
Vervolgens kan je er dan een datum van maken met:
PHP:
=SUBSTITUEREN(A1;"/";"-")
Waarbij dan in A1 die string met omgedraaide 1/21 staat.

Kan ook eenvoudig met een stukje VBA.

Dank je edmoor, alleen hoe zet je die 1/21 om naar 21/1?
Het daarna omzetten naar een datum kan op meerdere manieren.
 
Heb je al naar de oplossing van JVeer in #3 gekeken?
 
Deze werkt ook als je een Excel versie van 2019 of hoger hebt

Code:
=DATUMWAARDE(TEKST.COMBINEREN("-";1;INDEX(XML.FILTEREN("<x><y>"&SUBSTITUEREN(A1;"/";"</y><y>")&"</y></x>";"//y");{2;1;3})))


Dank je JVeer, alleen ik krijg een foutmelding #Naam. Met "Berekeningsstappen weergeven" van de foutmelding kom ik er niet uit wat er fout gaat, de formule haalt de onderdelen uit elkaar, maar aan het einde gaat het fout
 
Dan heb je waarschijnlijk een oudere Excel versie dan 2019?

Anders een UDF

Code:
Function jec(cell As String) As Long
jec = DateValue(Format(cell, "dd-mm-yyyy"))
End Function

Code:
=jec(A1)
 
Laatst bewerkt:
Dan heb je waarschijnlijk een oudere Excel versie dan 2019?

Sorry inderdaad mijn fout.

Dacht dat ik 2019 excel had, maar dat is prive.

Op mijn werklaptop staat excel 2016.

Iemand nog een oplossing voor excel 2016?

Alvast bedankt
 
Wat is de bron van die datum?
Dus, waar heb je die vandaan en hoe komt die zo in je Excel document?
 
Op de oude manier

@Edmoor, klopt ik denk dat hij nu beter is. Bedankt:thumb:

Code:
=DATUMWAARDE(DEEL(A2;VIND.SPEC("/";A2)+1;VIND.SPEC("/";A2;VIND.SPEC("/";A2)+1)-VIND.SPEC("/";A2))&LINKS(A2;VIND.SPEC("/";A2))&DEEL(A2;VIND.SPEC(" ";A2)-4;4))

En hier nog eentje:d

Code:
=--TEKST.COMBINEREN("-";1;SUBSTITUEREN(DEEL(SUBSTITUEREN("/"&LINKS(A1;10);"/";HERHALING("/";50));50*{2;1;3};50);"/";""))
 
Laatst bewerkt:
Dan heb je waarschijnlijk een oudere Excel versie dan 2019?

Anders een UDF

Code:
Function jec(cell As String) As Long
jec = DateValue(Format(cell, "dd-mm-yyyy"))
End Function

Code:
=jec(A1)


Dank je JVeer, maar dat werkt maar deels.

Zie resultaat van de eerste vier datums.

4/10/1947 12:00:00 AM
1/21/1945 12:00:00 AM
7/22/1951 12:00:00 AM
1/9/1948 12:00:00 AM

4-10-1947
21-1-1945
22-7-1951
1-9-1948

De functie weet dus bij de datums die in de Amerikaanse notatie staan, maar waar het dagnummer binnen het maandnummer valt, deze niet goed om te zetten. 1ste en 4de datum
 
Zo ver had ik niet getest, dan zou deze moeten werken

Code:
Function jec(cell As String) As Long
 sp = Split(cell, "/")
 jec = DateValue(Join(Array(sp(1), sp(0), sp(2)), "-"))
End Function
 
JVeer, hartelijk dank. De eerste code (van de twee nieuwe) en de aangepaste functie, werken nu perfect.

Ik begrijp ook niet waarom ik het formaat van de geboortedatums van patienten zo aangeleverd krijg en de rest van de datums, normaal.
Nu kan ik ze omzetten.
 
PHP:
=datevalue(right(trim(left(i15;10));4) & "-" & substitute(trim(substitute(left(i15;5);"/";" "));" ";"-"))
 
PHP:
=datevalue(right(trim(left(i15;10));4) & "-" & substitute(trim(substitute(left(i15;5);"/";" "));" ";"-"))

Dank je snb, maar dat dit werkt niet correct.
De datums waar de dd-waarde een enkel getal is, krijgen een #WAARDE error.
Ik heb nog wat proberen te corrigeren in de formule, maar krijg deze niet juist.
 
Of.

Code:
=DATUMWAARDE(LINKS(RECHTS(A1;16);4)&"/"&LINKS(A1;VIND.SPEC(LINKS(RECHTS(A1;16);4);A1)-2))

Code:
=--TEXT(LEFT(RIGHT(A1,16),4)&"/"&LEFT(A1,SEARCH(LEFT(RIGHT(A1,16),4),A1)-2),"####\/##/##")
Code:
=--TEKST(LINKS(RECHTS(A1;16);4)&"/"&LINKS(A1;VIND.SPEC(LINKS(RECHTS(A1;16);4);A1)-2);"####\/##/##")
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan