Herramientas

Función de interpolación lineal en Excel sin VBA

Microsoft Excel no cuenta actualmente con una función que nos permita obtener una interpolación lineal de una serie de datos. De modo que, para estimar el valor que tomaría una serie entre dos puntos es necesario hacerlo mediante las funciones de Excel o creando un macro. En el siguiente video se puede ver cómo crear una función para obtener la interpolación lineal en Excel sin necesidad de usar macros de VBA.

Cómo obtener la interpolación lineal entre dos puntos

Al conocer los valores para dos puntos de una serie de datos se puede estimar el resultado que se obtendrá entre ellos usando la fórmula de la interpelación lineal

y = y_1 + (x - x_1) \frac{y_2-y_1}{x_2-x_1}

en donde x es el punto sobre el que se desea obtener la estimación, x_1 la posición del primer punto, y_1 el valor del primer punto, x_2 la posición del segundo e x_2 el valor que toma la serie en el segundo.

Obtener los anteriores en una seria

En el caso de que solamente tengamos dos puntos, aplicar la expresión anterior en Excel no es un problema. Pero no así cuando se tienen una serie de datos. En primer lugar es necesario obtener para un valor de x dado los valores anteriores (x_1) y posteriores de la serie (x_2). Algo que se puede conseguir con la función de Excel COINCIDIR(). Función que, por defecto, devuelve la posición del valor buscado o mayor que no supere este. Así, si tenemos en la columna A las posiciones de la serie se puede obtener el índice del valor inferior a x con

=COINCIDIR(x;A2:A10)

reemplazando x por la celda donde se indica el valor a buscar. Para obtener el valor siguiente, solamente se debería sumar 1 al resultado de esta función.

Ahora, una vez obtenida en índice de la posición inmediatamente anterior x, se puede obtener su valor mediante la función INDICE(). De este modo siguiendo con el ejemplo el valor de x_1 se puede obtener con

=INDICE(A2:A10; COINCIDIR(x;A2:A10))

Para el caso de y_1 solamente se debería cambiar la columna A en el primer parámetro de INDICE() por aquella donde se encuentre el valor. Si esta es B, se puede obtener con

=INDICE(B2:B10; COINCIDIR(x;A2:A10))

Por otro lado, para conseguir x_2 e y_2 solamente hay que sumar uno al resultado de COINCIDIR(). De este modo, x_2 se puede conseguir con

=INDICE(A2:A10; COINCIDIR(x;A2:A10)+1)

mientras que y_2 será con

=INDICE(B2:B10; COINCIDIR(x;A2:A10)+1)

Ahora solo nos queda aplicar la fórmula de la interpolación lineal en una nueva celda de la hoja de cálculo.

Problemas fuera de rango

Si asignamos un valor fuera del rango de la serie la función no es válida. O bien los valores de x_1 e x_2 serán el mismo, cuando x esté por debajo del primer valor de la serie, o no contaremos con un valor para x_2, cuando el valor de x esté por encima del último de la serie. Para solucionar este problema se puede recurrir a la función SI() con la que comprobaremos estos casos y daremos un resultado para ello. Por ejemplo, se podría hacer algo como

=SI(E1<A2;B2;SI(E1>A10;B10;E9))

en donde E1 es el valor a buscar, A2 es el primer valor de la serie, A10 el último y el resultado se encuentra en la celda E9. A diferencia de como se muestra en el video, para que nuestra trabajo con cualquier serie de datos se puede condicionar el resultado al último valor de una columna en Excel.

Conclusiones

En esta entrada hemos visto cómo implementar una función de interpolación lineal en Excel sin la necesidad de recurrir a VBA. Algo que puede ser de utilidad cuando necesitemos obtener estimaciones de valores que no tenemos en nuestra serie de datos.

A continuación, os dejo la hoja de cálculo que se ha creado en el video.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: ExcelYouTube

Recent Posts

Síndrome del objeto brillante en ciencia de datos: el error simétrico a los costes hundidos

Hace poco publiqué una entrada en la que trataba de un sesgo bien documentado: aferrarse…

4 días ago

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

6 días ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

7 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

2 semanas ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

2 semanas ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

3 semanas ago

This website uses cookies.