SUMMARIZE

Este artículo se ha traducido del inglés mediante IA y puede contener errores. Sus comentarios nos ayudarán a mejorar.

Descripción

La función SUMMARIZE resume su tabla de entrada, agrupando por una o más columnas.

Uso

SUMMARIZE (<Table Expression>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)

La función SUMMARIZE se evalúa como una nueva tabla. La nueva tabla incluirá todas las columnas por las que se agrupa, así como las nuevas expresiones.

Ejemplos

Evitar el doble recuento de los informes de actividades

Si tiene un programa con el objetivo de promover ciertas prácticas nutricionales para madres de niños menores de cinco años, y tiene socios que le informan de indicadores de resultados agregados como:

  • Número de madres alcanzadas a través de visitas puerta a puerta (INPERSON)
  • Número estimado de madres alcanzadas a través de emisiones de radio (RADIO)

Es posible que desee estimar su alcance total combinando estos dos indicadores. Sin embargo, si tiene un socio que realiza visitas puerta a puerta y otro que emite programas de radio en la misma zona geográfica, no querrá contar dos veces esos indicadores.

Socio Distrito INPERSON RADIO
A Norte 500
A Sur 600 1.000
B Norte 2.000
B Este 5.000
C Oeste 300

En este caso, si sumara todos estos indicadores, correría el riesgo de contar dos veces los resultados en el distrito Norte, donde se llegó a 500 madres en persona, pero a 2.000 a través de la radio. Es probable que muchas madres recibieran tanto una visita presencial como el mensaje por la radio.

Una solución a esto es sumar primero los resultados a nivel de distrito, y tomar las cifras de las visitas presenciales o las de la radio, las que sean mayores.

Primero usaremos la función SUMMARIZE para calcular una nueva tabla con las SUM de los dos campos por distrito.

SUMMARIZE([Partner reports], Province, "TOTAL_INPERSON", SUM(INPERSON), "TOTAL_RADIO", SUM(RADIO))

Esto nos da una nueva tabla que se ve así:

Distrito TOTAL_INPERSON TOTAL_RADIO
Norte 500 2.000
Sur 600 1.000
Este 5.000
Oeste 300

Ahora, para encontrar el alcance total, podemos usar la función SUMX para calcular el MAX de cada fila y luego sumar los máximos:

SUMMARIZE([Partner reports], Province, "TOTAL_INPERSON", SUM(INPERSON), "TOTAL_RADIO", SUM(RADIO)) |>
  SUMX(MAX(TOTAL_INPERSON, TOTAL_RADIO))

Esto nos da un resultado final de 2.000 + 1.000 + 5.000 + 300, es decir, 8.300.

Seguimiento de los cambios en el estado de salud a lo largo del tiempo

Suponga que está haciendo un seguimiento del número de familiares enfermos en los hogares a lo largo del tiempo. Tiene un formulario "Control de salud del hogar" que contiene registros del número de familiares enfermos en una fecha de notificación determinada, como se indica a continuación:

Familia Número de familiares enfermos Fecha de notificación
Ahunna 3 2023-01-15
Bilal 1 2023-02-10
Ahunna 4 2023-01-20
Bilal 2 2023-01-15

Puede definir una tabla calculada que muestre el número de familiares enfermos comunicado más antiguo y el más reciente para cada familia utilizando la siguiente fórmula:

SUMMARIZE([Household Health Check-in], [Family], 
    "Baseline", FIRST([Number of sick family members], [Date of reporting]),
    "Final",    LAST ([Number of sick family members], [Date of reporting])) |>
ADDCOLUMNS(
    "Change", Final - Baseline,  
    "Pct change", (Final - Baseline) / Baseline)   

El resultado sería una tabla:

Familia Línea de base Final Cambio Cambio %
Ahunna 3 4 1 33%
Bilal 2 1 -1 -33%
Siguiente elemento
UNION