Sommeprod et recherchev

C

Carl

Guest
Bonjour les amis,

j'ai un problème sur lequel je planche depuis pas mal de temps.

je dispose de :

sur une première feuille nommée "feuil1"
colonne A avec des chiffres (qui sont des codes: entre 0 et 80) : nommée "code"
colonne B avec des valeur (diverses valeurs, positives, nulles et négatives) : nommée "frais"

sur une deuxième feuille nommée "feuil2"
Un tableau de paramètres nommé "param"
Ce tableau comporte 2 colonnes:
colonne A avec les codes de 0 à 80 (comme ci-dessus)
colonne B avec des chiffres 0 ou 1.

Mon problème est que j'aimerais créer dans une cellule libre
(par exemple sur une troisième feuille nommée "feuil3",la cellule A1),
une formule qui me fait la somme de la colonne B de la "feuil1" suivant le critère ci-dessous:

additionner les valeurs de la colonne B ("feuil1") seulement si le code de la colonne A correspondante (de la "feuil1")
à une correspondance à 1 (dans la colonne B du tableau de la "feuil2")

J'aimerais éviter de créer une troisième colonne C dans le feuille "feuil1" pour ne pas prendre trop de place en mémoire (en fait la feuille 1 comporte près de 2000 lignes)
Etant débutant dans ce domaine, j'ai essayé sans résultat la fonction intégrant sommeprod() et recherchev():

sommeprod((recherchev(code;param;2)=1)*frais)


merci beaucoup les amis

Carl
 
J

jp

Guest
Bonjour Carl et le Forum,

Si j'ai bien compris, tu ne souhaites qu'une sommation..

Avec SOMME.SI(Feuil2Bx:By;1;frais) cela doit fonctionner.

Je ne suis pas encore un habitué et encore moins un fidèle de SOMMEPROD malgrés les exemples fantastiques d'une des Fées de ce Forum, mais je commence un peu. Je viens d'essayer un SOMMEPROD très dépouillé qui donne les même résultats (peut-être un peu facile puisque ton exemple donne 0 ou 1 comme critères) SOMMEPROD(Feuil2Bx:By;frais)

Bonne soirée à toutes et tous,

jp
 
M

Monique

Guest
Bonjour,

Il vaudrait mieux que tes paramètres soient en ligne,
ça donnerait :
=SOMMEPROD((NoParaHoriz=G7)*(Code=CodeHoriz)*Frais)

Si tes paramètres sont à la verticale :
=SOMMEPROD((TRANSPOSE(NoParaVert)=D12)*(Code=TRANSPOSE(CodeVert))*Frais)
formule matricielle, à valider par ctrl, maj et entrée.

(recherchev() ne renvoie qu'une valeur)
 

Pièces jointes

  • CodesCarl.zip
    2.9 KB · Affichages: 47
C

Carl

Guest
Un grand merci à JP et à Monique.

Pour la solution proposée par JP; elle n'est pas tout à fait ce que je cherchais. La feuil2 avec les colonnes de paramètres (0 et 1) est tout a fait indépendante et de longueur beaucoup moins grande que le range des frais. Mais l'idée est bonne et je l'exploiterai sans doute à un autre endroit de mon travail.

La solution de Monique est superbe et me convient parfaitement, je dois encore l'examiner en profondeur et l'adapter à mon travail, mais je crois que cette solution est la bonne.
Et quelle présentation, quelles explications, avec un fichier d'exemple!!! Un grand merci à vous Monique. Vous m'avez beaucoup aidé.

A bientôt et encore une bonne soirée à vous deux et à tout le forum.

Carl
 
J

jp

Guest
Re Carl, bonsoir monique et le Forum,

Oui, un total plantage. Comme quoi il est plus simple de travailler sur un fichier exemple que d'en fabriquer un. J'ai fait cela rapide sans tout vérifier. Méa-coulpa. Sur le fichier fabriqué, cela fonctionnait, mais en y intégrant les données de monique, pas glop.
Vraiment désolé.

Je vous souhaite, néanmoins, une bonne soirée.
 

Statistiques des forums

Discussions
313 099
Messages
2 095 241
Membres
106 234
dernier inscrit
JESS97354