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.

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.