Alternativa por código a listas desplegables

A menudo necesitamos listar una serie de valores que nos servirán de opciones para realizar cálculos. En una liquidación de sueldos, por ejemplo, el resultado variará dependiendo del porcentaje de retenciones aplicable a cada empleado.

Para ello, básicamente, Excel nos ofrece 3 posibilidades: escribir el porcentaje a mano en cada caso, confeccionar una lista desplegable que contenga los valores vigentes, o elaborar una tabla por nuestra cuenta y asignarle un código numérico a cada porcentaje.

La ventaja de este último método reside en que lo creamos nosotros mismos y, por lo tanto, tenemos mayor control sobre él, pudiendo realizar tantas variaciones y mejoras como nos sea necesario. Además, es más portable, ya que podemos copiarlo y pegarlo en otro documento y aprovecharlo sin muchas modificaciones.

Para este ejemplo, tenemos dos tablas muy sencillas, que observamos a continuación:

La función que se encargará de tomar el porcentaje de descuento correspondiente al valor ingresado la ubicaremos en la celda del Total y es la siguiente:

A2 - A2 * INDICE(F2:F6, INDICE(B2, 1, 1), 1) / 100

Notemos en primer lugar que estamos haciendo uso de INDICE, que, con esta implementación, devuelve el valor de una celda en particular, que se encuentra en el rango indicado por nosotros. Aquí le pedimos que se dirija a la lista de porcentajes, que se encuentra entre F2 y F6, y que nos traiga el número indicado por el valor de B2, la casilla en la que ingresamos el Código de descuento. Finalmente, resta el porcentaje al monto indicado en A2.

Quizás se pregunten por qué utilizamos INDICE(B2, 1, 1) en lugar de indicar simplemente B2; la respuesta es que Excel no acepta este último caso, ya que lo considera una constante, mientras que el tipo de valor que espera para ese parámetro es numérico.

Por último, demos un toque más sofisticado a nuestra función, agregando control de datos, para evitar un error si se ingresa un código de descuento inexistente:

=SI(Y(B2 >= 1, B2 <= 5), A2 - A2 * INDICE(F2:F6, INDICE(B2, 1, 1), 1) / 100, 0)

La función SI chequeará que el valor ingresado sea mayor o igual a 1 y menor o igual a 5, que son los códigos disponibles en nuestra tabla. En cualquier otro caso, incluyendo valores de tipos no numéricos, devolverá un 0.

Contenido relacionado:
Compartirlo
Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.


Déjenos su opinión

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.