Esta guía te ayudará a comprender los tipos de columna disponibles en Estructuras Contables y cómo utilizar fórmulas para construir estructuras contables más flexibles y personalizadas.
Aquí encontrarás los tipos de columna disponibles, las variables que puedes usar, los operadores y funciones compatibles, además de recomendaciones para construir fórmulas de forma correcta.
¿Qué son los tipos de columna?
En Estructuras Contables, cada columna define cómo se construirá un valor dentro del archivo contable exportado.
El tipo de columna determina cómo se comportará ese campo y qué configuraciones estarán disponibles para él.
Tipos de columna disponibles
Fórmula
Úsala cuando necesites que la columna muestre un valor calculado a partir de otras variables, valores fijos o lógica condicional.
Cuándo usarla: cuando el valor dependa de una regla, una transformación o una combinación de datos.
Ejemplo: mostrar un texto distinto según si existe monto en el debe o en el haber.
Texto plano
Permite mostrar un valor fijo definido manualmente.
Cuándo usarla: cuando siempre necesitas exportar el mismo texto, sin cálculos ni variaciones.
Ejemplo: una columna que siempre diga “Concepto fijo” o “Ajuste manual”.
Correlativo
Inserta una numeración secuencial a partir del valor inicial que definas.
Cuándo usarla: cuando necesitas numerar automáticamente las filas del archivo.
Ejemplo: una columna “N°” que comience en 1 y aumente fila a fila.
Atributo
Muestra directamente el valor de una variable disponible dentro de la estructura contable.
Cuándo usarla: cuando necesitas traer un dato existente sin transformarlo.
Ejemplo: el RUT del colaborador o el nombre de la empresa.
Monto
Está diseñada para mostrar valores monetarios, como el debe, el haber o montos contables.
Cuándo usarla: cuando necesitas exportar cifras monetarias y aplicar formato numérico al resultado.
💡 Aunque este tipo de columna permite fórmulas, no se recomienda usarlo para construir lógica compleja sobre montos contables principales, ya que podría generar descuadres.
Configuraciones disponibles en columnas de tipo Monto
Las columnas de tipo Monto permiten configurar el formato numérico del valor exportado.
Esto te permite definir cómo se presentarán los valores monetarios en archivos .xls o .xlsx, por ejemplo con o sin separador de miles y con o sin decimales.
Variables disponibles
Para construir fórmulas o seleccionar atributos, puedes usar variables del sistema.
Estas variables siguen el formato:
categoria.variable
Por ejemplo:
employee.rut empresa.nombre cuenta_contable.deber variable.mes
Categorías disponibles
| Categoría | Descripción | Ejemplos de variables |
|---|---|---|
| Colaborador | Datos del empleado | employee.rut, employee.first_name, employee.last_name, employee.rol_privado |
| Trabajo | Información laboral del colaborador | job.area_full_name, job.role_name, job.dias_trabajados, job.costo_empresa, job.tipo_contrato |
| Cuenta contable | Datos asociados a la cuenta contable | cuenta_contable.cuenta_contable, cuenta_contable.deber, cuenta_contable.haber, cuenta_contable.glosa, cuenta_contable.monto, cuenta_contable.item_code |
| Plan | Información previsional y de salud | plan.afp, plan.isapre, plan.rut_afp, plan.is_cuenta2 |
| Centro de costo | Datos del centro de costo | centro_costo.centro_costo, centro_costo.centro_costo_id, centro_costo.centro_costo_weight |
| Empresa | Información de la empresa | empresa.nombre, empresa.rut, empresa.id |
| Variable | Datos del período | variable.primer_dia_del_periodo, variable.ultimo_dia_del_periodo, variable.mes_en_palabras, variable.año |
Operadores disponibles en fórmulas
Operadores aritméticos
Permiten realizar cálculos matemáticos básicos.
⚠️ Usa estos operadores con precaución sobre montos contables principales, como cuenta_contable.deber, cuenta_contable.haber o cuenta_contable.monto.
| Operador | Descripción | Ejemplo |
|---|---|---|
| + | Suma | job.dias_trabajados + 5 |
| - | Resta | job.dias_trabajados - 30 |
| * | Multiplicación | job.dias_trabajados * 8 |
| / | División | job.dias_trabajados / 30 |
| ^ | Potencia | variable ^ 2 |
| % | Módulo | job.dias_trabajados % 7 |
Operadores de comparación
Comparan dos valores y devuelven TRUE o FALSE.
| Operador | Descripción | Ejemplo |
|---|---|---|
| = | Igual a | job.tipo_contrato = "Plazo Fijo" |
| != o <> | Diferente de | cuenta_contable.deber != 0 |
| > | Mayor que | job.dias_trabajados > 15 |
| < | Menor que | cuenta_contable.monto < 50000 |
| >= | Mayor o igual que | variable.año >= 2024 |
| <= | Menor o igual que | centro_costo.centro_costo_weight <= 0.5 |
Funciones disponibles
Funciones lógicas
| Nombre | Parámetros | Descripción |
| IF(condicion, valor_si_verdadero, valor_si_falso) | Condición, valor si verdadero, valor si falso | Permite obtener un valor u otro dependiendo de si una condición es verdadera o falsa. |
| CASE valor_a_evaluar WHEN comparacion1 THEN resultado1 [WHEN ...] END | Valor a evaluar, comparaciones y resultados | Permite múltiples condiciones, como una cadena de IFs. Evalúa hasta encontrar una coincidencia. |
| AND(expresion1, expresion2, ...) | Lista de expresiones lógicas | Devuelve TRUE si todas las expresiones son TRUE. |
| OR(expresion1, expresion2, ...) | Lista de expresiones lógicas | Devuelve TRUE si al menos una expresión es TRUE. |
| NOT(expresion) | Una expresión lógica | Invierte el valor de la expresión. |
| KPI(codigo) / kpi.codigo | Código del KPI | Permite referenciar KPIs de empresa dentro de una fórmula usando la notación kpi.codigo. El valor se resuelve al momento de exportar según la empresa y el período en curso. |
| TABLA_POR_COLUMNA(codigo_tabla, columna_a_buscar, valor, columna_resultado, valor_por_defecto) | Código de tabla, columna a buscar, valor, columna resultado, valor por defecto | Busca un valor exacto dentro de una tabla de parámetros y retorna el valor de otra columna asociada. Funciona de forma similar a un VLOOKUP. |
| TABLA_POR_RANGO(codigo_tabla, col_min, col_max, valor, columna_resultado, valor_por_defecto) | Código de tabla, columna mínima, columna máxima, valor, columna resultado, valor por defecto | Busca un valor dentro de un rango definido en una tabla de parámetros y retorna el resultado correspondiente. Ideal para tramos, clasificaciones por monto o reglas escalonadas. |
Ejemplos:
IF(job.dias_trabajados > 20, "Mes Completo", "Mes Parcial") CASE job.tipo_contrato WHEN "Indefinido" THEN "COD_A" WHEN "Plazo Fijo" THEN "COD_B" ELSE "COD_OTRO" END IF(AND(cuenta_contable.deber > 0, centro_costo.centro_costo = "VENTAS"), "Cargo Ventas", "Otro Cargo")
Funciones de validación y manejo de vacíos
| Función | Descripción | Ejemplo |
|---|---|---|
IFBLANK(a, b) |
Devuelve el primer valor no vacío entre dos opciones. | IFBLANK(employee.second_last_name, "-") |
PRESENT(valor) |
Indica si el valor tiene contenido. | PRESENT(employee.email_recipient) |
ISBLANK(valor) |
Indica si el valor está vacío. | ISBLANK(plan.apvc) |
Funciones para manipulación de RUT
| Función | Descripción | Ejemplo | Resultado |
|---|---|---|---|
RUT_SIN_DV(rut) |
Devuelve el RUT sin el dígito verificador. | RUT_SIN_DV(employee.rut) | 12345678 |
RUT_SOLO_DV(rut) |
Devuelve solo el dígito verificador. | RUT_SOLO_DV(employee.rut) | 9 |
RUT_SIN_PUNTOS(rut) |
Elimina puntos y mantiene el guion. | RUT_SIN_PUNTOS("12.345.678-9") | 12345678-9 |
Funciones de transformación de texto
| Función | Descripción | Ejemplo |
|---|---|---|
TO_S(valor) |
Convierte un valor a texto. | TO_S(variable.año) |
MAYUS(texto) |
Convierte el texto a mayúsculas. | MAYUS(employee.first_name) |
MINUS(texto) |
Convierte el texto a minúsculas. | MINUS(empresa.nombre) |
NORMALIZE(texto) |
Elimina tildes y convierte caracteres especiales. | NORMALIZE(cuenta_contable.glosa) |
LPAD(texto, ancho) |
Rellena con espacios a la izquierda hasta alcanzar el ancho definido. | LPAD(cuenta_contable.cuenta_contable, 20) |
LPAD(texto, ancho, caracter) |
Rellena a la izquierda usando un carácter personalizado. | LPAD("123", 10, '0') |
RPAD(texto, ancho) |
Rellena con espacios a la derecha hasta alcanzar el ancho definido. | RPAD(cuenta_contable.cuenta_contable, 20) |
RPAD(texto, ancho, caracter) |
Rellena a la derecha usando un carácter personalizado. | RPAD("123", 10, '0') |
CONCAT(texto1, texto2, ...) |
Une textos y variables. | CONCAT(employee.rut, "-", employee.first_name) |
LEFT(texto, n) |
Extrae caracteres desde la izquierda. | LEFT(employee.rut, 8) |
RIGHT(texto, n) |
Extrae caracteres desde la derecha. | RIGHT(cuenta_contable.cuenta_contable, 3) |
MID(texto, inicio, n) |
Extrae caracteres desde una posición intermedia. | MID(job.role_name, 1, 5) |
LEN(texto) |
Devuelve la longitud del texto. | LEN(employee.rut) |
TRIM(texto) |
Elimina espacios al inicio y al final. | TRIM(" Texto con espacios ") |
Funciones numéricas
| Función | Descripción | Ejemplo |
|---|---|---|
IFMONTO(monto, valor_si_vacio_o_cero) |
Si el monto es cero, nulo o vacío, devuelve un valor alternativo. | IFMONTO(cuenta_contable.deber, 0) |
ROUND(número, decimales) |
Redondea un número. | ROUND(3.1416, 2) |
CEIL(número) |
Redondea hacia arriba. | CEIL(7.2) |
FLOOR(número) |
Redondea hacia abajo. | FLOOR(7.8) |
MIN(num1, num2, ...) |
Devuelve el valor mínimo. | MIN(job.dias_trabajados, 30) |
MAX(num1, num2, ...) |
Devuelve el valor máximo. | MAX(job.costo_empresa, 100000) |
SUM(num1, num2, ...) |
Suma una lista de valores. | SUM(variable.ajuste1, variable.ajuste2, 100) |
ABS(número) |
Devuelve el valor absoluto de un número. | ABS(cuenta_contable.monto) |
Ejemplo de combinación de funciones
Puedes combinar funciones y operadores para construir glosas o valores dinámicos más complejos.
IF(
cuenta_contable.deber > 0,
CONCAT("Cargo ", job.tipo_contrato, " Colab: ", employee.first_name),
CONCAT("Abono ", job.tipo_contrato, " Colab: ", employee.first_name)
)En este ejemplo:
- Si existe monto en el debe, la fórmula devuelve un texto que comienza con “Cargo”.
- Si no existe monto en el debe, devuelve un texto que comienza con “Abono”.
- En ambos casos, concatena además el tipo de contrato y el nombre del colaborador.
Buenas prácticas
- Usa siempre el formato
categoria.variablecorrectamente. - Respeta mayúsculas, minúsculas y nombres exactos de variables.
- Usa paréntesis para controlar el orden de operaciones cuando sea necesario.
- Escribe valores de texto entre comillas.
- Prueba fórmulas complejas por partes antes de dejarlas definitivas.
- Usa funciones como
IFBLANK,ISBLANK,PRESENTeIFMONTOpara manejar valores vacíos. - Evita hacer operaciones aritméticas directas sobre
cuenta_contable.deber,cuenta_contable.haberocuenta_contable.montosi eso puede afectar el equilibrio contable.
Errores comunes
- Usar nombres de variable incorrectos, por ejemplo
empleado.ruten vez deemployee.rut. - Olvidar comillas en valores de texto.
- Dejar funciones con número incorrecto de argumentos.
- Usar paréntesis desbalanceados.
- Intentar comparar u operar tipos de dato incompatibles.