La función IF evalúa una condición lógica y devuelve uno de dos resultados. Es directa, clara y muy útil cuando el modelo necesita tomar decisiones simples.
IF( logical_test, value_if_true, value_if_false )
// 1. Clasificación simple
Status =
IF ( [Sales] > 100000, "High", "Low" )
// 2. Validación de datos nulos
Valid Flag =
IF ( ISBLANK([Amount]), "Missing", "OK" )
// 3. Control de margen
Margin Check =
IF ( [Margin %] > 0.25, "Healthy", "Risk" )
// 4. KPI On/Off
KPI Status =
IF ( [Actual] >= [Target], 1, 0 )
// 5. Protección contra divisiones
Safe Ratio =
IF ( [Denominator] = 0, BLANK(), [Numerator] / [Denominator] )
El uso excesivo de IF anidados degrada la legibilidad y hace el modelo frágil.
La función SWITCH permite evaluar múltiples escenarios de forma ordenada y legible. Es ideal para reglas de negocio y categorizaciones complejas.
SWITCH(
expression,
value1, result1,
value2, result2,
else_result
)
Este patrón evalúa condiciones secuenciales como un ELSE IF.
// 1. Segmentación por ventas
Segment =
SWITCH(
TRUE(),
[Sales] >= 1000000, "Platinum",
[Sales] >= 500000, "Gold",
[Sales] >= 100000, "Silver",
"Bronze"
)
// 2. Clasificación de desempeño
Performance =
SWITCH(
TRUE(),
[Score] >= 90, "Excellent",
[Score] >= 75, "Good",
[Score] >= 60, "Average",
"Poor"
)
// 3. Estado financiero
Financial Status =
SWITCH(
TRUE(),
[Profit] > 0 && [Cash] > 0, "Healthy",
[Profit] > 0 && [Cash] <= 0, "Alert",
"Critical"
)
// 4. Semáforo KPI
KPI Color =
SWITCH(
TRUE(),
[Value] >= [Target], "Green",
[Value] >= [Target]*0.9, "Yellow",
"Red"
)
// 5. Etiqueta por rango de fechas
Period Label =
SWITCH(
TRUE(),
[Days Open] <= 30, "New",
[Days Open] <= 90, "Open",
"Aging"
)
| Aspecto | IF | SWITCH |
|---|---|---|
| Lógica | Binaria | Multiescenario |
| Escalabilidad | Baja | Alta |
| Legibilidad | Limitada | Excelente |
| Uso ideal | Validaciones | Reglas de negocio |
IF responde preguntas.
SWITCH define comportamientos.
The IF function evaluates a logical condition and returns one of two outcomes. It is simple, direct, and ideal for basic decision-making.
IF( logical_test, value_if_true, value_if_false )
// 1. Simple classification
Status =
IF ( [Sales] > 100000, "High", "Low" )
// 2. Null validation
Valid Flag =
IF ( ISBLANK([Amount]), "Missing", "OK" )
// 3. Margin control
Margin Check =
IF ( [Margin %] > 0.25, "Healthy", "Risk" )
// 4. KPI On/Off
KPI Status =
IF ( [Actual] >= [Target], 1, 0 )
// 5. Safe division
Safe Ratio =
IF ( [Denominator] = 0, BLANK(), [Numerator] / [Denominator] )
SWITCH allows multiple conditions to be evaluated sequentially. It is ideal for business rules and structured decision logic.
// 1. Sales segmentation
Segment =
SWITCH(
TRUE(),
[Sales] >= 1000000, "Platinum",
[Sales] >= 500000, "Gold",
[Sales] >= 100000, "Silver",
"Bronze"
)
// 2. Performance rating
Performance =
SWITCH(
TRUE(),
[Score] >= 90, "Excellent",
[Score] >= 75, "Good",
[Score] >= 60, "Average",
"Poor"
)
// 3. Financial status
Financial Status =
SWITCH(
TRUE(),
[Profit] > 0 && [Cash] > 0, "Healthy",
[Profit] > 0 && [Cash] <= 0, "Alert",
"Critical"
)
// 4. KPI traffic light
KPI Color =
SWITCH(
TRUE(),
[Value] >= [Target], "Green",
[Value] >= [Target]*0.9, "Yellow",
"Red"
)
// 5. Aging label
Period Label =
SWITCH(
TRUE(),
[Days Open] <= 30, "New",
[Days Open] <= 90, "Open",
"Aging"
)
IF answers questions.
SWITCH models behavior.