Un cliente persona moral acuerda pagar 50,000.00 netos por tus honorarios. Va a retener 10% de ISR sobre el subtotal y dos terceras partes del IVA, así que el subtotal que se factura no es 50,000.00. La cuenta parece directa y deja un centavo de diferencia que se nota en el depósito.

Esta es la pieza 3 de 8 de la serie «LET en el despacho». Las tasas son las de honorarios de persona física a persona moral: ISR de 10 % (artículo 106 de la LISR) y retención de IVA de dos terceras partes del IVA trasladado, 10.6667 % del subtotal (artículo 1-A de la Ley del IVA). Verifica las vigentes antes de usarlas con un cliente.

Infografía: el neto en una celda LET, el subtotal aproximado, el exacto y tres métodos de redondeo / Infographic: the net in one LET cell, the approximate subtotal, the exact one and three rounding methods

El neto en una sola celda

El neto de una factura de honorarios es el subtotal, más el IVA, menos la retención de IVA, menos la retención de ISR. Con LET el IVA se calcula una vez y las dos retenciones se arman sobre ese valor:

=LET(sub,tblHonorarios[Subtotal],iva,REDONDEAR(sub*TasaIVA,2),rIVA,REDONDEAR(iva*DosTercios,2),rISR,REDONDEAR(sub*TasaRetISR,2),sub+iva-rIVA-rISR)

(En Excel en inglés: SEQUENCE, XLOOKUP, INDEX, MATCH, ROUND, IFNA y SUMPRODUCT. LET se llama igual.)

sub es el subtotal de cada factura, iva es el IVA redondeado, rIVA es la retención de IVA y rISR es la retención de ISR. TasaIVA, DosTercios y TasaRetISR son nombres definidos que apuntan a tres celdas de la hoja Datos. La fórmula es una sola celda y se desborda por toda la columna.

Para reconstruirlo:

  1. Convierte las facturas en tabla con CTRL + T y llámala tblHonorarios, con las columnas Folio, Cliente y Subtotal.
  2. Escribe la tasa de IVA, la de retención de ISR y =2/3 en tres celdas, y ponles los nombres TasaIVA, TasaRetISR y DosTercios en el Cuadro de nombres.
  3. Escribe la fórmula una sola vez en la primera celda de la columna del neto.

Hoja Honorarios: el subtotal 52,447.55 da un neto de 49,999.99 y el 52,447.56 da 50,000.00 / Honorarios sheet: subtotal 52,447.55 gives a net of 49,999.99 and 52,447.56 gives 50,000.00

Las facturas de las filas 20 y 21 traen subtotales que solo difieren por un centavo, y el neto pasa de 49,999.99 a 50,000.00. Es la diferencia que aparece cuando el cliente pagó «50,000.00 netos».

Del neto al subtotal: dividir no basta

Si el neto es 0.953333 del subtotal, el subtotal sale de dividir. El factor es uno, más el IVA, menos las dos terceras partes del IVA, menos la retención de ISR:

Factor: =1+TasaIVA-TasaIVA*DosTercios-TasaRetISR
Subtotal aproximado: =REDONDEAR(B11/B12,2)

Con 50,000.00 de neto, el subtotal aproximado es 52,447.55, y con ese subtotal el neto sale en 49,999.99. Falta un centavo, porque cada importe se redondea por separado.

Hoja Neto: neto pactado 50,000.00, factor 0.953333, subtotal aproximado 52,447.55 y candidatos con el 52,447.56 en verde / Neto sheet: agreed net 50,000.00, factor 0.953333, approximate subtotal 52,447.55 and candidates with 52,447.56 in green

La tabla de candidatos prueba siete subtotales, tres centavos hacia cada lado del aproximado. Para cada uno calcula IVA, retenciones y neto, y marca «EXACTO» cuando el neto es el pactado. En este caso el subtotal exacto es 52,447.56.

Una sola celda que busca el subtotal exacto

La misma búsqueda cabe en una celda: SECUENCIA genera los siete candidatos, se calcula el neto de cada uno y BUSCARX devuelve el subtotal cuyo neto es el pactado:

=LET(s0,B13,cand,REDONDEAR(s0+SECUENCIA(7,1,-3)/100,2),iva,REDONDEAR(cand*TasaIVA,2),netos,REDONDEAR(cand+iva-REDONDEAR(iva*DosTercios,2)-REDONDEAR(cand*TasaRetISR,2),2),BUSCARX(B11,netos,cand,"sin solución exacta"))

Si ningún candidato da el neto pactado, devuelve «sin solución exacta». El papel de trabajo la compara contra la tabla de candidatos: coinciden.

Hoja Neto: la fórmula LET con SECUENCIA y BUSCARX devuelve 52,447.56, igual que la tabla de candidatos / Neto sheet: the LET formula with SEQUENCE and XLOOKUP returns 52,447.56, same as the candidate table

Tres métodos de redondeo, tres subtotales

La retención de IVA se puede redondear de tres formas, y las tres dan retenciones que difieren en centavos:

  • A: dos terceras partes del IVA ya redondeado. =REDONDEAR(iva*DosTercios,2)
  • B: subtotal × 16 % × 2/3, redondeado. =REDONDEAR(sub*TasaIVA*DosTercios,2)
  • C: subtotal × 0.106667, la tasa de retención que lleva el CFDI. =REDONDEAR(sub*TasaCFDI,2)

Para 50,000.00 netos, el primer subtotal exacto es 52,447.56 con A, 52,447.54 con B y 52,447.57 con C. La hoja Metodos los pone lado a lado.

Hoja Metodos: primer subtotal exacto 52,447.56 con el método A, 52,447.54 con el B y 52,447.57 con el C / Metodos sheet: first exact subtotal 52,447.56 with method A, 52,447.54 with B and 52,447.57 with C

Para saber cuál usa tu sistema de facturación, toma un CFDI de honorarios ya timbrado y compara el Importe de la retención de IVA contra los tres métodos. La tasa 0.106667 es la que reportan las guías consultadas; confírmala en tu XML.

Limitaciones

  • Las tasas son las de honorarios de persona física con actividad profesional hacia una persona moral. RESICO lleva otra tasa de retención de ISR.
  • El papel de trabajo usa IVA de 16 %. Si cambias TasaIVA, cambia también TasaCFDI.
  • El método que usa tu sistema de facturación se averigua con un XML; este papel de trabajo no lo sabe.
  • Los datos son ficticios.
  • Requiere Excel 365 (LET, SECUENCIA y BUSCARX).

Conclusión

Un neto pactado necesita un subtotal exacto, y el subtotal exacto depende de cómo se redondea cada retención. Con LET el cálculo queda en una celda legible, y la tabla de candidatos lo audita.

El papel de trabajo con las 12 facturas, los candidatos y los tres métodos está en esta aquí.

¿Necesitas revisar cómo se calculan las retenciones de los honorarios de tu despacho? Escríbeme.