Fórmula en Excel

06/04/2005 - 12:04 por Raúl | Informe spam
Saludos. Necesito saber una fórmula con la cual el contenido de un texto,que
a su vez es una fórmula, se ejecute como una función. Me explico con un
ejemplo;
Por ejemplo tenemos el texto:
'=Valor('1999')

(el interior del texto es una fórmula)

Pues bien necesito una función que me devuelva como resultado 1999

Alguien sabe como hacerlo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
06/04/2005 - 12:40 | Informe spam
hola, Raúl !

... formula... el contenido de un texto, que a su vez es una formula... como una funcion.
... ejemplo tenemos el texto: '=Valor('1999') (el interior del texto es una formula)
... funcion que me devuelva como resultado 1999



no estoy seguro de haber 'captado' bien la situacion :(
suponiendo que en 'A1' tienes una especie de 'pseudo-formula' y que utilizas apostrofos para delimitar textos...
1.- si se trata siempre de 4 caracteres...
=extrae(a1,encontrar("'",a1)+1,4)
2.- si el numero de caracteres entre los apostrofos es 'variable'...
a) =extrae(a1,encontrar("'",a1)+1,encontrar("'",a1,encontrar("'",a1)+1)-encontrar("'",a1)-1)
b) =extrae(a1,encontrar("'",a1)+1,largo(a1)-2-encontrar("'",a1))

saludos,
hector.
Respuesta Responder a este mensaje
#2 Raúl
06/04/2005 - 13:03 | Informe spam
Perdona miguel es que me equivoque con los apostrofes. Te explico.

Esto es una fórmula:
=VALOR("01999")

cuyo resultado nos da el valor 1999, pero no quiero recoger sólo cuatro
dígitos, sino los que le ponga. Le pongo el cero delante y por eso lo
encierro entre comillas, no entre apóstrofes como te había puesto.

Bien, a continuación esto lo convertimos en un texto si delante si le
ponemos ahora un apóstrofe:

'=VALOR("01999")

Entonces lo que quiero es encontrar una que ejecute esa función(cuyo
resultado es 1999) y que a su vez es un texto. Al final quiero que aparezca
la resolución de la fórmula =VALOR("01999").

Lo entiendes ahora? Si no, preguntame lo que quieras

"Héctor Miguel" escribió en el mensaje
news:%
hola, Raúl !

... formula... el contenido de un texto, que a su vez es una formula...
como una funcion.
... ejemplo tenemos el texto: '=Valor('1999') (el interior del texto
es una formula)
... funcion que me devuelva como resultado 1999



no estoy seguro de haber 'captado' bien la situacion :(
suponiendo que en 'A1' tienes una especie de 'pseudo-formula' y que
utilizas apostrofos para delimitar textos...
1.- si se trata siempre de 4 caracteres...
=extrae(a1,encontrar("'",a1)+1,4)
2.- si el numero de caracteres entre los apostrofos es 'variable'...
a)
=extrae(a1,encontrar("'",a1)+1,encontrar("'",a1,encontrar("'",a1)+1)-encontrar("'",a1)-1)
b) =extrae(a1,encontrar("'",a1)+1,largo(a1)-2-encontrar("'",a1))

saludos,
hector.

Respuesta Responder a este mensaje
#3 Juan Pablo González
06/04/2005 - 20:23 | Informe spam
Esto es facil usando el complemento MoreFunc.xll (gratis) que se puede bajar
de aquí:

http://xcell05.free.fr/downloads/Morefunc.exe

luego, se puede usar la fórmula

=EVAL(A2)

donde A2 tiene el texto que se desea evaluar (VALOR("1999") en este caso)

Regards,

Juan Pablo González
Excel MVP

"Raúl" wrote in message
news:%
Perdona miguel es que me equivoque con los apostrofes. Te explico.

Esto es una fórmula:
=VALOR("01999")

cuyo resultado nos da el valor 1999, pero no quiero recoger sólo cuatro
dígitos, sino los que le ponga. Le pongo el cero delante y por eso lo
encierro entre comillas, no entre apóstrofes como te había puesto.

Bien, a continuación esto lo convertimos en un texto si delante si le
ponemos ahora un apóstrofe:

'=VALOR("01999")

Entonces lo que quiero es encontrar una que ejecute esa función(cuyo
resultado es 1999) y que a su vez es un texto. Al final quiero que
aparezca la resolución de la fórmula =VALOR("01999").

Lo entiendes ahora? Si no, preguntame lo que quieras

"Héctor Miguel" escribió en el mensaje
news:%
hola, Raúl !

... formula... el contenido de un texto, que a su vez es una formula...
como una funcion.
... ejemplo tenemos el texto: '=Valor('1999') (el interior del texto
es una formula)
... funcion que me devuelva como resultado 1999



no estoy seguro de haber 'captado' bien la situacion :(
suponiendo que en 'A1' tienes una especie de 'pseudo-formula' y que
utilizas apostrofos para delimitar textos...
1.- si se trata siempre de 4 caracteres...
=extrae(a1,encontrar("'",a1)+1,4)
2.- si el numero de caracteres entre los apostrofos es 'variable'...
a)
=extrae(a1,encontrar("'",a1)+1,encontrar("'",a1,encontrar("'",a1)+1)-encontrar("'",a1)-1)
b) =extrae(a1,encontrar("'",a1)+1,largo(a1)-2-encontrar("'",a1))

