• 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 van getallen scheiden(straat van huisnummer)

Status
Niet open voor verdere reacties.
@Roncancio

1 Parc D' Activités de Bonnel
Gebhardt Schulstr. 11

Herr Martin Gebhardt Schulstr. 11

Beide oplossingen werken nu niet, ze pakken enkel het laatste karakter.

Bij de laatste optie zou ik ook nog op Herr willen kunnen zoeken en dan de 2 velden daarna nog als een apart veld namelijk contactpersoon willen hebben.

Dan wordt het dus contactpersoon, straat, huisnummer
 
In mijn database staan dus enkel straat + huisnummer in 1 veld.
Allereerst eens met Roncancio, maar het goede weer stemt mij mild. In de bijlage vind je twee kolommen met een formule. De kleinste en langste Nederlandse straatnaam staan in de voorbeelden en ook toevoegingen die voor kunnen komen. Ik sluit niet uit dat er voorbeelden zijn die hier niet in passen.
 

Bijlagen

  • scheiden straat en huisnummer.xls
    19 KB · Weergaven: 207
@marka

Je vraag is een totaal andere dan die je gekaapt hebt.
Hier doorgaan is verwarrend voor oplossingenzoekers.
Bovendien is het niet verkeerd eerst je vraag goed te specificeren (wat je tot nog toe niet gedaan hebt: internationale adressen, in hoeveel delen moet worden gesplitst, hoe moet worden weggeschreven).
 
Ok ik start een nieuw topic waarin ik alles duidelijk omschrijf.
 
Straat, huisnummer en toevoeging scheiden

Een oude draad maar ik kwam erop vanuit een zoekmachine. Ik heb het script van Wigi herschreven om de straat, het huisnummer en de toevoeging met 99% trefkans te splitsen. Ook getallen in de straatnaam blijven gehandhaafd.

Werkwijze (voor als je de scripts wilt bestuderen): ik zoek in de laatste 5 tekens van de ruwe straat/huisnummer het eerste cijfer. Ik neem aan dat daar het huisnummer en de evt. toevoeging begint. Dan split ik op die positie: ervoor staat de straatnaam en erachter het huisnummer en evt. toevoeging. Die laatste splits ik op dezelfde manier van elkaar, als er een niet-cijfer in staat dan begint daar de toevoeging.

Plaats onderstaande code zoals Wigi heeft omschreven. Dan heb je 3 functies die je in je excel file kunt opnemen. Stel dat het ruwe adres inclusief huisnummer en toevoeging in A1 staat, dan maak je 3 kolommen: straatnaam(A1), huisnummer(A1) en toevoeging(A1). Als bonus kun je met cleanPC(B1) ook nog de postcode opschonen (er vanuit gaand dat de postcode in B1 staat).

De functies huisnummer en toevoeging leveren een lege string op als er geen huisnummer of toevoeging is gevonden. Stel dat je zo'n vuil bestand hebt als ik, waar bij sommige adressen het huisnummer en toevoeging wél al gesplits waren, dan kun je op een lege uitkomst van mijn functies testen. In dat geval neem je de waarden van het huisnummer en toevoeging die je al apart had.

ALS(huisnummer(A1)="";C1;huisnummer(A1)) -> aanname: huisnummer los, indien aanwezig, staat in C1

Veel plezier ermee!

Function locateHuisnummer(str As String) As Long
Dim i As Integer
Dim start As Integer
start = 1
If Len(str) > 5 Then start = Len(str) - 5
For i = start To Len(str)
If IsNumeric(Mid(str, i, 1)) Then
locateHuisnummer = i - 1
Exit For
End If
Next
End Function
Function straatnaam(str As String) As String
Dim strEnd As Integer
strEnd = locateHuisnummer(str)
If strEnd > 0 Then straatnaam = Trim(UCase(Left(str, strEnd))) Else straatnaam = Trim(UCase(str))
End Function
Function huisnummertoevoeging(str As String) As String
Dim strStart As Integer
strStart = locateHuisnummer(str)
If strStart > 0 Then huisnummertoevoeging = Right(str, Len(str) - strStart) Else huisnummertoevoeging = ""
End Function
Function locateToevoeging(str As String) As Long
Dim i As Integer
For i = 1 To Len(str)
If Not IsNumeric(Mid(str, i, 1)) Then
locateToevoeging = i - 1
Exit For
End If
Next
End Function
Function huisnummer(str As String) As String
Dim ht As String
ht = huisnummertoevoeging(str)
Dim strEnd As Integer
strEnd = locateToevoeging(ht)
If strEnd > 0 Then huisnummer = Trim(Left(ht, strEnd)) Else huisnummer = Trim(ht)
End Function
Function toevoeging(str As String) As String
Dim ht As String
ht = huisnummertoevoeging(str)
Dim strStart As Integer
strStart = locateToevoeging(ht)
If strStart > 0 Then toevoeging = Trim(Right(ht, Len(ht) - strStart)) Else toevoeging = ""
End Function
Function cleanPC(str As String) As String
Dim i As Integer
cleanPC = UCase(str)
cleanPC = Replace(cleanPC, " ", "")
cleanPC = Replace(cleanPC, "-", "")
End Function
 
ik heb bovenstaande script nu gekopieerd in excel 2010. bij mij staat het adres met in kolom H. ik heb in kolom I een nieuwe kolom gemaakt om het huisnummer te krijgen en vervolgens in cel i2 neergezet: =huisnummer(h2)
ik krijg nu echter als resultaat: #naam?

doe ik iets niet goed?
 
Heb je de code wel in een module geplaatst en niet in bijvoorbeeld Thisworkbook of één van de werkbladen?
 
is er ook een mogelijkheid om huisnummers al 245-247 te pakken?

ik krijg nu als huisnummer 245 en daardoor is er geen match met de andere lijst helaas.

en bij dit adres: zuidplaslaan 434-438 krijg ik als huisnummer 34

Adres Oost. Handelskade 1025-1027
resultaat huisnummer: 5
 
Laatst bewerkt:
Als je de formules uit posting #2 van deze discussie gebruikt dan krijg je de tekst voor en de tekst na de laatste spatie in de tekst gepresenteerd.
Voor gebruik van de formules in Excel 2010 wel even in de formule VIND.ALLES wijzigen in VINDEN.ALLES
 
ik zit nog te stoeien, de vinden alles formule werkt voor mij ook niet omdat daarin nog de letters meegenomen worden helaas.
Ik dacht: dan doe ik op de uitkomst van de vinden alles formule de huisnummer function die hier een paar posts boven is geplaatst, maar dan krijg ik helemaal geen resultaat.

hij gaat bij mij manco op het volgende:
Werkwijze (voor als je de scripts wilt bestuderen): ik zoek in de laatste 5 tekens van de ruwe straat/huisnummer het eerste cijfer. Ik neem aan dat daar het huisnummer en de evt. toevoeging begint. Dan split ik op die positie: ervoor staat de straatnaam en erachter het huisnummer en evt. toevoeging. Die laatste splits ik op dezelfde manier van elkaar, als er een niet-cijfer in staat dan begint daar de toevoeging.

omdat bij het adres met nummer 1025-1027 de laatste 5 tekens -1027 zijn. het eerste cijfer is dan een 1 (raar dat ik dan 5 als uitkomst krijg).


eigenlijk heb ik gewoon deze formule nodig, maar dan met de aanpassing dat een letter als toevoeging niet meegenomen wordt:
Code:
=RECHTS(A1;LENGTE(A1)-VIND.ALLES("$";SUBSTITUEREN(A1;" ";"$";LENGTE(A1)-LENGTE(SUBSTITUEREN(A1;" ";"")))))

how to do dat?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan