Dos importes que se ven idénticos, 1,250.10 y 1,250.10, dan FALSO con =, porque el formato de dos decimales esconde dígitos que Excel sí compara.

Conciliar un auxiliar contra un estado de cuenta, o el IVA de una factura contra el de su CFDI, parece la comparación más simple de la hoja: una celda igual a otra. Pero en una hoja de práctica con cinco cuentas de banco, una caja y cuatro facturas, siete de diez comparaciones dan FALSO aunque las cifras se vean iguales. Este ejemplo usa datos ficticios y muestra por qué pasa y cómo compararlos sin ocultar diferencias reales. Infografía con capturas de Excel: dos importes iguales dan FALSO, los dígitos escondidos y la corrección con REDONDEAR / Infographic with Excel captures: two equal-looking amounts return FALSE, hidden digits and the ROUND fix

El caso: seis cuentas, cinco FALSO

En la hoja Datos está el movimiento del mes de cada cuenta según el auxiliar (saldo final menos saldo inicial) y el estado de cuenta. El Banco A, por ejemplo, pasó de 1,250,000.10 a 1,251,250.20 y el estado de cuenta dice 1,250.10.

Hoja Datos, celda A8 activa (Cuenta): tblConc con saldos y movimiento de cada banco, tblIVA y la tasa de 16 % / Data sheet, cell A8 active (Cuenta): tblConc with balances and movement per bank, tblIVA and the 16% rate

En Calculo!D10 la comparación es la más directa: =B10=C10. Con las dos celdas mostrando 1,250.10, el resultado es FALSO. En la tabla, cinco de las seis cuentas dan FALSO; solo la Caja da VERDADERO.

Hoja Calculo, celda D10 activa con FALSO: 1,250.10 y 1,250.10 se ven iguales y la comparación con = falla / Calculation sheet, cell D10 active showing FALSE: 1,250.10 and 1,250.10 look equal but the = comparison fails

Causa 1: la resta de saldos grandes

El movimiento del auxiliar no se captura: sale de restar dos saldos de millones.

=Datos!C9-Datos!B9

Excel guarda los números con unos 15 dígitos significativos (Microsoft documenta esa precisión) y compara con esa misma regla. Al restar 1,251,250.20 menos 1,250,000.10, cada saldo trae un error mínimo de representación en su parte decimal, y la resta lo deja a la vista en los últimos dígitos. Para verlo, la hoja lo muestra con once decimales:

=TEXTO(B10,"#,##0.00000000000")

(En Excel en inglés: TEXT.)

El resultado es 1,250.09999999986: difiere de 1,250.10 en unos 1.4E-10, decenas de millones de veces menos que un centavo, pero Excel lo detecta al comparar.

Hoja Calculo, celda B10 activa con 1,250.10: la barra muestra la resta de saldos =Datos!C9-Datos!B9 / Calculation sheet, cell B10 active showing 1,250.10: the formula bar shows the balance subtraction

Hoja Calculo, celda E10 activa con 1,250.09999999986: el movimiento del Banco A con once decimales / Calculation sheet, cell E10 active showing 1,250.09999999986: Bank A movement with eleven decimals

Causa 2: decimales que el formato no muestra

El IVA tiene el mismo problema por otra vía. La hoja calcula el IVA con la tasa de 16 % (la tasa general, art. 1 de la Ley del IVA) y lo compara contra el IVA del CFDI, que viene con dos decimales:

=Datos!G9*Datos!$K$9
=TEXTO(B22,"#,##0.0000")

(En Excel en inglés: TEXT.)

La factura F-001 tiene una base de 1,234.56. Por 16 % da 197.5296, que el formato de dos decimales muestra como 197.53. El CFDI trae 197.53. Se ven iguales, pero 197.5296 no es 197.53, y = da FALSO. Esto no es un problema de punto flotante: es redondeo. La F-002 pasa lo mismo, 850.35 por 16 % es 136.056 contra 136.06, mientras que F-003 (160.00) y F-004 (400.04) cuadran exactamente y dan VERDADERO.

Hoja Calculo, celda E22 activa con 197.5296: el IVA de F-001 con cuatro decimales / Calculation sheet, cell E22 active showing 197.5296: F-001 VAT with four decimals

Por qué 0.1+0.2=0.3 sí da VERDADERO

Si Excel compara tan fino, uno esperaría que =0.1+0.2=0.3 diera FALSO. Da VERDADERO porque la suma deja un error del orden del decimal 17, más allá de los 15 dígitos que se comparan. En cambio =10.01-10=0.01 da FALSO: al restar dos números casi iguales, el error de la parte grande queda al frente del resultado. Así que el tamaño del número importa, y no puedes confiar en una regla de «pocos decimales».

