Función para calcular el ISPT 2014 en Excel y LibreOffice

Hace ya algunos años desarrollé una función similar a la que hoy les comparto y la pueden ver en el artículo Función en Excel para calcular el ISPT anual.

ISPT 2014 en Excel y Libreoffice

Nuevamente la rescato del baúl del programador para hacerle algunas modificaciones. En primer lugar, la actualización de los valores de la tabla que sirve para el cálculo que corresponden al ejercicio 2014 y además de que en esta ocasión me pidieron que ya no descontara el subsidio anual y solamente hiciera el cálculo del ISPT.

La Fórmula

Según me explicaron, esta es la fórmula que se utiliza para calcular el ISPT:

Fórmula para calcular el ISPT

El asunto se complica un poco porque varios de los valores se buscan en una tabla dependiendo de las Percepciones Gravables.

Tabla para el cálculo del ISPT 2014
Fig.1 Tabla utilizada para hacer los cálculos.

Por eso creo que el mejor enfoque fue hacer una función para Excel y otra para LibreOffice que hicieran de manera automática la búsqueda de los valores y el cálculo del impuesto.

Código de la función para Excel

Inicialmente desarrolle esta función para Excel ya que es el programa que generalmente usan los contadores.

Function ISPT_Anual_2014(ByVal PercepcionesGravables As Double) As Double
 
'*****************************************************************************************************
' FUNCION PARA CALCULAR EL ISPT ANUAL
' Copyright (C) 2012 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.
'
' Francisco Javier de la Torre.
' https://linuxmanr4.com
' inguanzo@gmail.com
'
' Actualización para el año 2014.
' Actualizacion y Correcciones para el 2012 gracias a Glezco21 y GRR.
'
'*****************************************************************************************************
    Dim ISPT_anual(11, 2) As Double
    Dim SUBSIDIO_AL_EMPLEO_ANUAL(11, 1) As Double
    Dim ISPT_LimiteInferior As Double
    Dim CuotaFija As Double
    Dim PorcentajeSobreExcedente As Double
    Dim i As Integer
    Dim ISPT As Double

    'Definición de las tablas iniciales
   
    'ISPT ANUAL
    '==============================
    'Limite inferior
    
    ISPT_anual(0, 0) = 0.01
    ISPT_anual(1, 0) = 5952.85
    ISPT_anual(2, 0) = 50524.93
    ISPT_anual(3, 0) = 88793.05
    ISPT_anual(4, 0) = 103218.01
    ISPT_anual(5, 0) = 123580.21
    ISPT_anual(6, 0) = 249243.49
    ISPT_anual(7, 0) = 392841.97
    ISPT_anual(8, 0) = 750000.01
    ISPT_anual(9, 0) = 1000000.01
    ISPT_anual(10, 0) = 3000000.01
    ISPT_anual(11, 0) = 999999999   'Limite superior muy alto
   
    'Cuota fija
    ISPT_anual(0, 1) = 0
    ISPT_anual(1, 1) = 114.29
    ISPT_anual(2, 1) = 2966.91
    ISPT_anual(3, 1) = 7130.48
    ISPT_anual(4, 1) = 9438.47
    ISPT_anual(5, 1) = 13087.37
    ISPT_anual(6, 1) = 39929.05
    ISPT_anual(7, 1) = 73703.41
    ISPT_anual(8, 1) = 180850.82
    ISPT_anual(9, 1) = 260850.81
    ISPT_anual(10, 1) = 940850.81
    ISPT_anual(11, 1) = 0
    
    'Porcentaje sobre excedente
    ISPT_anual(0, 2) = 0.0192
    ISPT_anual(1, 2) = 0.064
    ISPT_anual(2, 2) = 0.1088
    ISPT_anual(3, 2) = 0.16
    ISPT_anual(4, 2) = 0.1792
    ISPT_anual(5, 2) = 0.2136
    ISPT_anual(6, 2) = 0.2352
    ISPT_anual(7, 2) = 0.3
    ISPT_anual(8, 2) = 0.32
    ISPT_anual(9, 2) = 0.34
    ISPT_anual(10, 2) = 0.35
    ISPT_anual(11, 2) = 0
    
    'Iniciamos el cálculo del ISPT anual.
   
    CuotaFija = 0: PorcentajeSobreExcedente = 0
    'Buscamos un valor apropiado en la tabla del ISPT Anual
    i = 0
    Do
        If ISPT_anual(i, 0) > PercepcionesGravables Then
            ISPT_LimiteInferior = ISPT_anual(i - 1, 0)
            CuotaFija = ISPT_anual(i - 1, 1)
            PorcentajeSobreExcedente = ISPT_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 ISPT Anual
   
    ISPT = CuotaFija + ((PercepcionesGravables - ISPT_LimiteInferior) * PorcentajeSobreExcedente)
    
    ISPT_Anual_2014 = Round(ISPT, 2)
    
End Function

Código de la función para LibreOffice

El código para LibreOffice es muy similar al de Excel, solo se cambio la función Round por Format para que el resultado lo muestre solamente con 2 decimales.

REM  *****  BASIC  *****

Function ISPT_Anual_2014(ByVal PercepcionesGravables As Double) As Double
 
'*****************************************************************************************************
' FUNCION PARA CALCULAR EL ISPT ANUAL
' Copyright (C) 2012 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.
'
' Francisco Javier de la Torre.
' https://linuxmanr4.com
' inguanzo@gmail.com
'
' Actualización para el año 2014.
' Actualizacion y Correcciones para el 2012 gracias a Glezco21 y GRR.
'
'*****************************************************************************************************
    Dim ISPT_anual(11, 2) As Double
    Dim SUBSIDIO_AL_EMPLEO_ANUAL(11, 1) As Double
    Dim ISPT_LimiteInferior As Double
    Dim CuotaFija As Double
    Dim PorcentajeSobreExcedente As Double
    Dim i As Integer
    Dim ISPT As Double

    'Definición de las tablas iniciales
   
    'ISPT ANUAL
    '==============================
    'Limite inferior
    
    ISPT_anual(0, 0) = 0.01
    ISPT_anual(1, 0) = 5952.85
    ISPT_anual(2, 0) = 50524.93
    ISPT_anual(3, 0) = 88793.05
    ISPT_anual(4, 0) = 103218.01
    ISPT_anual(5, 0) = 123580.21
    ISPT_anual(6, 0) = 249243.49
    ISPT_anual(7, 0) = 392841.97
    ISPT_anual(8, 0) = 750000.01
    ISPT_anual(9, 0) = 1000000.01
    ISPT_anual(10, 0) = 3000000.01
    ISPT_anual(11, 0) = 999999999   'Limite superior muy alto
   
    'Cuota fija
    ISPT_anual(0, 1) = 0
    ISPT_anual(1, 1) = 114.29
    ISPT_anual(2, 1) = 2966.91
    ISPT_anual(3, 1) = 7130.48
    ISPT_anual(4, 1) = 9438.47
    ISPT_anual(5, 1) = 13087.37
    ISPT_anual(6, 1) = 39929.05
    ISPT_anual(7, 1) = 73703.41
    ISPT_anual(8, 1) = 180850.82
    ISPT_anual(9, 1) = 260850.81
    ISPT_anual(10, 1) = 940850.81
    ISPT_anual(11, 1) = 0
    
    'Porcentaje sobre excedente
    ISPT_anual(0, 2) = 0.0192
    ISPT_anual(1, 2) = 0.064
    ISPT_anual(2, 2) = 0.1088
    ISPT_anual(3, 2) = 0.16
    ISPT_anual(4, 2) = 0.1792
    ISPT_anual(5, 2) = 0.2136
    ISPT_anual(6, 2) = 0.2352
    ISPT_anual(7, 2) = 0.3
    ISPT_anual(8, 2) = 0.32
    ISPT_anual(9, 2) = 0.34
    ISPT_anual(10, 2) = 0.35
    ISPT_anual(11, 2) = 0
    
    'Iniciamos el cálculo del ISPT anual.
   
    CuotaFija = 0: PorcentajeSobreExcedente = 0
    'Buscamos un valor apropiado en la tabla del ISPT Anual
    i = 0
    Do
        If ISPT_anual(i, 0) > PercepcionesGravables Then
            ISPT_LimiteInferior = ISPT_anual(i - 1, 0)
            CuotaFija = ISPT_anual(i - 1, 1)
            PorcentajeSobreExcedente = ISPT_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 ISPT Anual
   
    ISPT = CuotaFija + ((PercepcionesGravables - ISPT_LimiteInferior) * PorcentajeSobreExcedente)
    
    ISPT_Anual_2014 = Format(ISPT,"000000000000000.00")
    
End Function

Software Libre

Los códigos de las funciones son software libre (libertad para usar,copiar y modificar). Aunque hice varias pruebas y lo verifiqué varias veces haciendo el cálculo manualmente no esta exento de errores, así que les pido que si notan algún “detallito” o error, por favor no dejen de reportarlo.

Para que no batallen, les dejo este archivo zip ISPT 2014 v20140212 que incluye sendos ejemplos en Excel y Libreoffice.

Espero que esta función les sea de utilidad a los amigos contadores que siendo honestos, les deberían de dar una medalla por hacer de estos cálculos su trabajo cotidiano.

2 comentarios en “Función para calcular el ISPT 2014 en Excel y LibreOffice”

  1. Hola LinuxmanR4,

    Pude parecer un poco descortés en mi comentario anterior, allá donde G+, lo siento, y supongo que la función estar ok, (confío en vos); como yo no pago ISPT, ps solo comente lo que en ese momento se vino a mi REBELDE Y ANTISISTEMA CABEZOTA! jeje

    Tu moebien por la labor de compartir data en OS

    Abrazo!

    Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: