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

Postcode uit tekstregel extraheren

Status
Niet open voor verdere reacties.

Xadrez

Gebruiker
Lid geworden
20 feb 2022
Berichten
8
Beste Excel-experts,

Ik wil graag de postcode C2 extraheren uit de regel B2. Zie bijgevoegd Excel-bestand.
Data is fictief.

Alvast dank voor jullie hulp!

Groet, Xadrez
 

Bijlagen

Deze UDF:

Code:
Function jec(cell As String) As String
  With CreateObject("VBScript.RegExp")
    .Global = True
    .Pattern = "(?:.*?)(\d{4})(\s\D{2}|\D{2})(.*)"
    jec = Application.Trim(.Replace(cell, "$1 $2"))
  End With
End Function
 
Hallo,

Of?
Met power query.
 

Bijlagen

Deze UDF:

Code:
Function jec(cell As String) As String
  With CreateObject("VBScript.RegExp")
    .Global = True
    .Pattern = "(?:.*?)(\d{4})(\s\D{2}|\D{2})(.*)"
    jec = Application.Trim(.Replace(cell, "$1 $2"))
  End With
End Function

Dank maar dit is als gematigd Excel-kenner te complex:-) Graag een begrijpelijke formule graag:-)
 
Je hoeft het niet te begrijpen:D. Regular Expressions werken hier heel goed, helemaal als de regels niet altijd dezelfde structuur hebben.
Als je deze achter de module plakt kun je de functie daarna aanroepen met alleen:

Code:
=jec(B2)
 
In bijlage voor de fun een oplossing met Excel 365 formules (niet simpel... vanwege de variaties in de notatie van het adres).
 

Bijlagen

Je hoeft het niet te begrijpen:D. Regular Expressions werken hier heel goed, helemaal als de regels niet altijd dezelfde structuur hebben.
Als je deze achter de module plakt kun je de functie daarna aanroepen met alleen:

Code:
=jec(B2)

Dank je, heel erg gemakkelijk in het gebruik. Ik ben erg geholpen!
 
Je hoeft het niet te begrijpen:D. Regular Expressions werken hier heel goed, helemaal als de regels niet altijd dezelfde structuur hebben.
Als je deze achter de module plakt kun je de functie daarna aanroepen met alleen:

Code:
=jec(B2)

In bijlage voor de fun een oplossing met Excel 365 formules (niet simpel... vanwege de variaties in de notatie van het adres).

Dank je, toch iets te complex om te kunnen analyseren maar een fraaie formule.
 
Nog een variant als UDF, misschien beter te begrijpen dan Regex

Code:
Function jec(cell As String) As String
 Dim ar, i
 ar = Split(cell, " ")
 For i = 0 To UBound(ar)
    If ar(i) Like "[0-9][0-9][0-9][0-9][A-Z][A-Z]" Then
      jec = Left(ar(i), 4) & " " & Right(ar(i), 2): Exit Function
    ElseIf ar(i) & ar(i + 1) Like "[0-9][0-9][0-9][0-9][A-Z][A-Z]" Then
      jec = ar(i) & " " & ar(i + 1): Exit Function
    End If
 Next
End Function
 
Het kan niet vaak genoeg gezegd worden: je probeert op een moeizame manier de fout van een ander (konsistente uitvoergegevens) te herstellen.
Leg het probleem bij de veroorzaker.
 
Inderdaad, output kan 9 van de 10 keer veranderd worden. Toch nog een formule voor versies lager dan 365

Code:
=TRIM(LEFT(REPLACE(TRIM(MID(B2;MAX(IFERROR(SEARCH({", ????"\" ?????? "};B2);""))+1;8));5;0;" ");8))
 
Laatst bewerkt:
@prowitt, dat die komma niet aanwezig is en de structuur steeds afwijkt is juist het probleem. Dat ga je niet afvangen met simpele Left/Mid/Right functies
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan