¿Cuál es la forma correcta con una macro para extraer un numero de una fórmula y usarlo?

Tengo en excel una celda con una información que la exporta un programita en especial y la exporta así:
A3... Tensión Nominal 220 V
Necesito extraer solamente el numero 220 para meterlo en una fórmula ej
=A3*(1+0.075) y como resultado me de
236.5
¿Cuál es la forma correcta de hacerlo?, ademas esta fórmula estará grabada en una macros, por que la celda A3 no siempre marca ... Tensión Nominal 220 V, a veces puede marcar ... Tensión Nominal 380 V entonces necesito conocer solo el numero para meterlo en una fórmula.
Te agradecería que me ayudaras
Respuesta
1
Si la celda siempre va a tener el texto "Tensión nominal" seria muy fácil, el problema es si cambia de palabras. Si no cambia es así:
Utilizas la función de extraer caracteres...
En la celda A3 está el texto:
=EXTRAE(A3;17;3)
17 es la cantidad de caracteres a brincarse para llegar al 220 y el 3 es la cantidad de dígitos de los voltios, lo puedes cambiar por los dígitos que ocupes antes de la sigla "V".
Tensión Nominal: 220 V
=EXTRAE(A3;17;3)
Bien la fórmula es excelente. Pero
Tiene la limitación de 4 dígitos antes de llegar a la V
Supongamos que dice
TENSIÓN NOMINAL: 12000 V
¿Cómo lo hago?
Tienes razón con la limitación de tamaño. Repito, si siempre va a llevar los textos "Tensión nominal" y "V" lo puedes hacer así:
=EXTRAE(A3;18;LARGO(A3)-18-1), donde 18 es la extension de "Tension nominal:" incluyendo los dos puntos y el 1 es para eliminar el espacion entre los numeros y la V. Si las palabras "Tension nominal:" no fueran a estar siempre puedes hacer esto:
=EXTRAE(D16;ENCONTRAR(":";D16)+2;LARGO(D16)-ENCONTRAR(":";D16)-2-1) donde si es necesario que existan los dos puntos (:).

2 respuestas más de otros expertos

Respuesta
1
Emplea la fórmula
=EXTRAE(A3,17,3)*(1+0.075)
Donde:
A3 contiene la frase
"Tensión Nominal 220 V"
17 es la posición donde se encontrará el inicio de la cifra.
Y 3 porque siempre la cifra de Tensión Nominal supongo que siempre será de tres cifras.
Así se obtiene el resultado que deseas 236.5
Bueno gracias por la respuesta de verdad eres un guru en esta materia
La fórmula tiene un detalle.. no puedo leer una información que tenga más de 3 dígitos ej: Tensión nominal 12000 V
¿Si hago esto no me calcula la fórmula por que estaría tomando en concideracion la letra V. existe alguna forma de que el numero sea de 4 o 5 dígitos y pueda calcular la fórmula?
De todos modos GRACIAS POR TUS RESPUESTAS. TE MERECES 100000 PUNTOS por experto en la materia.
Eso tiene solución:
Le podemos decir a la fórmula que extraiga la cadena de caracteres (o sea la cifra)que está comprendida entre dos espacios en blanco (ej los que enmarcan la cifra que tu quieres), pero para ser más exactos en la respuesta, indicame un correo al que me pueda comunicar y allí te indicaré a donde me puedes hacer llegar tu modelo para perfeccionarlo en lo que requieres.
Juanmabel
Pd:gracias por los 100,0000 puntos, pero hubiera sido suficiente una buena valoración en la primer pregunta finalizada (je je je)
Respuesta
1
La consulta tiene dos soluciones, una con fórmulas y otra con código como no es muy amplio te adjunto las dos. En ambas se tiene en cuenta la existencia de un carácter comodín, es decir uno que siempre aparece, en este caso, he elegido el carácter "V" de voltio.
1. Utilizando Fórmulas, suponiendo que el dato esta en la celda a1 añadiendo esta fórmula en la celda A3 obtendrías el resultado que deseas:
=IZQUIERDA(DERECHA(A3;5);3)*(1+0,075)
2.- Utilizando código:
En el editor de VBa (Alt+F11) incluye esta rutina:
Sub TensiónElectrica()
Do Until ActiveCell.Value = ""
Paco = ActiveCell.Value
Tono = Replace(Paco, "Tensión Nominal", "") ' Quita la frase Tension Nominal
Tono = Trim(Replace(Tono, "V", "")) 'Quita espacios y la V
ActiveCell.Offset(0, 1).Value = Tono * (1 + 0.075)
Loop
End Sub
Como veras aquí la rutina funcionaria situándose en la primera celda con valor hasta que llega a la ultima. El método es diferente porque cuando quitas caracteres tienen que ser fijo el numero a eliminar aquí con tensiones de 1800 V también valdría, eso si siempre tendría que ser la misma forma de texto "Tensión Nominal"+Valor+"V" Finalmente calcula la fórmula y la incorpora en la columna siguiente.
Espero ayudarte con alguno de los dos métodos si quieres algo más especifico no dudes en preguntármelo.
Gracias por la respuesta. De verdad te considero un gran maestro en la materia. La primera fórmula funciona excelentemente bien. Pero tiene la limitación de que la tensión no pueden sobre pasar los cuatro dígitos osea 12000 v por que la formulita también tomaría V
Con respecto al código en VB, me gustaría que me lo explicaras un poco más, por que no me funciona, me tira un error diciendo error 13 NO COINCIDEN LOS TIPOS.
Supongamos que la información
Tensión nominal: 220 V esta en A1 y quiero el resultado en A2 use tu código pero no funciona, lo hice así:
Sub TensiónElectrica()
Do Until ActiveCell.Value = ""
Paco = ActiveCell.Value
Tono = Replace(Paco, "Tensión Nominal:", "") ' Quita la frase Tensión Nominal
Tono = Trim(Replace(Tono, "V", "")) 'Quita espacios y la V
ActiveCell.Offset(0, 1).Value = Tono * (1 + 0.075)
Loop
End Sub ME DA UN ERROR 13 NO COINCIDEN LOS TIPOS
Confío en que me podrás ayudar. Quizás mejorando la primera fórmula o el código VB
Pero ya de todas formas te mereces 1000 puntos por la respuestas que me has dado
Gracias.
Disculpa por el pequeño error que he cometido, si te fijas el problema está en que "Nominal" esta en mayúsculas la N y en la celda en minúsculas y por tanto no entiende el código el programa (que es listo pero no inteligente) la solución es la siguiente:
Option Compare Text
Sub TensiónElectrica()
Do Until ActiveCell.Value = ""
Paco = ActiveCell.Value
Tono = Replace(Paco, "Tensión nominal:", " ") ' Quita la frase Tension Nominal
Tono = Trim(Replace(Tono, "V", "")) 'Quita espacios y la V
ActiveCell.Offset(0, 1).Value = Tono * (1 + 0.075)
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Como veras he añadido otra linea de código para que lea toda una columna, antes se me había olvidado.
Trabajar con fórmulas es más engorroso ya que hay que cerrar varias posibilidades, si quieres tras probar esto si lo deseas lo podemos intentar
Te agradezco los elogios, pero desengañate soy un usuario más que ha trabajado con Excel, tu llegaras a saber lo mismo o a superarme.
Ya sabes si todavía da error coméntamelo y se intenta de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas