Comment additionner la colonne B lorsque la valeur de la colonne A change dans Google Sheets

Dans Google Sheets, il existe une formule en tableau que vous pouvez utiliser pour effectuer la somme de la colonne B lorsque la valeur de la colonne A change.

Bien entendu, vous pouvez remplacer les colonnes A et B par d’autres colonnes de votre choix. Vous pouvez également utiliser des colonnes distantes.

Je vais vous présenter deux formules en tableau qui effectuent la somme d’une colonne lorsqu’une valeur change dans une autre colonne. Voici les deux formules :

Solution standard

La première formule est une solution standard. Elle calcule la somme des cellules jusqu’à ce qu’une valeur change dans une autre colonne. Il vous suffit de saisir cette formule dans la cellule C2. Elle couvre l’ensemble des colonnes A et B.

=si(erreur(FormuleEnTableau(rechv(ligne(A2:A),{si(long(A2:A),recherchev(unique(A2:A),A2:A,ligne(A2:A))),si(long(A2:A),somme.si(A2:A,unique(A2:A),B2:B))},2,0))))

Explication de la formule

La formule ci-dessus est une combinaison de formules qui fonctionnent ensemble comme une formule RECHERCHEV.

Voici les arguments de la formule RECHERCHEV utilisés :

  • valeur_recherche : La formule ligne(A2:A) est la valeur_recherche qui renvoie les numéros de ligne de 2, 3, 4, 5… de manière séquentielle. Lorsque vous testez cette formule LIGNE, vous devez l’envelopper dans la formule ENSEMBLE.

  • plage : Les formules soulignées en rouge et en vert sont la plage dans la formule RECHERCHEV. Elles forment une plage à deux colonnes car je les ai incluses entre des accolades dans la formule ci-dessus. Pour comprendre ce qu’elles renvoient, je les ai saisies dans les cellules F2 et H2 respectivement. Vous devez également utiliser la fonction FormuleEnTableau pour les faire fonctionner de manière indépendante.

F2 : =FormuleEnTableau(si(long(A2:A),recherchev(unique(A2:A),A2:A,ligne(A2:A))))

Cette formule renvoie le numéro de ligne des valeurs qui changent dans la colonne A.

H2 : =FormuleEnTableau(si(long(A2:A),somme.si(A2:A,unique(A2:A),B2:B)))

Il s’agit d’une formule SOMME.SI qui regroupe la colonne A et renvoie la somme.

Ensemble, ces deux formules forment la plage pour la formule RECHERCHEV, comme indiqué ci-dessous :

{si(long(A2:A),recherchev(unique(A2:A),A2:A,ligne(A2:A))),si(long(A2:A),somme.si(A2:A,unique(A2:A),B2:B))}
  • indice : L’indice est le numéro de colonne dans la plage. J’ai utilisé « 2 » comme numéro d’indice car la colonne 2 dans la plage (voir image n°5 ci-dessus) contient la somme de chaque changement de valeur.

La solution Lambda pour la somme de la colonne B lorsque la valeur change dans la colonne A

La deuxième formule est une solution alternative à notre première formule. Elle est plus facile à comprendre. Voici la formule :

=FormuleEnTableau(si(erreur(lambda(x,y,par_ligne(x,lambda(r,si(ligne(r)=xcorrespond(r,x,0,-1)+1, somme(filtrer(y,x=r)),)))))(A2:A,B2:B)))

Cette formule Lambda effectue la somme de la colonne B lorsque la valeur change dans la colonne A. Voici comment elle fonctionne :

  • FILTRER filtre la colonne B si la valeur de la colonne A est A2. La fonction SOMME la totalise. C’est le premier changement de valeur de colonne à placer dans la cellule C4 selon l’image n°4.

  • Pour trouver la ligne de placement, nous avons utilisé la fonction XCORRESPOND, qui renvoie la dernière ligne de la valeur de recherche (critère) dans A2.

  • Nous utilisons la fonction SI pour placer ce total dans cette ligne.

  • Nous avons utilisé PAR_LIGNE pour répéter le processus ci-dessus avec chaque critère dans FILTRER (A2, A3, A4, …)

  • Le rôle de LAMBDA ici est de raccourcir la formule.

Voilà ! Maintenant vous savez comment effectuer la somme de la colonne B lorsque les valeurs dans la colonne A changent dans Google Sheets.

PS: Découvrez d’autres astuces et tutoriels sur Crawlan.com.

Articles en lien