Avatar billede JF01 Novice
23. marts 2018 - 11:00 Der er 6 kommentarer og
2 løsninger

Separer Tal og Bogstaver - Forskellig Længde

Hej.

Jeg søger en løsning på følgende problem:

I kolonne A har jeg forskellige værdier, det kunne være et 6-cifret tal uden mellemrum eller bindestreg, men det kan også være et 9-cifret tal indeholdende bindestreg, mellemrum - det vil dog altid være efterfulgt af et navn. I Kolonne B står det "ønskede" resultat.

Jeg ønsker en robust løsning uden brug af makroer. Formlen skal gerne køre automatisk på både et stort og småt antal rækker. Det betyder, at jeg ikke ønsker at køre "Tekst til kolonner", da det vil kræve manuelt arbejde.

Lige nu har jeg forsøgt med følgende formler i kolonne C og D uden held:
Kolonne C:
=ERSTAT(FJERN.OVERFLØDIGE.BLANKE(VENSTRE(A1;11));3;1;"")
Kolonne D :
=FJERN.OVERFLØDIGE.BLANKE(VENSTRE(A1;(LÆNGDE(A1)-3)))


Håber, at I kan hjælpe.

Kolonne A.......................Kolonne B.........Kolonne C........Kolonne D
6366-23 Søren.................636623................Formel...............Formel
500444321 Belinda..........500444321
636623 Erik......................636623
.
Avatar billede JF01 Novice
23. marts 2018 - 11:16 #1
Jeg forestiller mig, at der findes en simpel formel, der fjerner alt andet end cifre/tal (altså fjerner mellemrum, *, / og bogstaver). Krydser fingre og afventer jeres svar.
Avatar billede ebea Ekspert
23. marts 2018 - 11:33 #2
Prøv denne formel. Det er en Matrix formel, og skal afsluttes med Ctrl+Shift og Enter

{=NUTIDSVÆRDI(-0,9;;HVIS.FEJL(MIDT(A2;1+LÆNGDE(A2)-RÆKKE(FORSKYDNING(A$1;;;LÆNGDE(A2)));1)%;""))}
Avatar billede finb Ekspert
23. marts 2018 - 11:44 #3
utestet:
=venstre(erstat(a1;"-";"");find(a1;" ")-1)
Avatar billede xl-Enthusiast Ekspert
23. marts 2018 - 12:06 #4
Hvis der altid er et mellemrum umiddelbart før navn begynder kan følgende måske bruges:

=UDSKIFT(MIDT(A2;1;FIND(" ";A2;1)-1);"-";"")
Avatar billede Dan Elgaard Ekspert
23. marts 2018 - 12:23 #5
Her er begge formler:
http://www.EXCELGAARD.dk/Bib/Formler/Tal%20og%20Tekst/

...uden brug af VBA og/eller matrix formler - blot helt almindelige regnearksformler.
Avatar billede xl-Enthusiast Ekspert
23. marts 2018 - 12:37 #6
Formentlig vil noget af ovenstående kunne bruges medmindre det kan forekomme, at der ikke er et mellemrum umiddelbart før navn begynder. Hvis manglende mellemrum kan  forekomme, så prøv denne matrixformel:

=MIDT(A2;1;SAMMENLIGN(1;--(KODE(MIDT(A2;RÆKKE(INDIREKTE("1:"&LÆNGDE(A2)));1))>65);0)-1)
Avatar billede xl-Enthusiast Ekspert
23. marts 2018 - 12:39 #7
Korrektion:

=MIDT(A2;1;SAMMENLIGN(1;--(KODE(MIDT(A2;RÆKKE(INDIREKTE("1:"&LÆNGDE(A2)));1))>=65);0)-1)

(>=65 i stedet for >65)
Avatar billede JF01 Novice
23. marts 2018 - 12:50 #8
Hej alle,

I skal have mange tak for jeres hurtige svar.

Jeg har forsøgt med alle de givne formler og kan konkludere, at xl-Enthusiast's første forslag virker rigtig fint til min forespørgsel.

Ebea's første forslag virker også, men jeg har desværre problemer med at tilpasse den til alle rækkerne (formentlig grundet mit begrænsede kendskab til matrix).

Jeg forsøger at begrænse filens størrelse og undgår derfor matrix-formlerne (også pga. manglende evner til at forstå/rette/skrive i dem).

xl-Enthusiast's sidste forslag returnerer værdien 6366-23 (altså med bindestreg).

Dette er formentlig ikke sidste gang I hører fra mig - fantastisk med så god hjælp.

Mvh JF
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