Fórmula para calcular impuestos a partir de una tabla Excel
En nuestras leyes tributarias, los impuestos normalmente indican los tipos de gravamen a través de una tabla o escala, donde se incluyen las diferentes bases y los tipos aplicables a cada una, indicando también normalmente la cuota íntegra acumulada hasta el tramo anterior (o hasta el límite inferior del tramo, según se mire) y el resto de la base liquidable (desde el valor inicial hasta el final del tramo).
A partir de dichos datos, es fácil construir una tabla en Excel que calcule, dada una cierta base imponible, el impuesto total aplicable.
Supongamos que la tabla es la siguiente (Tarifa de Sucesiones Grupo I y II de Asturias, art. 21 del Decreto Legislativo 2/2014, de 22 de octubre):
| Base liquidable Hasta Euros | Cuota íntegra Euros | Resto base liquidable Hasta Euros | Tipo aplicable Porcentaje |
|---|---|---|---|
| 0,00 | 0,00 | 56.000,00 | 21,25 |
| 56.000,00 | 11.900,00 | 160.000,00 | 25,50 |
| 216.000,00 | 52.700,00 | 400.000,00 | 31,25 |
| 616.000,00 | 177.700,00 | En adelante | 36,50 |
Con esta tabla, para saber el impuesto aplicable a una base imponible determinada (e.g. de 300.000€) habría que saber qué tramo es el aplicable (en este caso, el tercero, ya que la base es superior a 216.000 pero inferior a 616.000), restar a la base la cantidad correspondiente al tramo (216.000), y sobre esta diferencia (300.000 - 216.000 = 84.000) aplicar el tipo como porcentaje (31,25/100), y al resultado (84.000 x 31,25% = 26.250) sumarle la cuota acumulada del tramo anterior (52.700,00).
Podemos automatizar este proceso utilizando la función BUSCARV (VLOOKUP) de Excel.
Para ello, pongamos que copiamos la tabla anterior, sin los encabezamientos, en un archivo Excel (por ejemplo, en las celdas A1:D4) y la base imponible sobre la que queremos calcular la escala (300.000€) en otra celda (e.g. A6).
Podemos usar la función BUSCARV para saber a qué tramo pertenece esa base imponible, teniendo en cuenta que si BUSCARV no encuentra el resultado exacto, devolverá el más cercano que sea menor.
BUSCARV tiene la siguiente estructura:
=BUSCARV(Lo que desea buscar; rango dónde quiere buscarlo, empezando con la columna donde está el elemento buscado; el número de columna en el rango cuyo valor se va a devolver; indicar si se desea una Coincidencia aproximada, indicando "1" o "TRUE" / "0" o "FALSE").
Por lo tanto, "BUSCARV(A6;A1:D4;1;1)" busca el valor de A6(300.000) en la columna A del rango A1:D4 y, al no encontrar una coincidencia exacta, localiza el valor más cercano menor (216.000, en la fila 3) y devuelve el valor de la misma fila de la columna 1 (A), es decir (A3, que es igualmente 216.000). Si hubiésemos indicado la columna 4 - BUSCARV(A6;A1:D4;4;1) - habría devuelto el valor de la misma fila, pero de la columna 4, es decir, D3 o "31,25".
Por lo tanto, para calcular el impuesto, el proceso completo es buscar el tramo con "BUSCARV(A6;A1:D4;1;1)", y restárselo a la base:
A6-BUSCARV(A6;A1:D4;1;1) --> 84.000
Y multiplicar este número por el tipo correspondiente (misma fila, columna 4), dividido entre 100 (porque se trata de un porcentaje):
(A6-BUSCARV(A6;A1:D4;1;1))* BUSCARV(A6;A1:D4;4;1) / 100 --> 84.000 x 31,25 / 100 = 26.250
Y todo esto sumarlo la cuota acumulada del tramo anterior (52.700,00), es decir, el dato de la columna 2:
BUSCARV(A6;A1:D4;2;1) + (A6-BUSCARV(A6;A1:D4;1;1))* BUSCARV(A6;A1:D4;4;1) / 100 --> 52.700 + 26.250 = 78.950
También se puede simplificar la tabla inicial, suprimiendo la columna 3 (Resto base liquidable) ya que no la utilizamos en nuestros cálculos, y expresando directamente el tipo en porcentaje:
| Base liquidable | Cuota íntegra | Tipo aplicable |
|---|---|---|
| 0,00 | 0,00 | 21,25% (o 0,2125) |
| 56.000,00 | 11.900,00 | 25,50% |
| 216.000,00 | 52.700,00 | 31,25% |
| 616.000,00 | 177.700,00 | 36,50% |
En este caso, habría que adaptar la fórmula de la siguiente manera:
BUSCARV(A6;A1:D4;2;1) + (A6-BUSCARV(A6;A1:D4;1;1))* BUSCARV(A6;A1:D4;3;1)
En general:
BUSCARV(celda_base;intervalo_valores;columna_cuota_acumulada;1) + (celda_base -BUSCARV(celda_base;intervalo_valores;columna_base_liquidable;1))* BUSCARV(celda_base;intervalo_valores;columna_tipo_aplicable;1)
Comentarios
Publicar un comentario