¿Cómo obtener Valores en una Celda con letras?

Buenas Tardes, estoy elaborando un Macro en Excel. Para ello necesito obtener el valor de una celda "X" y multiplicarlo con Z (ya la tengo).
Ejemplo: x contine: "443.02% de prestaciones"
 Z contiene  "177".
¿Cómo puedo Obtener el Valor de 443.02?

1 respuesta

Respuesta
1
Si la cifra está siempre a la izquierda, quizás te sirva la fórmula:
=BUSCAR(1E+99;1*(DERECHA(A1;FILA(INDIRECTO("1:"&LARGO(A1))))))
Lo que pasa es que si al final de la cifra está el símbolo % Excel divide automáticamente la cifra por 100, con lo que en el ejemplo que pones devolvería 4.4302
Si la cifra pudiese estar en cualquier parte de la cadena, la fórmula se complica bastante:
=MED(A1;COINCIDIR(1;1*ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0);LARGO(A1)-COINCIDIR(1;1*ESNUMERO(1*MED(A1;LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))+1;1));0)+1-COINCIDIR(1;1*ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0)+1)
Que devuelve la cifra como texto, pero si lo que necesitas es su valor numérico lo único que hay que hacer es multiplicar por 1:
=MED(A1;COINCIDIR(1;1*ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0);LARGO(A1)-COINCIDIR(1;1*ESNUMERO(1*MED(A1;LARGO(A1)-FILA(INDIRECTO("1:"&LARGO(A1)))+1;1));0)+1-COINCIDIR(1;1*ESNUMERO(1*MED(A1;FILA(INDIRECTO("1:"&LARGO(A1)));1));0)+1)*1
3 notas:
- Todas estas fórmulas son matriciales (hay que introducirlas pulsando mayúsculas control entrada al mismo tiempo).
- Si la versión no es Excel 2010, la función MED hay que sustituirla por EXTRAE.
- Quizás hay que sustituir los puntos y comas por comas: dependerá del separador de listas del equipo.
Disculpa, es la primera vez que uso esta página para preguntar, siempre leo cosas de aquí pero no me había registrado, no se si metí el tema de la pregunta mal, porque lo quiero es en Visual Basic, un botón que me haga eso. Mis disculpas.
Para hacerlo en VBA puedes usar algo parecido a:
Public Function ExtraerNúmero(ByVal sCad As String) As Double
    Dim iInicio As Integer, iFinal As Integer, n As Integer
    For n = 1 To Len(sCad)
        If (IsNumeric(Mid(sCad, n, 1)) And iInicio = 0) Then iInicio = n
        If IsNumeric(Mid(sCad, n, 1)) Then iFinal = n
    Next n
    ExtraerNúmero = CDbl(Mid(sCad, iInicio, iFinal))
End Function
Muchas Gracias por tomarte la molestia, he entendido lo que me explicaste.. pero a la final no necesité eso, resulta que no quieren el botón jaja... Bueno, igual me sirve en mi BD de conocimientos je je :D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas