Oprettet man. d. 22. oktober 2012 kl. 17:24:32

brasso
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

finb
finb (11.802 point)
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

larsini
larsini (13.930 point)
hvorfor ikke bare lave "tekst til kolonne" som er en funktion i excel?

Skrevet tir. d. 23. oktober 2012 kl. 07:47:10| #3

brasso
brasso (22.435 point)
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

finb
finb (11.802 point)
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

dkhanknu
dkhanknu (41.685 point)
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

dkhanknu
dkhanknu (41.685 point)
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

brasso
brasso (22.435 point)
#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

dkhanknu
dkhanknu (41.685 point)
Prøvede du ikke formlerne i #8?

Skrevet tir. d. 23. oktober 2012 kl. 15:07:41| #11

finb
finb (11.802 point)
VBA, gerne, men test lige dkhanknu først !
mvh
finb

Skrevet tir. d. 30. oktober 2012 kl. 13:14:36| #12

brasso
brasso (22.435 point)
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

brasso
brasso (22.435 point)
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

dkhanknu
dkhanknu (41.685 point)
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

brasso
brasso (22.435 point)
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

brasso
brasso (22.435 point)
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

dkhanknu
dkhanknu (41.685 point)
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

brasso
brasso (22.435 point)
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. :-)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Diagram i Excel

Oprettet den 24. maj 2013 kl. 22.40
h_s giver 200 point for svar | Giv et svar »

Kan man bruge anden kode i Excel end VBA og ...

Oprettet den 24. maj 2013 kl. 14.32
anthonsen giver 30 point for svar | Giv et svar »

Hjælp til formel

Oprettet den 24. maj 2013 kl. 12.48
boro23 giver 30 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Fem smarte funktioner i din Mac som du sikkert ikke kender

Her har du fem muligheder for at tweake din Mac på en fed måde.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Ny opfindelse: Oplad din mobil på 20 sekunder

Måske er det snart slut med at lade mobilen op hver aften. Med ny opfindelse kan telefonen få fuld energi på sølle 20 sekunder.


Nyheder fra Computerworld

Teaser billede

Galleri: De 10 vildeste datacentre i verden

I en gammel kirke, i et oppusteligt telt, på nedlagte militæranlæg eller midt i ørkenen. Der er ingen grænser for, hvor man kan banke et datacenter op. Her er de 10 sejeste anlæg i verden. I...


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger