Bonjour,
C'est possible avec une formule matricielle:
J'ai créé une colonne Colonne1 (que tu pourras masquer) dans Tableau2 pour factoriser les calculs (ce n'est pas obligatoire mais je pense que c'est préférable pour le temps de calcul et surtout pour la lisibilité des formules):
En Colonne1:
=PETITE.VALEUR(SI(1 * (Tableau1[Nom du Client] <> "") * (Tableau1[Nom du Client] <> DECALER(Tableau1[Nom du Client]; -1; 0)); LIGNE(Tableau1[Nom du Client]) - LIGNE(Tableau1[[#En-têtes];[Nom du Client]]); 100000000); LIGNE() - LIGNE(Tableau2[[#En-têtes];[Nom du Client]]))
Formule matricielle à valider par
Ctrl+Maj+Entrée.
En colonne "Nom du Client":
=SIERREUR(INDEX(Tableau1[Nom du Client]; [@Colonne1]); "")
En colonne "Prix Soumission av. Tx.":
=SIERREUR(SOMME(DECALER(Tableau1[[#En-têtes];[Prix Soumission Avant Tx ]]; [@Colonne1]; 0; SI(OU(DECALER([@Colonne1]; 1; 0) = 100000000; DECALER([@Colonne1]; 1; 0) = ""); LIGNES(Tableau1); DECALER([@Colonne1]; 1; 0)) - [@Colonne1])); "")
L'inconvénient de passer par Colonne1 est que pour la somme en ligne n, j'utilise l'élément de Colonne1 en ligne n
et en ligne n+1 donc pour garantir que la dernière valeur à retourner soit correcte, il faut que le nombre de lignes de ton tableau2 soit supérieur ou égal à 1 + le nombre de zones consécutives de ton tableau1.
Sinon il faut se passer de Colonne1 et tout mettre en une seule formule mais celle-ci devient alors illisible.
Partager