Pregunta difícil, porque no doy con la forma de hacerlo

19/02/2006 - 18:26 por -David- | Informe spam
Vamos a ver si me explico, no estoy seguro de que se pueda hacer, pero allá
va:
me vendría bien poder construir una fórmula que pudiera variar respecto de
otra celda según lo que se escriba en esa otra, cuando esa otra tenga
formato de texto y tenga puesto
=hoy()
el contenido de esa otra celda varíe para que sea la fórmula
=hoy()
y si en la celda que está como texto pusiera
=hoy()-10
en la celda que contiene la fórmula el contenido de la celda fuera
=hoy()-10

En resumidas palabras, lo que quiero es que al hacer referencia a otra celda
me haga referencia o me modifique la fórmula, no el valor.
La idea es poder modificar muchas fórmulas generadas por un arrastre de
celdas, pera que cuando necesite modificar todas esas celdas con fórmulas
generadas por un arrastre (cosa que necesitaré) solamente con modificar lo
que hay escrito en la fórmula de la que dependen todas se actualizen
enseguida, sin necesidad de arrastrarlas de nuevo.
Lo que pasa es que tampoco he conseguido que en una celda aparezca algo como
una fórmula sin que no lo trate como tal, siempre que lleve el signo igual
al principio, aunque esté en formato de texto. Para poder hacer esto último
que he citado tendría meter lo que hay después del signo igual entre
comillas.
Para este caso creo que me vendrá bien la función de concatenar.
Gracias

Preguntas similare

Leer las respuestas

#1 -David-
26/02/2006 - 00:36 | Informe spam
Hola, gracias por contestar, la verdad es que me he quedado un poco perplejo
por tu respuesta, motivos:
-lo del apostrofo si que habia visto en alguna celda, pero ahora que miro la
ayuda veo que es un caracter de control
-lo de "evaluar(!A1)" no se lo que hace, y no lo encuentro en la ayuda
-no se por que pones esa parte de la formula que dice "0*hoy()", si
multiplicas un valor por 0 siempre te dara 0.
-los resultados a mostrar no seran siempre numericos, algunas veces seran
logicos.
-he probado a poner una formula como 'c8*c9 y resulta que funciona, es
decir, que este metodo que me has dicho parece que me sirve. Ademas, al
arrastrar la celda que tiene lo del apostrofo me rellena la serie como si
fuera una formula normal.

Mil gracias

Hola David,

No se si te he entendido bien, pero...

Suponiendo que:
1) tienes cadenas de texto que representan formulas en la columna [A],


p.ej.: en la celda [A1] esta '=HOY() (fijate bien en el
apostrofe al principio que hace que la formula no se interprete como tal)
2) quieres que en la columna [B] se calculen las formulas puestas en la


columna [A], p.ej.: que la celda [B1] devuelva 38767 (que es
el numero de serie de la fecha de hoy)
3) la formula en formato texto siempre es una celda adyacente a mano


izquierda respecto a la que la usa
4) tus formulas siempre devuelven valores numericos (fechas incluidas)
5) siempre usaras tu archivo bajo el Office en castellano

Prueba los siguiente:

1) selecciona la celda [B1]
2) ve al menu Insertar>Nombre>Definir...
3) nombre: CALCULAR
4) se refiere a: =EVALUAR(!A1)+0*HOY()
5) boton Anadir, boton Aceptar
6) en la celda [B1] introduce la siguiente formula y copiala hacia abajo:
ÊLCULAR

Nota1: Esta solucion usa MacroFunciones de Excel4 (XLM) que tienen un


"bug": al intentar copiar una formula que contiene un nombre
que usa MacroFunciones a otra hoja (en este cao ÊLCULAR) se produce el


fallo de la aplicacion de Excel con la consiguiente perdida
de todos los cambios no guardados.

Nota2: Esta solucion se puede usar en cualquier hoja sin tener que crear


el nombre CALCULAR para cada una de ellas.

Nota3: Las celdas con formulas-texto y las que las calculan no tienen por


que estar en las columnas celdas indicadas arriba, pero
siempre la que calcula tiene que estar justo a mano derecha y pegada a la


de la formula-texto.

Saludos,
KL


y calcularla en otra y quieres evitar los macros, podrias probar
"-David-" wrote in message


news:RT1Kf.162054$
> Vamos a ver si me explico, no estoy seguro de que se pueda hacer, pero


allá
> va:
> me vendría bien poder construir una fórmula que pudiera variar respecto


de
> otra celda según lo que se escriba en esa otra, cuando esa otra tenga
> formato de texto y tenga puesto
> =hoy()
> el contenido de esa otra celda varíe para que sea la fórmula
> =hoy()
> y si en la celda que está como texto pusiera
> =hoy()-10
> en la celda que contiene la fórmula el contenido de la celda fuera
> =hoy()-10
>
> En resumidas palabras, lo que quiero es que al hacer referencia a otra


celda
> me haga referencia o me modifique la fórmula, no el valor.
> La idea es poder modificar muchas fórmulas generadas por un arrastre de
> celdas, pera que cuando necesite modificar todas esas celdas con


fórmulas
> generadas por un arrastre (cosa que necesitaré) solamente con modificar


lo
> que hay escrito en la fórmula de la que dependen todas se actualizen
> enseguida, sin necesidad de arrastrarlas de nuevo.
> Lo que pasa es que tampoco he conseguido que en una celda aparezca algo


como
> una fórmula sin que no lo trate como tal, siempre que lleve el signo


igual
> al principio, aunque esté en formato de texto. Para poder hacer esto


último
> que he citado tendría meter lo que hay después del signo igual entre
> comillas.
> Para este caso creo que me vendrá bien la función de concatenar.
> Gracias
>
>

Respuesta Responder a este mensaje
#2 KL
26/02/2006 - 01:02 | Informe spam
Hola David,

-lo del apostrofo si que habia visto en alguna celda, pero ahora que miro la
ayuda veo que es un caracter de control



El anteponer un apostrofo a cualquier valor en celda lo convierte en texto.

-lo de "evaluar(!A1)" no se lo que hace, y no lo encuentro en la ayuda



Lo que hace es calcular la formula que se pasa como parametro en formato texto. Es una funcion de XLM (el lenguaje de programacion
que se uso en Excel antes del VBA)

-no se por que pones esa parte de la formula que dice "0*hoy()", si
multiplicas un valor por 0 siempre te dara 0.



Esto es necesario para hacer volatil la formula aignada al nombre definido. Dado que la funcion HOY() es volatil por excelencia nos
aseguramos de que la formula recalcule cada vez que recalcule cualquier celda del libro. De lo contrario el nombre definido solo
recalcularia si cambie la formula-texto, pero no las celdas que usa dicha formula-texto.

-los resultados a mostrar no seran siempre numericos, algunas veces seran
logicos.



Ojo - dado que tenemos esta operacion adicional +0*HOY() los valores logicos se devolverian como 1 (VERDADERO) o 0 (FALSO)

arrastrar la celda que tiene lo del apostrofo me rellena la serie como si
fuera una formula normal.



Es un comportamiento normal cuando hay numeros dentro de una cadena de texto y despues del numero no hay nada.

Saludos,
KL
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida