Requerimientos:
- Conocimientos básicos de vba
- Uso de tablas / rangos con nombre
Cuando se trabaja con libros de trabajo de forma intermitente, a veces meses entre las revisiones del libro de trabajo puede ser difícil recordar la estructura de datos y la configuración de la fórmula.
Así es como soluciono este problema y me aseguro de tener una descripción general de los cálculos realizados en unos minutos.
En este ejemplo, mostraré cómo se puede simplificar una fórmula para calcular las bonificaciones.
Aspecto de la fórmula sin tabla ni UDF
Fórmula:
= SI (SUMA (C2 / D2) = 3; SUMA ((C2-D2) * 0,03); SI (Y (SUMA (C2 / D2)> 1; SUMA (C2 / D2) <3) = VERDADERO; SUMA ((C2-D2) * 0,02); 1)))
La lógica de esta fórmula puede ser difícil de extraer a primera vista.
Aspecto de la fórmula con tabla y sin UDF
Fórmula:
= SI (SUMA ([@ [Ventas anuales]] / [@ Salario]) = 3; SUMA (([@ [Ventas anuales]] - [@ Salario]) * 0,03); SI (Y (SUMA ([ @ [Ventas anuales]] / [@ Salario])> 1; SUM ([@ [Ventas anuales]] / [@ Salario]) <3) = TRUE; SUM (([@ [Ventas anuales]] - [@ Salario ]) * 0,02); 1)))
Con las tablas, es un poco más fácil de leer, ya que se le informa de las celdas utilizadas en el cálculo.
Aspecto de la fórmula con tabla y UDF
Función definida por el usuario insertada en un módulo:
'Prefiero tener títulos de funciones largos y descriptivos que títulos cortos y no descriptivos
Función calculate_salary_to_sale_ratio_and_return_bonus (ventas anuales como el doble, salario como el doble) como el doble
Dim salary_to_sale_ratio como doble
Atenuar bonus_factor como doble
Dim return_bonus como doble
salary_to_sale_ratio = ventas anuales / salario
Seleccionar caso salario_to_sale_ratio
Caso 1 a 3
bonus_factor = 0.02
El caso es> 3
bonus_factor = 0.03
Caso otro
bonus_factor = 0 #
Finalizar Seleccionar
return_bonus = (ventas anuales - salario) * bonus_factor
calcular_salario_para_relación_de_venta_y_bonus_return = return_bonus
Función final
Uso de la función
Fórmula:= calcular_salario_para_relación_de_venta_y_bonos_de_devolución ([@ [Ventas anuales]]; [@ Salario])Esto le dice exactamente lo que está sucediendo a primera vista, y siempre puede profundizar en el código para leer los detalles. Se adjunta un archivo que demuestra los tres escenarios