Avatar billede Ras_83 Nybegynder
20. august 2015 - 11:30 Der er 6 kommentarer og
1 løsning

Rense celle for bogstaver

Hej

Jeg har en kolonne med data, hvor hver enkelt celle består af bogstaver og tal i forskellig rækkefølge og længde. Jeg vil gerne have renset alle celler for bogstaver så jeg kun har tallene tilbage. Jeg kan ikke bruge "Tekst til kolonner" da det er meget forskelligt, hvor mange bogstaver der er foran det første tal og i nogle tilfælde er der ikke mellemrum mellem tal og bogstaver.

Eks på datasæt kunne se således ud:
Celle 1: abc abc123 abc
Celle 2: abc 456 abc
Celle 3: abcde 789abc

Jeg vil gerne have "renset" disse celler så de hedder:
Celle 1: 123
Celle 2: 456
Celle 3: 789

Er der nogen der kan hjælpe med en løsning på dette?

Jeg har selv prøvet med Formlen "Udskift", hvor jeg udskiftede til "" men jeg kan ikke finde ud af at udskifte mere end ét bogstav. Kan man få denne formel til at udskifte alle bogstaver?
Avatar billede xl-Enthusiast Ekspert
20. august 2015 - 12:09 #1
Er der en bestemt struktur her sådan at tallene altid vil stå til sidst eller kan tal forekomme både først, midt i og til sidst og med eller uden mellemrum?
Avatar billede natkatten Mester
20. august 2015 - 13:44 #2
En meget lang matrikformel, som fjerner alle ikke-tal i celle A1, er vist her. Formlen skal skrives ud i et:

=SUM(MIDT(0&A1;STØRSTE(ER.TAL(--MIDT(A1;RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));1))*RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));RÆKKE(INDIREKTE("1:"&LÆNGDE(A1))))+1;1)*10^(RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)))-1))
Avatar billede natkatten Mester
20. august 2015 - 13:45 #3
Det gik galt med visningen af denne lange formel. Har sat linjeskift ind i nedenstående, men de skal fjernes ved indtastningen:

=SUM(MIDT(0&A1;STØRSTE(ER.TAL(--MIDT(A1;RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));1))
*RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)));
RÆKKE(INDIREKTE("1:"&LÆNGDE(A1))))+1;1)
*10^(RÆKKE(INDIREKTE("1:"&LÆNGDE(A1)))-1))
Avatar billede natkatten Mester
20. august 2015 - 13:53 #4
Her er en user defined function (UDF):

Function KunTal(str As String) As String

    Dim vaerdi As String
    Dim i As Integer
    vaerdi = ""
    For i = 1 To Len(str)
        If IsNumeric(Mid(str, i, 1)) Then
            vaerdi = vaerdi + Mid(str, i, 1)
        End If
    Next
    KunTal = vaerdi
End Function
Avatar billede Ras_83 Nybegynder
20. august 2015 - 13:59 #5
Der er ikke en bestemt struktur. Tallet kan være først, sidst eller i midten. Det kan variere meget hvor mange tegn der står før og efter tallet. Jeg er ikke stødt på celler, hvor der IKKE er mellemrum både foran og bagved tallet, men det kan i teorien godt fremkomme.
Avatar billede Ras_83 Nybegynder
20. august 2015 - 14:42 #6
Natkatten

Fedt!

Det var løsningen. Hvordan giver jeg dig dine velfortjente point?
Avatar billede natkatten Mester
20. august 2015 - 14:48 #7
Du accepterer dette svar.

/natkatten
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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