SUMMARIZE

Cet article a été traduit de l'anglais par IA et peut contenir des erreurs. Vos commentaires nous aideront à l'améliorer.

Description

La fonction SUMMARIZE résume sa table d'entrée, en regroupant par une ou plusieurs colonnes.

Utilisation

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

La fonction SUMMARIZE renvoie une nouvelle table. La nouvelle table inclura toutes les colonnes sur lesquelles le regroupement est effectué, ainsi que les nouvelles expressions.

Exemples

Éviter le double comptage des rapports d'activité

Si vous avez un programme visant à promouvoir certaines pratiques nutritionnelles pour les mères d'enfants de cinq ans et moins, et que des partenaires vous rapportent des indicateurs de résultats agrégés tels que :

  • Nombre de mères atteintes par le biais de la sensibilisation porte-à-porte (INPERSON)
  • Nombre estimé de mères atteintes par des émissions de radio (RADIO)

Vous pourriez vouloir estimer votre portée globale en combinant ces deux indicateurs. Cependant, si un partenaire mène une campagne de porte-à-porte et un autre partenaire diffuse des émissions de radio dans la même zone géographique, vous ne voulez pas compter deux fois ces indicateurs.

Partenaire District INPERSON RADIO
A Nord 500
A Sud 600 1 000
B Nord 2 000
B Est 5 000
C Ouest 300

Dans ce cas, si vous additionniez tous ces indicateurs, vous risqueriez de compter en double les résultats dans le district Nord où 500 mères ont été atteintes en personne, mais 2 000 ont été atteintes par la radio. Il est probable que de nombreuses mères aient reçu à la fois une visite en personne et entendu le message à la radio.

Une solution consiste à d'abord additionner les résultats au niveau du district, et à prendre soit les chiffres des visites en personne, soit ceux de la radio, selon le plus élevé des deux.

Nous utiliserons d'abord la fonction SUMMARIZE pour calculer une nouvelle table avec les SOMMES des deux champs par district.

SUMMARIZE([Rapports des partenaires], District, "TOTAL_INPERSON", SUM(INPERSON), "TOTAL_RADIO", SUM(RADIO))

Cela nous donne une nouvelle table qui ressemble à :

District TOTAL_INPERSON TOTAL_RADIO
Nord 500 2 000
Sud 600 1 000
Est 5 000
Ouest 300

Maintenant, pour trouver la portée totale, nous pouvons utiliser la fonction SUMX pour calculer le MAX de chaque ligne, puis additionner les maximums :

SUMMARIZE([Rapports des partenaires], District, "TOTAL_INPERSON", SUM(INPERSON), "TOTAL_RADIO", SUM(RADIO)) |>
  SUMX(MAX(TOTAL_INPERSON, TOTAL_RADIO))

Cela nous donne un résultat final de 2 000 + 1 000 + 5 000 + 300, soit 8 300.

Suivi de l'évolution de l'état de santé dans le temps

Supposons que vous suiviez le nombre de membres de la famille malades dans les ménages au fil du temps. Vous avez un formulaire « Bilan de santé du ménage » qui contient des enregistrements sur le nombre de membres de la famille malades à une date de déclaration donnée, comme suit :

Famille Nombre de membres de la famille malades Date de déclaration
Ahunna 3 2023-01-15
Bilal 1 2023-02-10
Ahunna 4 2023-01-20
Bilal 2 2023-01-15

Vous pouvez définir une table calculée qui affiche le premier et le dernier nombre de membres de la famille malades déclarés pour chaque famille en utilisant la formule suivante :

SUMMARIZE([Bilan de santé du ménage], [Famille], 
    "Baseline", FIRST([Nombre de membres de la famille malades], [Date de déclaration]),
    "Final",    LAST ([Nombre de membres de la famille malades], [Date de déclaration])) |>
ADDCOLUMNS(
    "Change", Final - Baseline,  
    "Pct change", (Final - Baseline) / Baseline)   

Le résultat serait une table :

Famille Ligne de base Final Changement Changement en %
Ahunna 3 4 1 33%
Bilal 2 1 -1 -33%
Élément suivant
UNION