Filtrado inteligente de asientos contables con BUSCARX y BYROW

Nuevo caso de contabilidad en la comunidad: dado un listado de asientos con múltiples cuentas (gastos 6xx/7xx e IVA 4xx), se necesita extraer automáticamente la descripción de la contrapartida (cuentas 400, 410 o 430) para cada línea de gasto. El problema es complejo porque cada asiento tiene varias líneas y hay que cruzar datos entre ellas.

John aporta una fórmula elegante que combina BYROW con BUSCARX:

``
=SI(BYROW(--IZQUIERDA(E2:E11)={6\7};O);BUSCARX(B2:B11;B2:B11/BYROW(--IZQUIERDA(E2:E11;3)={400\410\430};O);F2:F11);"")
`

La fórmula tiene dos partes brillantes. Primero, BYROW(--IZQUIERDA(E2:E11)={6\7};O) identifica las filas cuya cuenta empieza por 6 o 7 (gastos/ingresos) usando comparación perpendicular. Segundo, BUSCARX cruza el número de asiento para encontrar la descripción de la contrapartida: divide B2:B11 entre el resultado de BYROW(--IZQUIERDA(E2:E11;3)={400\410\430};O), lo que provoca #DIV/0! en las filas que no son proveedor. BUSCARX salta los errores y solo encuentra coincidencia en las filas de proveedor del mismo asiento.

Miki propone un enfoque alternativo agrupando por asiento y cuenta, usando MATRIZATEXTO para filtrar los primeros 3 dígitos de las cuentas (400, 410, 430).

La comunidad destacó este caso como material para la "influcharla" por la elegancia de las soluciones.

Funciones utilizadas: BUSCARX, BYROW, IZQUIERDA, SI, O, MATRIZATEXTO, FILTRAR`.

Más contenido de Excel en InflueXcel