En esta ocasión les traigo una función personalizada para Calc de LibreOffice que sirve para calcular el ISR anual con la información actualizada para el año 2021.
La fórmula
Según me explicaron, esta es la fórmula para calcular el ISR anual:
Los valores de Límite inferior y el Porcentaje sobre excedente se obtienen a partir de esta Tabla publicada por el SAT.
El código de la función
Si quiere agregar manualmente este código, las instrucciones para hacerlo son muy similares a las de este otro artículo Función para convertir de número a cantidad con letra en LibreOffice Calc.
REM ***** BASIC ***** Option Explicit Function ISR_Anual_2021(ByVal PercepcionesGravables As Double) As Double '***************************************************************************************************** ' FUNCION PARA CALCULAR EL ISPT ANUAL ' Copyright (C) 2021 Francisco Javier de la Torre ' ' Este código es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la ' Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la ' versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior. ' Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso ' sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. ' Véase la Licencia Pública General de GNU para más detalles. ' Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha ' sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. ' ' LinuxmanR4 ' https://linuxmanr4.com ' 2021 '***************************************************************************************************** Dim ISR_anual(11, 2) As Double Dim SUBSIDIO_AL_EMPLEO_ANUAL(11, 1) As Double Dim ISR_LimiteInferior As Double Dim CuotaFija As Double Dim PorcentajeSobreExcedente As Double Dim i As Integer Dim ISR As Double 'Definición de las tablas iniciales 'ISR ANUAL '============================== 'Limite inferior ISR_anual(0, 0) = 0.01 ISR_anual(1, 0) = 7735.00 ISR_anual(2, 0) = 65651.07 ISR_anual(3, 0) = 115375.90 ISR_anual(4, 0) = 134119.41 ISR_anual(5, 0) = 160577.65 ISR_anual(6, 0) = 323862.00 ISR_anual(7, 0) = 510451.00 ISR_anual(8, 0) = 974535.03 ISR_anual(9, 0) = 1299380.04 ISR_anual(10, 0) = 3898140.12 ISR_anual(11, 0) = 999999999 'Limite superior muy alto 'Cuota fija ISR_anual(0, 1) = 0 ISR_anual(1, 1) = 148.51 ISR_anual(2, 1) = 3855.14 ISR_anual(3, 1) = 9265.20 ISR_anual(4, 1) = 12264.16 ISR_anual(5, 1) = 17005.47 ISR_anual(6, 1) = 51883.01 ISR_anual(7, 1) = 95768.74 ISR_anual(8, 1) = 234993.95 ISR_anual(9, 1) = 338944.34 ISR_anual(10, 1) = 1222522.76 ISR_anual(11, 1) = 0 'Porcentaje sobre excedente ISR_anual(0, 2) = 0.0192 ISR_anual(1, 2) = 0.064 ISR_anual(2, 2) = 0.1088 ISR_anual(3, 2) = 0.16 ISR_anual(4, 2) = 0.1792 ISR_anual(5, 2) = 0.2136 ISR_anual(6, 2) = 0.2352 ISR_anual(7, 2) = 0.3 ISR_anual(8, 2) = 0.32 ISR_anual(9, 2) = 0.34 ISR_anual(10, 2) = 0.35 ISR_anual(11, 2) = 0 'Iniciamos el cálculo del ISR anual. CuotaFija = 0: PorcentajeSobreExcedente = 0 'Buscamos un valor apropiado en la tabla del ISR Anual i = 0 Do If ISR_anual(i, 0) > PercepcionesGravables Then ISR_LimiteInferior = ISR_anual(i - 1, 0) CuotaFija = ISR_anual(i - 1, 1) PorcentajeSobreExcedente = ISR_anual(i - 1, 2) Exit Do Else i = i + 1 End If Loop Until i = 12 'Ya tenemos los valores de Cuota Fija y Porcentaje sobre excedente, procedemos a calcular el ISR Anual ISR = CuotaFija + ((PercepcionesGravables - ISR_LimiteInferior) * PorcentajeSobreExcedente) ISR_anual_2021 = Format(ISR,"000000000000000.00") End Function
O si lo prefiere puede descargar el archivo para que lo modifique a su gusto. Le recuerdo que le saldrán algunas advertencias de seguridad, pero es normal porque efectivamente, este archivo sí incluye macros.
El código base ya estaba hecho, porque se basa en este otro Función para calcular el ISPT 2014 en Excel y LibreOffice solo tuve que cambiar los nombres de algunas variables de ISPT a ISR y actualizar las tablas de cálculo.
Supongo que es posible ejecutar este código en Excel, pero no quise adentrarme mucho en el tema, porque la verdad es que los Office modernos ya están muy raros.
Les advierto que no soy contador y no estoy muy al tanto de todos los cambios en materia de impuestos. Así que si notan cualquier error o imprecisión, por favor haganmelo saber en un comentario.
¡Hasta la próxima!