Hola, tengo una duda sobre hoja de cálculo EXCEL.

Hola, tengo una duda sobre hoja de cálculo EXCEL aparentemente sencilla pero me esta dando muchos quebraderos de cabeza y no consigo hacerlo:
Se trata, en una columna, de obtener en la última casilla de dicha columna la resta entre el último valor que haya en la columna y el primer valor de la misma columna. El problema viene en que cada día he de añadir un nuevo valor a la columna y tengo que rehacer la fórmula de la resta en la última casilla (la del resultado de la resta) de dicha columna, no se si me explico. En definitiva lo que necesito es que en la fórmula de la resta de la última casilla de la columna me detecte automáticamente el ultimo valor introducido en la columna para hacer la operación.
A ver si me podéis ayudar.
Gracias.

1 respuesta

Respuesta
1
Por ejemplo, si la columna es la A la fórmula podría ser:
=BUSCAR(9,99999999999999E+307;A:A)-A1
Gracias por tu respuesta pero no entiendo lo del 9,99999999999E+307
Te pongo el caso concreo a ver si así lo puedes probar y confirmarme que funciona:
En la columna A tengo estos valores:_
A1=10
A2=14
A3=9
A4=5
A6=
A7=
A8=
A9=
A10=(A4-A1)= -5
Como ves el resultado de a10 (casilla final de la columna) es la resta entre el ultimo valor de la columna (5) y el primero (10), que es -5.
Bien, el resto de casillas de la columna no tiene datos, se añaden diariamente. Mañana añado el dato para A6, por ejemplo 15. Entonces el resultado de A10 seria 15-10= 5, pero para obtenerlo debo modificar la fórmula de A10 cada vez que meto un valor nuevo en la columna A ya que no se como hacer para que en la fórmula de A10 me reconozca el último valor añadido a la columna, así seguramente se entiende mejor mi duda. Si puedes resolver la columna que pongo de ejemplo para comprobarla te lo agradecería.
Saludos y gracias.
La fórmula funciona sin problemas (estoy harto de usar variantes suyas), pero lo que no puede suceder es que la celda con la fórmula se encuentre en la misma columna que los datos, porque de ser así se produce una referencia circular (la función BUSCAR de la fórmula devuelve la dirección de la celda en la que se encuentra la propia fórmula dado que, en efecto, se trata de la última celda con datos de la columna).
Si pones la fórmula en cualquier celda no perteneciente a la columna A verás que funciona sin problemas.
En cualquier caso, si la fórmula ha de ir necesariamente en A10, puedes usar la siguiente fórmula matricial (hay que introducirla pulsando mayúsculas control entrada al mismo tiempo):
=DESREF(A1;MAX((A1:A9<>"")*FILA(A1:A9))-1;)-A1
Gracias, he introducido la fórmula que me das, sustituyendo A1 y A9 por las casillas reales que en mi caso son F50 y F80, y en F81 iría el resultado. El resultado si que debe ir al final de la columna ya que debe mostrarse justo debajo del último valor que se introduce (F81) en la columna F.
Pues bien, escribo la fórmula y pulso May+crtl y mientras los mantengo pulsado doy intro, entonces la fórmula se introduce y aparece entre corchetes, justo así:
{=DESREF(F50;MAX((F50:F80<>"")*FILA(F50:F80))-1;)-F50}
Pero el valor que me aparece en F81 es el mismo valor que en F80, es decir el mismo valor que el introducido en la primera casilla de la columna...¿qué he hecho mal?
Yo uso la excel a nivel bastante básico, sumas restas, operaciones básicas, gráficos básicos, etc, no estoy familiarizado con bucles, matrices, macros y operaciones complejas por eso esto me resulta difícil de entender y por eso pedía una fórmula concreta como la que me has enviado, pero algo he de estar haciendo mal porque no funciona. Si no es mucha molestia podría enviarte a un correo privado la hoja con solo la columna en cuestión a ver si lo puedes resolver porque me trae loco. Por ejemplo en la fórmula que me das no entiendo porque hay que incluir "FILA(F50:F80)" en la fórmula, suponque que tiene su razón pero como te digo no lo entiendo.
Gracias
Lo único que tienes que hacer es sustituir el -1 de la fórmula por -50
Sin usar una fórmula matricial, sería necesaria una columna auxiliar, pongamos que la G. En G50 iría la fórmula
=SI(F50<>"";FILA())
Que habría que copiar y pegar en el rango G51:G80. Con esto averiguaríamos los números de fila de las celdas en el rango F50:F80 que tienen datos.
En F81 iría:
=DESREF(F50;MAX(G50:G80)-50;)-F50
La función MAX averigua cual es el número de fila más alto en el rango G50:G80 (esto es, la última fila que tiene datos en el rango F50:F80), y DESREF desplaza ese número de filas a partir de F50. Son todas operaciones básicas para una hoja de cálculo.
Pues bien, la fórmula matricial hace exactamente lo mismo, con la diferencia de que es capaz de "concentrar" todos los pasos en una sola fórmula, con lo que se hace innecesario el uso de una columna auxiliar.
Muchas gracias ahora con el cambio que me has dicho funciona perfecto.
Saludos
Pues si está solucionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas