Faire une somme d'une colonne, la colonne dépendant d'un choix

Résolu
anne1980 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 anne1980 -
Bonjour,

J'ai une liste déroulante dans une cellule (cellule D3, feuille 3). En fonction du choix que je fais dans cette cellule, j'aimerais pouvoir adapter le nom de la colonne (colonne dans feuille 2) dans une formule type SOMME.SI avec d'autres critères (je ne sais pas si c'est très clair...?). En gros,ma formule devra etre :
= SOMME.SI.ENS('feuille2'!col19:col1200;page1;critère1;plage2;critère2)
avec la plage "col19:col1200" qui varie.

Comment puis-je faire ?
Merci d'avance

1 réponse

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
tout dépend de ce qui doit faire varier les colonnes en question?
et ne s'agirait il pas plutôt de lignes? parce que de 19 à 1200, ça fait beaucoup de colonnes?

Un exemple de solution entre autres
si vous inscrivez en X1 l'adresse du champ à traiter (dans ce cas écrire,par exemple
A19:A1200)
votre formule devient:

= SOMME.SI.ENS(INDIRECT("'feuille2'!"&X1);plage1;critère1;plage2;critère2)

ou alors en X1 écrire: Feuil1!A19:A1200
et la formule est:

= SOMME.SI.ENS(INDIRECT(X1);plage1;critère1;plage2;critère2)

Et le champ sommé sera celui écrit en X1

Reste à savoir maintenant si votre menu déroulant permet de reconstituer ce texte en X1. et aussi à dire que selon ce que vous voulez faire il y a d'autres solutions!(par exemple avec le code DECALER, mais sans savoir comment sont organisées vos données, difficile de vous en dire plus
Exemple en Feuil2 vous avez une :ligne de titre de A1 à Z1, repris dans voytre menu dréoulant et sachant que vous devz sommer la, colonne dont le titre sera affichée ar ce menu (que nous mettons en A1)
la formule devient, ,pour sommer un champ de 19 à 1200:

=SI(A1="";"";SOMME.SI.ENS(DECALER(Feuil2!A1;18;EQUIV(A1;Feuil2!$A$1:$Z$1;0)-1;1100);plage1;critère1;plage2;critère2))

squi sommera dans les conditons requises, la plage dont le titre sera placé dans la cellule A1
crdlmnt
Errare humanum est, perseverare diabolicum
0
anne1980
 
Merci beaucoup Vaucluse pour votre réponse, je touche du doigt la solution !
cependant il y encore un truc qui ne fonctionne pas :

"ou alors en X1 écrire: Feuil1!A19:A1200
et la formule est:

= SOMME.SI.ENS(INDIRECT(X1);plage1;critère1;plage2;critère2)

Et le champ sommé sera celui écrit en X1 "


ça me met #REF! dans la cellule de calcul....
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour

si le code renvoie #REF! c'est que l'adresse n'est pas inscrite correctement dans la cellule X1. Vérifiez bien le libellé du nom de la feuille, placez bien les apostrophes si le nom de la feuille comporte un blanc,
ex: Feuil1! OK si le nom n'a pas de blanc
ou 'Feuil 1'! avec apostrophes s'il y a un blanc dans le nom de l'onglet
Ça devrait fonctionner

crdlmnt
0
anne1980
 
c'est tout bon !!
merci encore pour votre aide
0