CALCULATE: El Poder del Contexto
Esta es la función más crucial de DAX. Permite modificar el "contexto" de un cálculo. En medicina, esto significa que podemos hacer preguntas muy específicas a nuestros datos, como aislar un grupo de pacientes que cumple múltiples criterios para un análisis enfocado.
Caso de Uso: Adherencia en Diabetes
Contar únicamente los pacientes con Diabetes Tipo 2 que muestran una 'Alta' adherencia al tratamiento.
Adherencia Alta = CALCULATE(
COUNTROWS('Pacientes'),
'Pacientes'[Condicion] = "Diabetes",
'Pacientes'[Adherencia] = "Alta"
)
Resultado: 85 pacientes cumplen los criterios específicos.
SUMX: Sumas Fila por Fila
Ideal para cálculos que necesitan evaluar una expresión en cada fila antes de sumar. En un hospital, los costos no son uniformes; dependen de la dosis y el medicamento de cada paciente. SUMX calcula el costo por registro y luego lo totaliza.
Costo Total = SUMX(
'Medicamentos',
'Medicamentos'[Dosis] * 'Medicamentos'[Costo Unitario]
)
Calcula el costo por paciente antes de sumar el total general.
AVERAGEX: Promedios Precisos
Al igual que SUMX, esta función itera fila por fila para realizar un cálculo (como la duración de la estancia) y luego promedia los resultados. Esto proporciona una métrica mucho más precisa que un simple promedio de columna.
Promedio Estancia = AVERAGEX(
'Admisiones',
'Admisiones'[Fecha Alta] - 'Admisiones'[Fecha Ingreso]
)
Permite promediar un valor calculado, no solo una columna existente.
IF: Lógica Condicional
La función IF es fundamental para la toma de decisiones. Permite clasificar datos basados en criterios específicos. En la gestión de pacientes, esto es vital para identificar cohortes de riesgo y asignar recursos de manera efectiva.
Nivel Riesgo = IF(
'Pacientes'[Edad] > 65 && 'Pacientes'[Comorbilidades] > 2,
"Alto Riesgo", "Bajo Riesgo"
)
Segmenta a la población de pacientes en categorías accionables.
SWITCH: Clasificación Eficiente
Cuando hay múltiples condiciones, anidar funciones IF puede ser engorroso. SWITCH ofrece una alternativa limpia y eficiente para mapear valores a resultados, como traducir códigos de triaje numéricos a categorías descriptivas claras.
Categoria Triaje = SWITCH( TRUE(),
[Codigo]=1, "Nivel I - Resucitación",
[Codigo]=2, "Nivel II - Emergencia",
...
)
Transforma códigos en información comprensible para el personal.