La hoja Verificacion reúne trece casos con lo que se espera y lo que da tu Excel. En la prueba con Excel 365 en español, los trece coincidieron.

Hoja Verificacion, celda B1 activa: trece casos, lo esperado y lo que da tu Excel iguales, Sí en cada fila / Verification sheet, cell B1 active: thirteen cases, expected and actual results equal, Yes in every row

La corrección: comparar a centavos o con tolerancia

Hay dos formas de comparar sin que los dígitos escondidos decidan. La primera es redondear los dos lados a centavos antes de compararlos:

=REDONDEAR(B10,2)=REDONDEAR(C10,2)

(En Excel en inglés: ROUND.)

La segunda es aceptar una diferencia menor a una tolerancia que tú defines en una celda, aquí Datos!K10 con 0.005:

=ABS(B10-C10)<Datos!$K$10

(En Excel en inglés: ABS.)

Las dos concilian las seis cuentas y las cuatro facturas. Redondear exige que los dos importes coincidan al centavo; la tolerancia deja explícito cuánta diferencia aceptas. Si la tolerancia es de un centavo o más, estarías escondiendo diferencias reales: la de 0.005 es solo un valor de práctica.

Hoja Calculo, celda F10 activa con VERDADERO: igualdad a centavos con REDONDEAR y total de seis / Calculation sheet, cell F10 active showing TRUE: equality to the cent with ROUND and a total of six

El control

El control cuenta cuántos importes se veían iguales y dieron FALSO con =, y debe dar 7:

=(FILAS(A10:A15)+FILAS(A22:A25))-D16-D26

(En Excel en inglés: ROWS.)

Con D16 y D26 calculados así:

=SUMAPRODUCTO(--(D10:D15=TRUE))

(En Excel en inglés: SUMPRODUCT.)

Y la celda final pregunta si los dos métodos concilian todo (B33, con diez de diez):

=Y(B31=(FILAS(A10:A15)+FILAS(A22:A25)),B32=(FILAS(A10:A15)+FILAS(A22:A25)))

(En Excel en inglés: AND y ROWS.) Hoja Calculo, celda B30 activa con 7: siete importes iguales a la vista dan FALSO; ambos métodos concilian diez / Calculation sheet, cell B30 active showing 7: seven look-alike amounts return FALSE; both methods reconcile ten

Para reconstruirlo

  1. En Datos, captura los saldos inicial y final del auxiliar y el movimiento del estado de cuenta de cada cuenta; en otra tabla, la base y el IVA del CFDI de cada factura. Pon la tasa en K9 y la tolerancia en K10.
  2. En Calculo, calcula el movimiento como saldo final menos saldo inicial y el IVA como base por la tasa, sin redondear.
  3. Compara con = y agrega la columna con once decimales (cuentas) y cuatro decimales (IVA) para ver lo que el formato esconde.
  4. Agrega las dos comparaciones corregidas: con REDONDEAR y con ABS contra la tolerancia.
  5. Arma el control y la hoja Verificacion con las pruebas cortas =10.01-10=0.01 y =0.1+0.2=0.3.

Limitaciones

  • La regla de que Excel compara a 15 dígitos significativos viene de fuentes secundarias (ExcelJet y Microsoft Q&A); la precisión de 15 dígitos sí la documenta Microsoft. Las trece pruebas de la hoja Verificacion coincidieron en Excel 365 en español; confírmalas en tu versión.
  • La tolerancia de 0.005 y la tasa de 16 % son valores de práctica. Verifica lo vigente antes de usar este método con un cliente, incluido cómo redondea tu sistema de facturación el IVA de cada comprobante.
  • La opción «Establecer precisión de pantalla» también haría coincidir los importes, pero descarta decimales de forma permanente en todo el libro. No se recomienda; compara con REDONDEAR o con tolerancia.
  • Redondear antes de comparar no sustituye revisar el origen: si dos importes difieren por más que la tolerancia, la diferencia es real.
  • Los datos son ficticios y el método requiere Excel de escritorio.

Conclusión

Dos importes que se ven iguales pueden no serlo: el formato muestra dos decimales y = compara muchos más. Por eso conviene redondear los dos lados a centavos o aceptar una tolerancia explícita, y dejar un control que cuente cuántas comparaciones directas fallan.

Descarga el papel de trabajo con los saldos, el IVA y el control aquí. Si quieres que revisemos las conciliaciones de tu despacho, platiquemos.