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 en 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 actividad

Si tiene un programa con el objetivo de promover ciertas prácticas nutricionales para madres de niños de cinco años o menos, y tiene asociados 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)

Puede que desee estimar su alcance general combinando estos dos indicadores. Sin embargo, si tiene un asociado que realiza visitas puerta a puerta y otro que emite programas de radio en la misma zona geográfica, no querrá hacer un doble recuento de esos indicadores.

Asociado 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 hayan recibido tanto una visita en persona como hayan escuchado el mensaje en la radio.

Una solución a esto es sumar primero los resultados a nivel de distrito, y tomar ya sea las cifras en persona, o las cifras de la radio, la que sea mayor.

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

SUMMARIZE([Informes de asociados], Provincia, "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 MÁX de cada fila, y luego sumar los máximos:

SUMMARIZE([Informes de asociados], Provincia, "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 u 8.300.

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

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

Familia Número de familiares enfermos Fecha del informe
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 más antiguo y el más reciente de familiares enfermos para cada familia utilizando la siguiente fórmula:

SUMMARIZE([Revisión de salud del hogar], [Familia], 
    "Baseline", FIRST([Número de familiares enfermos], [Fecha del informe]),
    "Final",    LAST ([Número de familiares enfermos], [Fecha del informe])) |>
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