saludos,
hector.





Respuesta Responder a este mensaje
#4 Héctor Miguel
07/04/2005 - 00:07 | Informe spam
hola, chicos !

Raúl escribio en el mensaje ...
... es una formula: =VALOR("01999")... cuyo resultado nos da el valor 1999
... no quiero recoger solo cuatro digitos, sino los que le ponga...
... a continuacion esto lo convertimos en un texto si delante le ponemos... un apostrofe: '=VALOR("01999")
... quiero... encontrar una que ejecute esa funcion (cuyo resultado es 1999) y que a su vez es un texto
... quiero que aparezca la resolucion de la formula =VALOR("01999").

Juan Pablo González escribio en el mensaje...
... es facil usando el complemento MoreFunc.xll (gratis) que se puede bajar de aquí:
http://xcell05.free.fr/downloads/Morefunc.exe
luego, se puede usar la formula =EVAL(A2)
donde A2 tiene el texto que se desea evaluar (VALOR("1999") en este caso)





el complemento que recomienda Juan Pablo es [definitivamente] 'excel...ente' ;)
el unico 'inconveniente' que le veo [para una 'necesidad' +/- 'sencilla' como la planteada]...
es que [ademas] 'tendrias que cargar' con otras 40 funciones personalizadas [y unos cuantos Kb's]
que aunque son todas muy utiles... no son de uso 'frecuente' :(
[solo por no 'dejarlas en el tintero' y/o] por si fueran de utilidad algunas alternativas...
____
-> UNA funcion personalizada:
en un modulo de codigo 'normal' ==Function VerFormula(Celda As Range) As String
VerFormula = Celda.Cells(1, 1).FormulaLocal
End Function
=> [se puede 'obtener' lo mismo SIN macros 'pero' usando 'nombres' Y macro-funciones de excel4]
____
-> suponiendo que [solo] interesa 'rescatar' el texto utilizado en la formula ->valor p.e.<-
Function ValorEnFormula(Celda As Range) As String
Dim LaFormula As String, Pos1 As Byte
LaFormula = Mid(Celda.Cells(1, 1).Formula, 2)
Pos1 = InStr(LaFormula, """")
ValorEnFormula = Mid(LaFormula, Pos1 + 1, Len(LaFormula) - 2 - Pos1)
End Function
=> igual al caso anterior, es posible a traves de las macro-funciones de excel4
____
-> una tercera alternativa [la mas sencilla] pudiera ser ->utilizar un procedimiento 'a la inversa'<-
'poner' el texto en una celda y utilizar la funcion 'valor()' para 'convertirlo' en otra celda

saludos,
hector.
Respuesta Responder a este mensaje
#5 Raúl
07/04/2005 - 16:56 | Informe spam
Absolutamente maravilloso. Muchísimas gracias de verdad. A los dos.
Un saludo

"Héctor Miguel" escribió en el mensaje
news:%
hola, chicos !

Raúl escribio en el mensaje ...
... es una formula: =VALOR("01999")... cuyo resultado nos da el valor
1999
... no quiero recoger solo cuatro digitos, sino los que le ponga...
... a continuacion esto lo convertimos en un texto si delante le
ponemos... un apostrofe: '=VALOR("01999")
... quiero... encontrar una que ejecute esa funcion (cuyo resultado es
1999) y que a su vez es un texto
... quiero que aparezca la resolucion de la formula =VALOR("01999").



Juan Pablo González escribio en el mensaje...
... es facil usando el complemento MoreFunc.xll (gratis) que se puede
bajar de aquí:
http://xcell05.free.fr/downloads/Morefunc.exe
luego, se puede usar la formula =EVAL(A2)
donde A2 tiene el texto que se desea evaluar (VALOR("1999") en este
caso)





el complemento que recomienda Juan Pablo es [definitivamente]
'excel...ente' ;)
el unico 'inconveniente' que le veo [para una 'necesidad' +/- 'sencilla'
como la planteada]...
es que [ademas] 'tendrias que cargar' con otras 40 funciones
personalizadas [y unos cuantos Kb's]
que aunque son todas muy utiles... no son de uso 'frecuente' :(
[solo por no 'dejarlas en el tintero' y/o] por si fueran de utilidad
algunas alternativas...
____
-> UNA funcion personalizada:
en un modulo de codigo 'normal' ==> Function VerFormula(Celda As Range) As String
VerFormula = Celda.Cells(1, 1).FormulaLocal
End Function
=> [se puede 'obtener' lo mismo SIN macros 'pero' usando 'nombres' Y
macro-funciones de excel4]
____
-> suponiendo que [solo] interesa 'rescatar' el texto utilizado en la
formula ->valor p.e.<-
Function ValorEnFormula(Celda As Range) As String
Dim LaFormula As String, Pos1 As Byte
LaFormula = Mid(Celda.Cells(1, 1).Formula, 2)
Pos1 = InStr(LaFormula, """")
ValorEnFormula = Mid(LaFormula, Pos1 + 1, Len(LaFormula) - 2 - Pos1)
End Function
=> igual al caso anterior, es posible a traves de las macro-funciones de
excel4
____
-> una tercera alternativa [la mas sencilla] pudiera ser ->utilizar un
procedimiento 'a la inversa'<-
'poner' el texto en una celda y utilizar la funcion 'valor()' para
'convertirlo' en otra celda

saludos,
hector.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida