[excel] straatnaam en nummer splitsen in 2 apparte velden

Pagina: 1
Acties:
  • 34.838 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Anoniem: 143836

Topicstarter
hallo,

ik heb een adres bestand in excel waar naam adres telefoonnr enz. in staan. Nu staat er bij adres het adres en het nummer in hetzelfde veld. Deze wil ik splitsen in 2 apparte velden.Omdat het om een groot aantal adressen gaat is dit niet handmatig te doen. In andere topics die ik uiteraard ook al bekeken heb kwam er vaak iets naar voren dat er gewerkt moet worden met scripts en query's. Aangezien ik hier niet zoveel verstand van heb kan ik hier niets mee.
Ik zat zelf te denken aan een oplossing door de adres kolom te kopieren en uit deze gekopieerde kolom de tekst voor het nummer te verwijderen. Uiteraard moet er daarna ook nog gekeken worden of er ook adressen instaan zoals 1e esweg enzo.

hoe kan ik dit het beste doen?

Acties:
  • 0 Henk 'm!

Anoniem: 65983

Er is in Excel de funtie Text to collumns" (Tekst naar kolommen). Hiermee splits je een adres al over meerder velden.
Hiermee ben je er nog niet.
Volgens mij moet je het volgende doen. Eerst moet je weten hoe lang het veld is (=len(a1)).
Dan ga je zoeken naar de eerste spatie vanaf de helft van de lengte van het veld (om de 1e esweg niet mee te nemen).
Dan kopieer je het stuk na de eerste spatie naar het volgende veld (dit is het huisnummer).
Dit kan gewoon met formules in Excel, je hebt hier geen script of macto voor nodig).

Acties:
  • 0 Henk 'm!

  • rmfloris
  • Registratie: Maart 2002
  • Laatst online: 22-11-2024

rmfloris

Kowalski: Kaboeeem??

Met de optie Right() kan je een x aantal characters van rechts af gezien selecteren. Een groot deel van de straatnamen hebben 1, 2 of 3 cijfers aan de rechter kant staan. Aangezien alle getallen netjes rechts uitlijnen en eventuele velden met tekst links kan je deze makkelijk spotten in het overzicht.

Waarschijnlijk is er nog een betere oplossing, maar deze werkt wel en snel.

Foto afdrukken prijsvergelijk -> http://www.fotovergelijk.nl


Acties:
  • 0 Henk 'm!

Anoniem: 143836

Topicstarter
ik heb jullie voorstellen geprobeerd. het resultaat is echter nog niet zoals ik die graag zie.
als ik tekst to collums doe, moet ik als scheidingsteken de spatie nemen. nu zijn er echter ook nogal wat adressen die uit meerdere namen bestaan, dus meerdere spaties. de tekst word dan verdeeld over 3 of 4 kollomen.

de optie right() werkt ook niet echt omdat ik de cijfers niet helemaal rechts kan zetten en de tekst links in dezelfde kollom.

dus, heeft iemand nog een ideetje?

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 06-06 12:26
Denk ook aan adressen met cijfers in de straatnaam, numerieke huisnummertoevingen en zo? Ben zelf wel eens met iets dergelijks bezig geweest, en kwam erachter dat volledig automatiseren niet echt makkelijk / redelijk onmogelijk is (ging toen om een bestaand adressenbestand naar een nieuwe opzet om te zetten: adres als 1 veld naar straat+huisnummer+toevoeging). Voorbeelden van dergelijke adressen:

1e Esweg 1 (geef je zelf al)
Plein 1945 11
Hoofdstraat 120 3
Hendrik 4 weg 123

En een combinatie als Plein 1945 11 2

Denk dat de methode van rmfloris de beste is: veel geautomatiseerd, en snel een overzicht van de onjuiste adressen, die je relatief makkelijk kan aanpassen.
de optie right() werkt ook niet echt omdat ik de cijfers niet helemaal rechts kan zetten en de tekst links in dezelfde kollom.
Met die oplossing wordt dus bedoeld de rechter spatie in een adres uitzoeken, en dan daar het adres te splitsen in 2 kolommen. Als het 'goed' gaat is de tweede kolom een nummer, en lijnt (dus) rechts uit, als het 'fout' gaat is het geen nummer en zie je het links uitgelijnd staan.

Acties:
  • 0 Henk 'm!

  • Freee!!
  • Registratie: December 2002
  • Laatst online: 14:33

Freee!!

Trotse papa van Toon en Len!

Geen idee, maar wel een extra probleempje voor jou:
Wat doe je met toevoegingen achter het huisnummer (Klapperstraat 22 bis) :?

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

SA >> OFF

