Saltar al contenido

pasar formula como funcion personalizada


Recommended Posts

publicado

hola a todos intento expresar una formula un poco larga como una funcion para que sea mas practica

solo que en un ejemplo usando extraer si me resulta, intento utilizarla para otra funcion pero no me queda

ojala me puedan ayudar

pasar formula a funcion.zip

publicado

Me ha parecido que en tu archivo adjunto la UDF que tienes es para extraer el texto.

Esta UDF te puede servir.

Function ExtraeTexto(Txt As String)
With CreateObject("VBScript.RegExp")
.Pattern = "\d+"
.Global = True
ExtraeTexto = .Replace(Txt, "")
End With
End Function[/PHP]

publicado

gracias obed, solo que me gustaria saber si se puede pasar fácilmente de la fórmula en ingles a una funcion directamente por ejemplo para la funcion que pretendo resolver :

Function formulafun(Cadena As Range) As String

con formula es en la celda A9

=SI(ESERROR(ENCONTRAR("/",(IZQUIERDA(A9,(IZQUIERDA((ENCONTRAR((extraernumeros(A9)),A9))))-1)))),(IZQUIERDA(A9,(IZQUIERDA((ENCONTRAR((extraernumeros(A9)),A9))))-1)),IZQUIERDA((IZQUIERDA(A9,(IZQUIERDA((ENCONTRAR((extraernumeros(A9)),A9))))-1)),ENCONTRAR("/",(IZQUIERDA(A9,(IZQUIERDA((ENCONTRAR((extraernumeros(A9)),A9))))-1)))-1))

esta formula es la que me funciona correctamente para lo que pretendo su equivalente en ingles es:

=IF(ISERROR(FIND("/",(LEFT(A9,(LEFT((FIND((extraernumeros(A9)),A9))))-1)))),(LEFT(A9,(LEFT((FIND((extraernumeros(A9)),A9))))-1)),LEFT((LEFT(A9,(LEFT((FIND((extraernumeros(A9)),A9))))-1)),FIND("/",(LEFT(A9,(LEFT((FIND((extraernumeros(A9)),A9))))-1)))-1))

ahora solo quiero saber si se puede expresar como funcion sin modificarla en su formato en ingles, pensaba yo que seria asi:

formulafun = formulafun & "formula en ingles"....de tal manera que hice este intento

formulafun = formulafun & IF(ISERROR(FIND("/",(LEFT(cadena,(LEFT((FIND((extraernumeros(cadena)),cadena))))-1)))),(LEFT(cadena,(LEFT((FIND((extraernumeros(cadena)),cadena))))-1)),LEFT((LEFT(cadena,(LEFT((FIND((extraernumeros(cadena)),cadena))))-1)),FIND("/",(LEFT(cadena,(LEFT((FIND((extraernumeros(cadena)),cadena))))-1)))-1))

solo que no me funciona no se porque, en otro caso si me resulto como en ejemplo 1 con

formulafunejemplo = formulafunejemplo & Mid$(Cadena, 1, 3)

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.