Fonction de somme qui remonte et s'arrête à la première cellule vide

Bonjour à tous, Je travaille en ce moment sur un fichier de chiffrage. Je vous le joins ainsi qu'une capture pour que vous puissiez mieux comprendre mon problème.

Dans ce dernier, je mets en place un liste déroulante en cascade qui appelle des informations de prix de produits provenant d'autres feuilles. Ces derniers sont organisés par sous-éléments décomposés (colonnes H à R) qui forment ensemble des éléments globaux (colonnes B à G).

Mon problème arrive justement dans ces colonnes d'éléments décomposés où j'appelle des valeurs de prix et d'heures depuis une autre page. Et vu que ces éléments s'additionnent en élément globaux, j'aimerais que dès que je choisis dans une liste déroulante l'élément "total", cela appelle des fonctions sommes dans ces colonnes qui feraient des sommes remontant jusqu'à la dernière case non nulle.

Mais je ne sais pas trop comment faire et pour l'instant je fais plutôt descendre mes sommes et ces dernières s'additionnent. Ce problème intervient sur les colonnes K à R où il y aura la même formule. J'ai donc la formule suivante pour l'instant, par exemple dans la case K16 :

=SI.CONDITIONS($H16="";"";$H16="Total";SOMME.SI($K$12:$K15;"<>");VRAI;RECHERCHEV($H16;Elements!$B$19:$L$28;4;FAUX))

L'idée est de ne rien mettre dans la case si je n'ai rien dans ma colonne H qui est ma 2e liste déroulante.

Si la case H est égale à "total" alors je fais la somme des cases au dessus de la case concernée jusqu'à atteindre une case non nulle. Par exemple pour K27, il faudrait que cela fasse la somme de K26 à K22. C'est là qu'il me manque la bonne formule à utiliser, pour pouvoir remplacer la partie : SOMME.SI($K$12:$K15;"<>")

Enfin, si ce n'est aucune de ces deux conditions, cela va chercher des valeurs dans dans un tableau d'une autre feuille en fonction du nom indiqué dans la colonne H.

Voilà, si vous arriviez à m'aider, cela me sauverait car j'atteins vraiment mes limites sur excel à ce niveau.

Merci d'avance et bonne journée,

Julien K

hgf

Bonsoir julienkeller et bienvenue sur XLP,

Exemple pour K20, mettez la formule suivante : =SOMME(K$12:K19)-2*SOMME.SI($H$12:$H19;"total";K$12:K19)
Puis recopiez cette formule sur les cellules des totaux c'est à dire L20:R20, K27:R270, K32:R32, K36:R36


Le principe de la formule pour une colonne C et une ligne N dite "Total ":

  • on somme tous les nombres de la colonne C entre la ligne 12 et la ligne N-1 soit SOMME(K$12:K19)
  • on retire de cette somme 2 fois la somme de la colonne C des cellules entre la ligne 12 et la ligne N-1 et dont la colonne H contient "total" soit -2*SOMME.SI($H$12:$H19;"total";K$12:K19) (-2 fois car quand on a précédemment sommé les nombres de la colonne C, on y a inclus les totaux précédents et aussi tous les termes composant ces précédents totaux)

Quand le principe est compris, il suffit d'injecter une formule analogue dans vos propres formules.

Bonjour et merci pour l'accueil et la réponse.

Malheureusement, cette formule marcherait dans le cas où le tableau serait géré à la main, mais j'aimerais au contraire l'automatiser et donc avoir la même formule partout et ainsi que les lignes total puissent être ajouté n'importe où. Ainsi la formule dont j'aurais besoin est la suivante :

Partir de la case actuelle, par exemple K20, et remonter la plage de somme dans la colonne jusqu'à trouver une case vide par exemple K12 et afficher la somme d'entre ces deux cases. J'imagine que je dois utiliser une fonction INDEX mais je n'arrive pas à l'utiliser de la bonne manière.

J'avais par exemple essayé ça : SOMME.SI(INDEX($K$12:$K12;EQUIV(LIGNE(A2);LIGNE($K$13:$K13);0));"") mais cela ne marche pas.

C'est parfait ça marche !

Merci beaucoup pour l'aide et bonne journée

Rechercher des sujets similaires à "fonction somme qui remonte arrete premiere vide"