Nivel de programación: Principiante
Duración: 10 minutos
Tipo de proyecto: Función personalizada
Objetivos
- Comprende lo que hace la solución.
- Comprender lo que hacen los servicios de Apps Script dentro de la solución
- Configura la secuencia de comandos.
- Ejecuta la secuencia de comandos.
Acerca de esta solución
Si ofreces un sistema de precios por niveles a tus clientes, esta función personalizada facilita el cálculo de los importes de descuento para tus precios.
Si bien puedes usar la función integrada SUMPRODUCT
para realizar un cálculo de precios por niveles, el uso de SUMPRODUCT
es más complejo y menos flexible que la función personalizada de esta solución.
Cómo funciona
Un modelo de precios por niveles significa que el costo de bienes o servicios disminuye en función de la cantidad comprada.
Por ejemplo, imagina que tienes dos niveles, uno que varía de $0 a $500 y tiene un descuento del 10%, y otro que oscila entre $501 y $1,000, y tiene un 20% de descuento. Si el precio total para el que necesitas calcular un descuento es de $700, la secuencia de comandos multiplica los primeros $500 por un 10% y los $200 restantes en un 20%, con un descuento total de $90.
Para un precio total determinado, la secuencia de comandos realiza un bucle a través de los niveles especificados en la tabla de precios de los niveles. Por cada parte del precio total que se encuentra dentro de un nivel, esa parte se multiplica por el valor porcentual asociado del nivel. El resultado es la suma del cálculo de cada nivel.
Servicios de Apps Script
En esta solución, se usa el siguiente servicio:
- Servicio de hoja de cálculo: Toma el valor dado y calcula qué parte del valor multiplicar por el porcentaje de descuento de cada nivel.
Requisitos previos
Para usar esta muestra, necesitas los siguientes requisitos previos:
- Una Cuenta de Google (es posible que las cuentas de Google Workspace requieran la aprobación del administrador)
- Un navegador web con acceso a Internet
Configura la secuencia de comandos
Haz clic en el botón que aparece a continuación para crear una copia de la hoja de cálculo Tier Pricing custom function (Función personalizada de precios de niveles). El proyecto de Apps Script correspondiente a esta solución se adjunta a la hoja de cálculo.
Crear una copia
Ejecuta la secuencia de comandos:
- En la hoja de cálculo que copiaste, la tabla en la fila 16 muestra un cálculo de precio de muestra para un producto de software como servicio (SaaS).
- Para calcular el importe de descuento, ingresa
=tierPrice(C19,$B$3:$D$6)
en la celdaC20
. El precio final se actualizará en la celdaC21
. Si te encuentras en una ubicación que usa comas decimales, es posible que debas ingresar=tierPrice(C19;$B$3:$D$6)
en su lugar.
Revisa el código
Si deseas revisar el código de Apps Script para esta solución, haz clic en Ver código fuente a continuación:
Ver el código fuente
Code.gs
Modificaciones
Puedes editar la función personalizada tantas veces como quieras, según tus necesidades. A continuación, se muestra una adición opcional para actualizar manualmente los resultados de las funciones personalizadas.
Actualizar resultados almacenados en caché
A diferencia de las funciones integradas, Google almacena en caché las funciones personalizadas para optimizar el rendimiento. Por lo tanto, si cambias algo en tu función personalizada, como un valor que se está calculando, es posible que no se fuerce una actualización de inmediato. Para actualizar el resultado de la función de forma manual, sigue estos pasos:
- Para agregar una casilla de verificación a una celda vacía, haz clic en Insertar > Casilla de verificación.
- Agrega la celda que tiene la casilla de verificación como parámetro adicional de la función personalizada. Por ejemplo, si agregas una casilla de verificación a la celda
D20
, actualiza la funcióntierPrice()
en la celdaC20
a=tierPrice(C19,$B$3:$D$6,D20)
. - Marca o desmarca la casilla de verificación para actualizar los resultados de la función personalizada.
Colaboradores
Google mantiene esta muestra con la ayuda de Expertos de Google Developers.