brasso
(22.435 point. Point ude: 120)
Skille adreestreng af i gade+husnummer og postnr. +postdidtrikt
Hej
Jeg har et udtræk hvor en stribe adresser står i en kolonne, disse adresser vil jeg gerne have delt, så gade+husnummer står i en kolonne, og post nr+postdistrikt står i en anden kolonne.
Eksempel:
celle A1= Johannes Hansens Vej 23 6100 Haderslev.
resultat:
A2=Johannes Hansens Vej 23 og A3=6100 Haderslev
Jeg havde tænkt at man skulle finde 1st. mellemrum fra højre, men funktionen FIND kigger fra venstre mod højre, så den kan ikke rigtig bruges, eller?
Løsningen skal helst være uden brug af VBA- kode.
Skrevet man. d. 22. oktober 2012 kl. 19:03:39| #1
I dit eksempel er der 5 mellemrum.
Der er en funktion (=find?), hvor du kan angive
forekomstens nr.
I dit eksempel skal du skille ved 4. mellemrum.
Det er dog ikke tilfældet ved
1234 Ny Andeby
med 2 by-ord,
men de fleste danske postnr har kun
1 by-ord.
Skrevet man. d. 22. oktober 2012 kl. 20:17:55| #2
hvorfor ikke bare lave "tekst til kolonne" som er en funktion i excel?
Skrevet tir. d. 23. oktober 2012 kl. 07:47:10| #3
Hej finb
Problemet er lige netop at det ikke er alle strenge der er lige mange mellemrum i.
En adressestreng kan se sådan ud:
Johannes Hansens Vej 23 6100 Haderslev
En anden kunne være:
Solvej 18 8700 Horsens
Det eneste der gælder for alle, er at det er ved andet mellemrum fra højre strengen skal deles.
Skrevet tir. d. 23. oktober 2012 kl. 08:38:09| #4
Gør som Finb siger ... regn baglænges, skild på de 2 sidste ord.
Skrevet tir. d. 23. oktober 2012 kl. 08:42:58| #5
Ok det går ikke med de 2 sidste ord. Da København C eks. vil skabe problem.
2 mulige løsninger:
1. søg på et nummer 4 cifre bagfra. der er du sikker.
2.
http://www.postdanmark.dk/ (...) her har du en liste over postnummer og by. Du kan lave et batch script som går igennem med en "contains"
som eks.
if(adress.contains(i))
{
a1 = adress.replace(i, ""); a2 = i;
}
men alt efter hvor stor din adresse liste er kan version 2 tage lidt tid.
Skrevet tir. d. 23. oktober 2012 kl. 08:46:32| #6
Det er en skam, du ikke vil have vba,
opgaven er født til vba
finb
Skrevet tir. d. 23. oktober 2012 kl. 10:10:06| #7
I #3 skriver du:
Det eneste der gælder for alle, er at det er ved andet mellemrum fra højre strengen skal deles.
Hvad så hvis postdistrikt er for eksempel:
Nørre Snede
Randers NV
Nykøbing Sj
osv.
Skrevet tir. d. 23. oktober 2012 kl. 11:00:06| #8
Med
Johannes Hansens Vej 23 6100 Haderslev
Solvej 18 8700 Nørre Snede
i A1:A2 så prøv følgende matriksformler i henholdsvis B1 og C1:
B1: =MIDT(A1;1;SAMMENLIGN(SAND;(HELTAL(MIDT(A1;RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));4)/1000))>0;0)-2)
C1: =MIDT(A1;SAMMENLIGN(SAND;(HELTAL(MIDT(A1;RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));4)/1000))>0;0);LÆNGDE(A1))
Kopier til B2:C2.
Jeg har ikke testet grundigt, men det virker i hvert fald på de to eksempler.
Skrevet tir. d. 23. oktober 2012 kl. 11:59:35| #9
#7
Rigtig der er jo også postdistrikter hvor navnet er delt i 2.
Jeg har tænkt lidt på om man kan bruge find eller lignede til at søge på 4 tal (post Nr.) F.eks. FIND(####).
finb. hvis en VBA kan klare det, så må du da gerne komme med et bud.
Skrevet tir. d. 23. oktober 2012 kl. 12:09:42| #10
Prøvede du ikke formlerne i #8?
Skrevet tir. d. 23. oktober 2012 kl. 15:07:41| #11
VBA, gerne, men test lige dkhanknu først !
mvh
finb
Skrevet tir. d. 30. oktober 2012 kl. 13:14:36| #12
Har ikke lige fået tid til at teste #8. Vender tilbage, når jeg har forsøgt. Har iøvrigt sat IT-Afdelingen igang med at ændre udtrækket, så adresse og postdistrikt kommer ud i hver sin kolonne.
Skrevet man. d. 05. november 2012 kl. 13:01:22| #13
Nu har jeg prøvet formlerne i #8, men får en "Værdi" fejl.
Evaluer formel giver dette resultat på celle B1:
MIDT("Johannes Hansens vej 23 6100 Haderslev";1;SAMMENLIGN(SAND;(HELTAL("Joha"/1000))>0;0)-2,
hvor Joha er fremhævet med skråskrift.
Celle C1 giver denne fejl:
MIDT("Johannes Hansens vej 23 6100 Haderslev";SAMMENLIGN(SAND;(HELTAL("Joha"/1000)>0;0);LÆNGDE(A1))
hvor Joha er fremhævet med skråskrift.
Skrevet tir. d. 06. november 2012 kl. 12:53:40| #14
Skrevet man. d. 12. november 2012 kl. 10:34:55| #15
Nå, du har måske ikke lige haft tid til at teste #14?
Nej folk har jo travlt - for nogles vedkommende især når det gælder om at reagere til folk der har prøvet at hjælpe med noget som spørgeren selv har bedt om hjælp til!
Hans
Skrevet fre. d. 16. november 2012 kl. 10:18:58| #16
Hej dkhanknu
Jeg kan ikke hente din fil. Får beskeden "URL- Blocket", men det er nok fordi jeg sidder på arbejde lige nu. Prøver lige i aften, når jeg er på min egen maskine.
Skrevet man. d. 19. november 2012 kl. 22:41:47| #17
Hej dkhanknu
Nu fik jeg endelig tid til at downloade filen. Det virker perfekt.
Jeg lægger lige formlerne ind her under, så andre evt. kan bruge løsningen. Lægger du lige et svar så jeg kan lukke tråden?
celle A1= Johannes Hansens Vej 23 6100 Haderslev
Formel i celle B1= {=MIDT(A1;1;SAMMENLIGN(SAND;(HELTAL(MIDT(A1;RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));4)/1000))>0;0)-2)}
Formel i celle C1= {=MIDT(A1;SAMMENLIGN(SAND;(HELTAL(MIDT(A1;RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));4)/1000))>0;0);LÆNGDE(A1))}
dkhanknu kan du forklare mig, hvorfor formelen ikke virker efter at jeg har klikket i formellinjen? Lige så snart jeg har klikket i formellinjen, og trykker ENTER uden at have ændret noget, kommer der en #VÆRDI fejl. Når jeg klikker i den bageste ende af formelen forsvinder den spidse parentes, og efter enter kommer fejlen, også selv om jeg indsætter parentesen igen. Hvorfor opfører formlerne sig sådan?
Skrevet tir. d. 20. november 2012 kl. 06:21:28| #18
Som jeg skrev i #8 er det matriksformler. Ved afslutning af en matriksformel skal du ikke bare som normalt trykke på Enter. Du skal holde Ctrl og Shift nede før du trykker på Enter. Hvis du gør det korrekt vil Excel automatisk sætte krøllede parenteser omkring formlen. Forsøg ikke på manuelt at sætte disse parenteser, det vil bare få Excel til at opfatte det hele som tekst. Ved senere redigering skal du igen bruge sammme indtastningsmåde. En matriksformel kan kopieres (trækkes i fyldhåndtaget) på helt normal vis. Der findes masser af indlæg om/med matriksformler, både her på Eksperten og andre steder.
Hans
Skrevet tir. d. 20. november 2012 kl. 10:53:51| #19
Tak for hjælpen hele vejen dkhanknu. De der matrixformler skal jeg måske kigge lidt nærmere på. Det ser ud til at en del avancerede tilfælde kan klares med dem. Jeg tror ikke jeg nogen sinde har hørt om matrix formler før, selv om jeg har været på et par udvidet Excel kurser. :-)