Te haz encontrado que con frecuencia necesitas extraer valores numéricos ubicados en diferentes posiciones en una cadena de texto y tienes que hacer hasta lo imposible para extraerlos. Deja de preocuparte, que con esta fórmula que estas por ver te será más fácil la vida cuando se trate de extraer montos ubicados en posiciones no uniformes.
Copia y pega el código VBA en un módulo estandar en tu libro de Excel y la fórmula estará disponible en tu libro.
Para llamar la fórmula utiliza esta sintáxis:
=ExtraeValor(Celda donde se encuentra el valor, Posición del valor a extraer)
=ExtraeValor(A2,3)
Decargar xls
Copia y pega el código VBA en un módulo estandar en tu libro de Excel y la fórmula estará disponible en tu libro.
Para llamar la fórmula utiliza esta sintáxis:
=ExtraeValor(Celda donde se encuentra el valor, Posición del valor a extraer)
=ExtraeValor(A2,3)
Decargar xls
Código VBA:
'****************************************' ' Email: obed.cruz@exceltrabajaporti.com ' ' www.exceltrabajaporti.com ' '****************************************' Option Explicit Function ExtraeValor(varValor As Variant, iPos As Integer) Dim RegEx As Object, objMatch As Object Set RegEx = CreateObject("Vbscript.RegExp") With RegEx .MultiLine = True .Pattern = "\d+.?\d+" .Global = True If .test(varValor) Then Set objMatch = .Execute(varValor) If objMatch.Count >= iPos Then ExtraeValor = objMatch(iPos - 1) ExtraeValor = ExtraeValor * 1 End If End If End With If ExtraeValor = Empty Then ExtraeValor = "¡No es valor numérico!" End Function