02 · Celdas condicionales
Escenario
Mostrar valores distintos en la celda según los datos de la fila. Hay dos patrones: elegir entre dos valores (IF) y sustituir cuando el origen está vacío (IFEMPTY).
IF — elegir entre dos valores
{{ IF([Renovacion] > 10000, "Prioritario", "Estandar") }}
{{ IF([Region] = "Madrid", "Local", "Remoto") }}
{{ IF([Responsable] != "", [Responsable], "Sin asignar") }}
Operadores de comparación: =, !=, >, <, >=, <=. El tercer argumento (la rama "else") es obligatorio — XTL no tiene una rama vacía implícita.
IFEMPTY — sustituir cuando el valor falta
{{ IFEMPTY([Responsable], "Sin asignar") }}
{{ IFEMPTY([Nota], "—") }}
IFEMPTY(value, fallback) devuelve fallback cuando value está vacío (ausente, null o una cadena con solo espacios). El número 0 y false no se consideran vacíos — para esos casos usa IF.
Reglas de verdad (condición de IF)
- Los valores vacíos (ausentes, cadenas con solo espacios) son falsos.
- Las cadenas
"0"y"false"son verdaderas — son cadenas no vacías y punto. Si quieres tratar"0"como falso, compara explícitamente:IF([Importe] != "0", ...). - El número
0y el booleanofalseson falsos. - Las fechas siempre son verdaderas.
Combinar con & para texto derivado
{{ "Cat-" & IF([Renovacion] > 10000, "A", "B") & "-" & [Region] }}
& es el operador de concatenación de cadenas. Los operandos se convierten a su forma canónica (véase spec/language.md, "Canonical String Form").
Notas
=y!=aplican el fallthrough de comparación de XTL: numérica si ambos lados son número o cadena numérica, booleana entre booleanos, marca de tiempo entre fechas, y orden por punto de código Unicode en el resto. No hay ordenación por configuración regional.IFpuede anidarse:IF(a, "X", IF(b, "Y", "Z")). Es familiar para usuarios de Excel; los anidamientos muy profundos son difíciles de leer — conviene dividir en celdas auxiliares o precalcular en el origen.