En este artículo veremos como aplicar distintos porcentajes de subida de precios a un conjunto de datos utilizando funciones matriciales.

Partimos de este conjunto de artículos. A la columna precio se le ha dado el nombre de rngPrecios.

En nuestro escenario vamos a establecer 2 porcentajes de subida en función del precio actual. Indicaremos un valor límite que determinará hasta dónde se aplicará el % bajo y a partir de que valor se aplicará el % alto. Las celdas reciben los nombres de cldLimite, cldIncrementoBajo y cldIncrementoAlto, respectivamente.

Se trata de crear una única función que recorra todas las filas (BYROW) y que para cada fila lance una función LAMBDA tomando el precio de la fila e incrementándolo utilizando una función condicional SI. El resultado se redondeará hacía arriba con la función REDONDEAR.MAS.

Veamos paso a paso la creación de la función.

=BYROW(rngPrecios;LAMBDA(vValor;REDONDEAR.MAS(SI(vValor<cldLimite;vValor*(1+cldIncrementoBajo);vValor*(1+cldIncrementoAlto));2)))

Establecemos que se va a leer cada una de las filas del rango de precios.

=BYROW(rngPrecios;LAMBDA(vValor;REDONDEAR.MAS(SI(vValor<cldLimite;vValor*(1+cldIncrementoBajo);vValor*(1+cldIncrementoAlto));2)))

Para cada fila lanzaremos una función que invocamos con LAMBDA

=BYROW(rngPrecios;LAMBDA(vValor;REDONDEAR.MAS(SI(vValor<cldLimite;vValor*(1+cldIncrementoBajo);vValor*(1+cldIncrementoAlto));2)))

Cada precio leído en cada línea se almacena en una variable o parámetro que le damos el nombre de vValor.

=BYROW(rngPrecios;LAMBDA(vValor;REDONDEAR.MAS(SI(vValor<cldLimite;vValor*(1+cldIncrementoBajo);vValor*(1+cldIncrementoAlto));2)))

Para cada valor miramos si está por encima o por debajo del que se ha indicado como límite para seleccionar la celda que contiene el % de incremento.

=BYROW(rngPrecios;LAMBDA(vValor;REDONDEAR.MAS(SI(vValor<cldLimite;vValor*(1+cldIncrementoBajo);vValor*(1+cldIncrementoAlto));2)))

Al resultado obtenido le aplicamos un redondeo de 2 decimales al alza.


Una vez incluida la fórmula en la celda adecuada (la primera de la columna Nuevo precio), esta devuelve datos para todas las filas.

Deja un comentario si te gustó

Categorías: Excel

1 comentario

Julián Sánchez · 4 junio 2024 a las 5:56 pm

Enhorabuena por la página!!! Muchas gracias por compartir tu conocimiento.

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *