Avatar billede ubpedersen Novice
28. september 2017 - 14:02 Der er 14 kommentarer

Adskille husnumre fra vejnavne

Hej.
Jeg vil gerne have opdelt en celle med adresser således at der står vejnavn i én kolonne og husnummer i en anden.
Eksempel på data der skal deles i to kolonner:
Apotekerstræde 6
Dronningens Tværgade 30

Håber jeg kan få et svar uden vba.

mvh. Ulrik
Avatar billede xl-Enthusiast Ekspert
28. september 2017 - 14:53 #1
Hvis du har vejnavn i A1 så prøv denne matrixformel i B1 for vejnavn:

=MID(TRIM(A1);1;MAX(IF(MID(TRIM(A1);seq;1)=" ";seq)))
hvor seq er en navngiven formel: Navn: seq
                                                      Refererer til =ROW(INDIRECT("1:1024"))
(husk at holde Ctrl og Shift nede før tryk på Enter)

og denne normale formel i C1 for nummer:

=LOOKUP(9^9;--RIGHT(A1;ROW($1:$100)))

Hvis du bruger dansk version, så:
MID =MIDT
TRIM = FJERN.OVERFLØDIGE.BLANKE
MAX = MAKS
IF = HVIS
LOOKUP = SLÅ.OP
INDIRECT = INDIREKTE
Avatar billede xl-Enthusiast Ekspert
28. september 2017 - 15:08 #2
Hvis du skulle have problemer med ovennævnte, så:

https://www.dropbox.com/s/9x8wr3pi6le6t1q/Vejnavn_Nummer.xlsx?dl=0
Avatar billede ubpedersen Novice
28. september 2017 - 15:47 #3
Hmmm. Jeg forstår ikke rigtigt det der med "seq". Er det meningen at formlen nedenunder skal sættes ind hvor der står "seq": =MAKS(HVIS(MIDT(FJERN.OVERFLØDIGE.BLANKE(A2);RÆKKER(INDIREKTE("1:1024"));11)=" ";RÆKKER(INDIREKTE("1:1024"))))

Desuden: mon den der hat mellem 9-tallerne er et gange.tegn (*) på dansk?

Mvh. Ulrik
Avatar billede Dan Elgaard Ekspert
28. september 2017 - 15:49 #4
Hvis du helt ønsker, at undgå VBA, matriksformler og andet fancy, så kan følgende to helt almindelige regnearks formler klare det:

Vejnavn:
=VENSTRE(UDSKIFT(A1;" ";"*";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";"")));FIND("*";UDSKIFT(A1;" ";"*";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";""))))-1)

Husnummer:
=MIDT(UDSKIFT(A1;" ";"*";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";"")));FIND("*";UDSKIFT(A1;" ";"*";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";""))))+1;99)

Vi forudsætter, at du har adressen stående i celle A1  :-)
Avatar billede xl-Enthusiast Ekspert
28. september 2017 - 15:58 #5
#3

Du kan gøre som du skriver i din formel herunder:
Hmmm. Jeg forstår ikke rigtigt det der med "seq". Er det meningen at formlen nedenunder skal sættes ind hvor der står "seq": =MAKS(HVIS(MIDT(FJERN.OVERFLØDIGE.BLANKE(A2);RÆKKER(INDIREKTE("1:1024"));11)=" ";RÆKKER(INDIREKTE("1:1024"))))

du skal så bare erstatte RÆKKER med RÆKKE

Men ellers kan du jo se i den fil der linkes til i #2. Tryk Formler, Navnestyring for at se hvordan seq er defineret. Så seq i min formel er bare en forkortet måde at skrive =RÆKKE(INDIREKTE("1:1024"))
Avatar billede xl-Enthusiast Ekspert
28. september 2017 - 16:01 #6
Der skal ikke stå 11 efter første "1:1024" men 1. (Jeg havde bare kopieret din formel).
Avatar billede xl-Enthusiast Ekspert
29. september 2017 - 07:40 #7
Glemte dit sidste spørgsmål (^)
9^9 er bare en let måde at skrive et meget stort tal. I stedet for 9^9 kan du skrive et tal (for eksempel 10000) som er større end det største husnummer der kan forekomme. ^ er tegnet for potensopløftning, for eksempel er 2^2 = 2*2, 2^3 =2*2*2, 2^4 = 2*2*2*2 og så videre.
Avatar billede Daffodil Professor
02. oktober 2017 - 09:38 #8
Du kan bruge følgende to formler til at adskille vejnavn og husnummer. Dette forudsat at der ikke er noget med etage osv. efter husnummeret.

Vejnavn: =VENSTRE(A1;FIND("|";UDSKIFT(A1;" ";"|";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";""))))-1)

Husnummer: =HØJRE(A1;LÆNGDE(A1)-FIND("|";UDSKIFT(A1;" ";"|";LÆNGDE(A1)-LÆNGDE(UDSKIFT(A1;" ";"")))))
Avatar billede Dan Elgaard Ekspert
02. oktober 2017 - 10:03 #9
#8: Er det ikke sådan set de samme formler, som jeg har givet i #4 ?!?
Avatar billede Daffodil Professor
02. oktober 2017 - 12:32 #10
Korrekt, disse er lidt kortere.
Avatar billede claes57 Ekspert
02. oktober 2017 - 13:17 #11
jeg ville nok lave det med at søge på første karakterværdi mindre end 58 decimalt (57 er tallet 9) og dele teksten der
bare for at styre en adresse som fx
Olfert Fischers Gade 7B 3.th
Avatar billede xl-Enthusiast Ekspert
02. oktober 2017 - 14:10 #12
Se venligst bort fra #1 der ikke virker, i hvert fald ikke hvad husnummer angår.

Hvis du måtte være interesseret i noget fra mig, så kan du prøve at se på denne fil.

https://www.dropbox.com/s/yjogjh2sdhj2kou/Vejnavn_Nummer_2.xlsx?dl=0

der måske bedre opfylder det du ønsker.
Avatar billede Dan Elgaard Ekspert
02. oktober 2017 - 15:22 #13
#11: Heh, heh - du har en pointe, men så kan man jo blive ved :-)

Hvad med f.eks. 'Christian den 2 vej 10'?
Eller 'Frederik 3.s vej 3'?
Eller '5-øren 16'?
Avatar billede xl-Enthusiast Ekspert
02. oktober 2017 - 15:54 #14
Du har ret, men hvis det du nævner er et seriøst problem så tror jeg ikke der er nogen vej udenom regular expressions.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester