Stránka 1 z 1

EXCEL 2007 - jak vybrat pouze čísla z buňky?

Napsal: 15 úno 2011 14:25
od zabacek
Zdravím všechny,
mám takový problém, který nekodáži sám vyřešit: v sešitu Excelu 2007 ve sloupci G mám 96572 řádky, které obsahují hodnoty, kdy je na začátku různě dlouhý text, pak různě dlouhé číslo a nakonec opět různě dlouhý text, např.:
CGWXA2036_BHG_w_XXL
CG4100_RUZ
CGA20003_FLV_n
CGQPW1355_BRD_o_XS

Já bych potřeboval z těchto hodnot dostat do vedlejší buňky pouze to číslo mezi textem. Díky moc předem.

Re: EXCEL 2007 - jak vybrat pouze čísla z buňky?  Vyřešeno

Napsal: 15 úno 2011 15:39
od navstevnik
Pouzij UDF (vloz do standardniho modulu); retezec v A1, do bunky B1 vloz: =ExtractNumber(A1) a kopiruj dle potreby do dalsich bunek.
Fce vraci cele dlouhe cislo. Predpoklad je, ze v retezci je jen jedna skupina cislic jinak bude vyextrahovano jako jedno cislo.

Kód: Vybrat vše

Option Explicit

Function ExtractNumber(Str As String) As Long
  Dim i As Integer, SStr As String, ExtStr As String
  For i = 1 To Len(Str)
    SStr = Mid(Str, i, 1)
    If IsNumeric(SStr) Then ExtStr = ExtStr & SStr
  Next i
  ExtractNumber = Val(ExtStr)
End Function

Pokud je potreba vyextrahovat pouze prvni skupinu cislic, pouzij tuto funkci:

Kód: Vybrat vše

Function ExtractNumber(Str As String) As Long
  Dim i As Integer, SStr As String, ExtStr As String, IsNum As Boolean
  IsNum = False
  For i = 1 To Len(Str)
    SStr = Mid(Str, i, 1)
    If IsNumeric(SStr) Then
      ExtStr = ExtStr & SStr
      IsNum = True
    Else
      If IsNum Then Exit For
    End If
  Next i
  ExtractNumber = Val(ExtStr)
End Function