En este artículo 16 secciones
- Cómo se estructura el código del PUC.
- Por qué conviene identificar el nivel de cada cuenta.
- Cuando los códigos tienen distinta longitud.
- Cuando todos los códigos tienen seis dígitos.
- Extraer la clase, el grupo y la cuenta de cada código.
- Filtrar y sumar por nivel.
- Recomendación práctica.
- Preguntas frecuentes.
- Artículos relacionados
El Plan Único de Cuentas (PUC) para comerciantes, contenido en el decreto 2650 de 1993, organiza las cuentas en niveles que se reconocen por el número de dígitos del código: clase, grupo, cuenta y subcuenta. Cuando el catálogo está en Excel, una fórmula puede clasificar cada código en su nivel de forma automática. ¿Cómo hacerlo y para qué sirve?
Cómo se estructura el código del PUC.
El código de cada cuenta del PUC se construye agregando dígitos al código del nivel superior, de modo que el número de dígitos indica a qué nivel pertenece:
| Nivel | Dígitos | Ejemplo | Nombre |
|---|---|---|---|
| Clase | 1 | 1 | Activo |
| Grupo | 2 | 11 | Disponible |
| Cuenta | 4 | 1105 | Caja |
| Subcuenta | 6 | 110505 | Caja general |
| Auxiliar | 8 o más | 11050501 | Definido por la empresa |
Los cuatro primeros niveles los fija el catálogo oficial. Los auxiliares los crea cada empresa según sus necesidades de información, por ejemplo, una caja por cada sede.
Las clases del PUC para comerciantes son nueve:
| Clase | Nombre |
|---|---|
| 1 | Activo |
| 2 | Pasivo |
| 3 | Patrimonio |
| 4 | Ingresos |
| 5 | Gastos |
| 6 | Costos de ventas |
| 7 | Costos de producción o de operación |
| 8 | Cuentas de orden deudoras |
| 9 | Cuentas de orden acreedoras |
El contenido completo del catálogo, con la descripción y la dinámica de cada cuenta, se explica en el artículo sobre el Plan Único de Cuentas. Aquí nos ocupamos de cómo trabajarlo en Excel.
- Calculadora de retención en la fuente por salarios
- Liquidador de pensiones en Colpensiones
- Proyección y planeación pensional
Por qué conviene identificar el nivel de cada cuenta.
Un catálogo de cuentas o un balance de prueba exportado desde el software contable trae todos los niveles mezclados en una sola columna. Si queremos ver solo las clases, o sumar los saldos sin duplicarlos, necesitamos una columna que diga a qué nivel pertenece cada código.
Con esa columna podemos:
- Filtrar solo las clases, solo los grupos o solo las subcuentas, sin revisar la lista fila por fila.
- Sumar los saldos de un solo nivel, porque si sumamos toda la columna, el saldo de la caja general queda contado en la subcuenta, en la cuenta, en el grupo y en la clase.
- Armar tablas dinámicas o informes por clase o por grupo.
La fórmula depende de cómo vengan escritos los códigos, que es lo primero que debemos revisar.
Cuando los códigos tienen distinta longitud.
Es la forma más común en los catálogos para comerciantes: la clase se escribe con un dígito, el grupo con dos, la cuenta con cuatro y la subcuenta con seis. En ese caso basta con contar los dígitos con la función LARGO. Supongamos que los códigos están en la columna A desde la fila 2:
=SI(LARGO(A2)=1;"Clase";SI(LARGO(A2)=2;"Grupo";SI(LARGO(A2)=4;"Cuenta";SI(LARGO(A2)=6;"Subcuenta";"Auxiliar"))))
La fórmula evalúa las condiciones en orden: si el código tiene un dígito es una clase; si tiene dos, un grupo; si tiene cuatro, una cuenta; si tiene seis, una subcuenta, y en cualquier otro caso lo trata como auxiliar. Luego se copia hacia abajo en toda la lista.
Las funciones SI anidadas, como esta, se explican paso a paso en el artículo sobre funciones anidadas en Excel.
Cuando todos los códigos tienen seis dígitos.
Algunos catálogos, como los que publican las superintendencias para las entidades que vigilan, rellenan los códigos con ceros a la derecha para que todos tengan la misma longitud. Así, la clase activo aparece como 100000 y el grupo 11 como 110000.
En ese caso LARGO no sirve, porque todos los códigos tienen seis dígitos. Lo que distingue el nivel es cuántos ceros hay al final, y eso lo revisamos con la función DERECHA:
=SI(DERECHA(A2;5)="00000";"Clase";SI(DERECHA(A2;4)="0000";"Grupo";SI(DERECHA(A2;2)="00";"Cuenta";"Subcuenta")))
Si los últimos cinco dígitos son ceros, el código es una clase; si lo son los últimos cuatro, un grupo; si lo son los últimos dos, una cuenta, y en los demás casos, una subcuenta. El orden de las condiciones importa: hay que preguntar primero por la clase, porque un código como 100000 también termina en «0000» y en «00».
Cuando el código viene con espacios o como texto.
Los archivos exportados desde algunos programas traen los códigos con espacios al final o como texto, y entonces LARGO cuenta caracteres de más. Para evitarlo, se limpia el código dentro de la misma fórmula:
=SI(LARGO(ESPACIOS(A2))=1;"Clase";SI(LARGO(ESPACIOS(A2))=2;"Grupo";SI(LARGO(ESPACIOS(A2))=4;"Cuenta";SI(LARGO(ESPACIOS(A2))=6;"Subcuenta";"Auxiliar"))))
Si el problema persiste, es probable que haya caracteres invisibles, que se tratan como explicamos en el artículo sobre cómo quitar espacios en Excel.
Extraer la clase, el grupo y la cuenta de cada código.
Además del nivel, suele ser útil que cada fila muestre a qué clase, grupo y cuenta pertenece. Como el código se construye por acumulación, basta con tomar sus primeros dígitos con la función IZQUIERDA:
| Columna | Fórmula | Resultado con 110505 |
|---|---|---|
| Clase | =IZQUIERDA(A2;1) | 1 |
| Grupo | =IZQUIERDA(A2;2) | 11 |
| Cuenta | =IZQUIERDA(A2;4) | 1105 |
Con la clase identificada, podemos traer su nombre desde una pequeña tabla con las nueve clases, ubicada por ejemplo en el rango H2:I10:
=BUSCARV(VALOR(IZQUIERDA(A2;1));$H$2:$I$10;2;0)
La función VALOR convierte en número el dígito extraído, porque IZQUIERDA devuelve texto y la tabla tiene números. El funcionamiento de la búsqueda se explica en el artículo sobre la función BUSCARV.
Filtrar y sumar por nivel.
Con la columna de nivel creada, la tarea práctica se vuelve sencilla. Para ver solo las clases, aplicamos un filtro sobre el encabezado y seleccionamos «Clase», como explicamos en el artículo sobre
Para sumar saldos sin duplicarlos, sumamos únicamente las filas de un nivel. Supongamos que los saldos están en la columna D y el nivel en la columna B:
=SUMAR.SI(B:B;"Subcuenta";D:D)
Ejemplo: si la caja general tiene un saldo de $5.000.000 y el balance de prueba lo muestra también en la cuenta 1105, en el grupo 11 y en la clase 1, la suma de toda la columna arrojaría $20.000.000. Sumando solo las subcuentas, el resultado es el correcto, $5.000.000.
El mismo criterio sirve para verificar que el balance cuadre: la suma de las subcuentas de una clase debe coincidir con el saldo que el software reporta para esa clase.
Recomendación práctica.
Antes de aplicar cualquier fórmula, revisemos cómo viene el código: si las longitudes varían, usamos LARGO; si todos tienen seis dígitos con ceros a la derecha, usamos DERECHA. Elegir la fórmula equivocada no produce error, sino una clasificación incorrecta que puede pasar desapercibida.
Y cuando el catálogo incluya auxiliares, conviene definir con el contador cuántos dígitos tienen, porque la fórmula los reconoce por exclusión: todo lo que no sea clase, grupo, cuenta o subcuenta.
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cuáles son los niveles del PUC?
Son cuatro en el catálogo oficial: clase, de un dígito; grupo, de dos; cuenta, de cuatro, y subcuenta, de seis. Los auxiliares, de ocho o más dígitos, los crea cada empresa.
¿Cuántas clases tiene el PUC para comerciantes?
Nueve: activo, pasivo, patrimonio, ingresos, gastos, costos de ventas, costos de producción o de operación, cuentas de orden deudoras y cuentas de orden acreedoras.
¿Cuál es el código de la caja en el PUC?
La cuenta 1105, que pertenece al grupo 11, disponible, de la clase 1, activo. La caja general es la subcuenta 110505 y las cajas menores la 110510.
¿Qué fórmula identifica el nivel de una cuenta en Excel?
Si los códigos tienen distinta longitud, la función LARGO dentro de varios SI: un dígito es clase, dos grupo, cuatro cuenta y seis subcuenta. Si todos tienen seis dígitos con ceros, se usa DERECHA para contar los ceros finales.
¿Por qué la suma del balance de prueba me da mucho más de lo que debería?
Porque se están sumando todos los niveles a la vez, y cada saldo queda contado en la subcuenta, la cuenta, el grupo y la clase. Hay que sumar un solo nivel con SUMAR.SI.
¿El PUC se sigue usando con las NIIF?
Depende de la empresa. Las NIIF no imponen un catálogo de cuentas, y de acuerdo con nuestro criterio, muchas empresas conservan la estructura del PUC como catálogo de referencia, adaptado a sus políticas contables.