Idioma: Español
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 da como resultado una nueva tabla. La nueva tabla incluirá todas las columnas por las que se agrupa, así como las nuevas expresiones.
Ejemplos
Evitar el recuento doble de los informes de actividad
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 asociados que le informan de indicadores de resultados agregados como:
- Número de madres alcanzadas a través de la divulgación 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 general combinando estos dos indicadores. Sin embargo, si tiene un asociado que realiza actividades de divulgación puerta a puerta y otro que emite programas de radio en la misma zona geográfica, no querrá contar dos veces esos indicadores.
| Asociado | Distrito | INPERSON | RADIO |
|---|---|---|---|
| A | Norte | 500 | |
| A | Sur | 600 | 1000 |
| B | Norte | 2000 | |
| B | Este | 5000 | |
| 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 por radio. Es probable que muchas madres recibieran tanto una visita en persona como escucharan 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 | 2000 |
| Sur | 600 | 1000 |
| Este | 5000 | |
| 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 reportados 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 | Baseline | Final | Change | Pct Change |
|---|---|---|---|---|
| Ahunna | 3 | 4 | 1 | 33% |
| Bilal | 2 | 1 | -1 | -33% |