Acties:
  • 0 Henk 'm!

  • ReallyStupidGuy
  • Registratie: Januari 2002
  • Laatst online: 06-06 15:02
Het is al wel een tijd geleden dat ik ingewikkelde dingen deed met excell dus met syntax kan ik je zowiezo niet helpen. Waarschijnlijk lukt het je nooit om alles af te vangen. Wat je zou kunnen doen is gewoon vanaf het einde van de string kijken of er een spatie is, al de laatste char voor de spatie een letter is en de eerste char na de spatie een cijfer dan kun je het gerust in stukken hakken. Als dat niet kan dan zou je er toch even met je menselijke blik naar moeten kijken B).

beetje pseudo code:
code:
1
2
3
4
5
6
7
8
9
q = 2                            //kun je iig i-q+1 uitvoeren en als de laatste char een spatie is is het onzin :)
i = lengte(adresveld)
zolang doorgaan doe
  als adresveld[i-q] = ' ' dan
    doorgaan = false
als adresveld[i-q]+1 in [0..9] en niet adresveld[i-q]-1 in [0..9] dan
  <Hakken en ok>
anders
  <niet hakken en zorgen dat er naar gekeken wordt door in een lijstje te zetten, een kleurtje te geven oid>

Als je meer dan dit gaat doen dan riskeer je volgens mij foute splitsingen, kijk maar naar de post van sjroorda. En je vangt toch al snel 95% van de adressen af!
Eventueel zou je nog wat extra kunnen doen door het wel in stukken te hakken maar te zorgen dat er toch nog iemand naar kijkt, maar voor luie mensen is het zelf moeten doen veiliger :P

Duizend wijzen kunnen meer vragen stellen dan één idioot kan beantwoorden.


Acties:
  • +1 Henk 'm!

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 11:25
In aansluiting op sjroorda,
Waarschijnlijk krijg je de beste scheiding als je alles links van de laatste spatie straatnaam noemt en alles rechts van de laatste spatie nummer.
Echter, Excel kan niet "verkeerd om" zoeken.
Wat kan werken is deze u-bocht, origineel in A1:
Straatnaam: =LEFT(A1,FIND(" ",A1,LEN(A1)-4)-1)
Nummer: =RIGHT(A1,LEN(A1)-FIND(" ",A1,LEN(A1)-4))
Als getest op bovenstaand rijtje,
1e Esweg 1 wordt: Naam: 1e Esweg, Nummer: 1
Plein 1945 11 wordt: Naam: Plein 1945, Nummer: 11
Hoofdstraat 120 3 wordt: Naam: Hoofdstraat 120, Nummer: 3 (Fout)
Hendrik 4 weg 123 wordt: Naam: Hendrik 4 weg, Nummer: 123
Plein 1945 11 2 wordt: Naam: Plein 1945, Nummer: 11 2
1 fout in dit rijtje lijkt me alleraardigst.

[ Voor 4% gewijzigd door onkl op 18-05-2005 14:14 ]


Acties:
  • +6 Henk 'm!

Anoniem: 120686

De methode hierboven werkt goed, ik heb hem gebruikt in een nederlandse excel , een beetje aangepast. Voor geinteresseerden:

straatnaam: =LINKS(D2;VIND.ALLES(" ";D2;LENGTE(D2)-4)-1)
huisnummer: =RECHTS(D2;LENGTE(D2)-VIND.ALLES(" ";D2;LENGTE(D2)-4))

Het originele adres staat obviously in D2.
Werkt bij het overgrote deel van de adressen, soms moet je de laatste "4" in beide formules iets verhogen, als een huisnummer bijvoorbeeld 1234b is.

[ Voor 10% gewijzigd door Anoniem: 120686 op 15-06-2006 11:45 ]


Acties:
  • 0 Henk 'm!

  • alexbl69
  • Registratie: Maart 2001
  • Laatst online: 11:13
Als het een "officieel" (PTT oid) bestand is, zul de de volgende mogelijke notaties tegenkomen:

kerkstraat 1
kerkstraat 1/a
kerkstraat 1-3

Zoals je ziet is (van rechts naar links) de eerste spatie die je tegenkomt het scheidingsteken tussen straat en huisnummer. In een eerdere post van je meen ik echter te lezen dat je wel degelijk spaties in de huisnummers hebt staan. In dat geval: pech gehad.

Er zwerft trouwens op internet wel een Access database met alle Nederlandse NAW gegevens (+ telefoonnummers), alsmede een database met alle straten, huisnummers en postcodes. Maar hoe je die op je eigen PC krijgt, daar kan ik uiteraard hier niet verder over uitwijden. ;)

If buying doesn’t mean ownership Then pirating isn’t stealing / iRacing Profiel

Pagina: 1