Al hilo de las tablas para calcular valores que comentaba en otro tema de este foro, se me plantea otro problema:
El valor que busco en las tablas, un número cualquiera, no coincide con ningún valor de los parámetros de la tabla, que sólo muestra resultados para números redondos, así que a interpolar. ¿hay alguna función que interpole entre dos puntos?
Y cuando la tabla es de doble entrada, ¿cómo se interpola cuando no coincide ni la abcisa ni la ordenada de la tabla con los valores que necesito?.
gracias.
Para interpolar linealmente no hay ninguna función específica, puesto que no es más que una operación aritmética.
Para interpolar linealmente y obtener el valor en x, conociendo los puntos (x1,y1) y (x2,y2), sería una fórmula como esta:
=_y1+(_x-_x1)/(_x2-_x1)*(_y2-_y1)
(He empleado guiones bajos para que no se confunda con referencias a celdas).
De todas maneras, se puede emplear por ejemplo la función PRONOSTICO con solamente dos puntos conocidos, para calcular el valor de la recta ajustada, que en este caso, con sólo dos puntos, pasaría por esos dos puntos.
Sería algo parecido a esto:
=PRONOSTICO(XdondecalcularY;valoresYconocidos;XcorrespondientesalasYconocidas)
Extrapolando el problema a un plano, donde en una tabla tenemos valores de un tercer parámetro Z que depende de las variables x e y, la interpolación lineal de Z en el área delimitada por las cuatro esquinas conocidas sería una superficie reglada, un paraboloide hiperbólico, que no es otra cosa que unir las esquinas con rectas según las direcciones x e y.
Para interpolar un valor en este caso, primero se interpolará linealmente en una dirección, por ejemplo en X en los valores extremos de y; después se interpolará linealmente en Y a partir de los valores calculados en el paso anterior, es decir, que hay que hacer tres interpolaciones lineales.
Con un ejemplo puede quedar algo más claro:Tendríamos una tabla de valores cuatro valores de Z similar a esta:
Interpolamos linealmente en _y1
=_z1+(_x-_x1)/(_x2-_x1)*(_z2-_z1)
a este resultado lo voy a llamar _z5
interpolamos linealmente en _y2
=_z3+(_x-_x1)/(_x2-_x1)*(_z4-_z3)
a este resultado lo voy a llamar _z6
Ahora interpolamos linealmente según la dirección "Y" entre _z5 y _z6
=_z5+(_Y-_y1)/(_y2-_y1)*(_z6-_z5)
Juntando todo esto en una única fórmula, quedaría algo así:
=(_z1+(_x-_x1)/(_x2-_x1)*(_z2-_z1))+(_Y-_y1)/(_y2-_y1)*((_z3+(_x-_x1)/(_x2-_x1)*(_z4-_z3))-(_z1+(_x-_x1)/(_x2-_x1)*(_z2-_z1)))
Aquí hay para entretenerse operando un rato.
Si quieres un complemento con funciones para interpolaciones polinómicas o Splines, mira en este enlace
------
Ya sé Excel, pero necesito más.
Esto está bien si manualmente buscamos los valores en la tabla entre los que interpolar
¿pero hay alguna manera de poder encontrar estos valores automaticamente? me explico, es posible que yo le diga a Excel que encuentre en la tabla el valor que corrresponde a un punto. es decir que interpole en la tabla automáticamente cuando yo le proporciono una X y una Y concretas.
mi cabeza es un mar de dudas
Sí hay una manera de que Excel busque los puntos en la tabla e interpole entre ellos.
Mira en esta página sobre encontrar un valor en una tabla
también mira aquí ejemplos de interpolar en una tabla de una dimensión y de interpolar en una tabla de dos dimensiones
------
Ya sé Excel, pero necesito más
------
Ya sé Excel, pero necesito más.
Al que pregunto si no hay una forma automática de hacer este calculo... Comprese una calcu HP o busca el programa para instalarla en la compu (lo malo es que hay que programarla), y aprende a usarla... Así solo ingresa datos y ya... le sale la respuesta...