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

Getalwaarde uit een stuk tekst halen

Status
Niet open voor verdere reacties.

loetjeboetje

Gebruiker
Lid geworden
29 jan 2016
Berichten
6
Beste,

Voor een onderzoeksopdracht aan de universiteit heb ik een grote datasheet tot mijn beschikking. Een klein deel van deze datasheet staat in de bijlage. In kolom K van dit excel bestand staat veel tekst. Bijvoorbeeld:
"Tussen Utrecht Centraal en 's-Hertogenbosch rijden geen treinen door een aanrijding.
De extra reistijd is meer dan 60 min.
Prognose: de verstoring duurt nog tot 4:00 uur."

Deze tekst staat allemaal in 1 cel. Nu wil ik graag uit elke cel het aantal minuten extra reistijd halen zodat dit in een aparte cel komt te staan. In dit geval dus het getal 60. Er zijn ook gevallen dat de extra reistijd bijvoorbeeld 30 - 60 minuten is. Wat ik dus eigenlijk wil bereiken is dat ik een kolom krijg met bijvoorbeeld:
60
30 - 60
15 - 30
15
30

enz.

Nu heb ik alleen geen idee hoe ik dit voor elkaar kan krijgen in excel. Hebben jullie hier misschien een oplossing voor?

Alvast heel erg bedankt!
 

Bijlagen

  • Test bestandje.xlsx
    22,5 KB · Weergaven: 30
wat wil je doen met meldingen zoals: "meer dan 60"? is dat een categorie apart? anders ga je je dataset vervuilen met meldingen van "ongeveer 60" en "meer dan 60" met hetzelfde datapunt.

je kunt met regular expressions natuurlijk een heel eind komen, maar dan moet eerst duidelijk zijn of bepaalde gevallen een uitzondering moeten krijgen
 
en als er bijv 8 min vertraging zou zijn hoe wordt dat geschreven? als 8 of 08
 
Deze onderstaande functie gebruik ik zelf vaak en kun je makkelijk toevoegen door het in een VBA module te plakken

Code:
Function RegExpGet(ReplaceIn, ReplaceWhat As String, MatchNR As Integer)
    Dim RE As Object
    Dim MC As Object
    Dim M As Object

    Set RE = CreateObject("vbscript.regexp")
    RE.Pattern = ReplaceWhat
    RE.Global = True
    Set MC = RE.Execute(ReplaceIn)
    If MC.Count Then
        Set M = MC(0)
        If MatchNR > M.submatches.Count Then
            RegExpGet = ""
        Else
            RegExpGet = M.submatches(MatchNR - 1)
        End If
    Else
        RegExpGet = ""
    End If
End Function

Op het worksheet gebruik je dan het volgende (gewoon ergens in een cel):
Code:
=RegExpGet(K2;"([1-9][0-9 -]+)";1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan