sommeprod fonctionne mal

Droussel

XLDnaute Occasionnel
bonjour à tous
dans le fichier joint j'ai une table et des donnees

dans l'onglet "2011" j'ai une colonne W qui doit ramener un code en fonction de la colonne V et de la table
cela fonctionne bien pour certains code mais pas pour tous
exemple la rubrique 911112 en ligne 21 devrait ramener le code A30 (le premier trouvé sur la 911112)
en fait il ramene le B28 !
je ne m'explique pas cette erreur

merci de votre aide

Denis
 

Pièces jointes

  • essai.xlsx
    26.4 KB · Affichages: 55
  • essai.xlsx
    26.4 KB · Affichages: 60
  • essai.xlsx
    26.4 KB · Affichages: 57

eddy51

XLDnaute Occasionnel
Re : sommeprod fonctionne mal

Salut ,
J'ai pas trop bien compris , la tu nous dit qu'il y'a une condition , pourquoi tant de condition dans ton sommeprod.



Je viens de regardé , il faut aussi que tu mette une condition sur NOPCA2 , y'a 3 possibilité si tu as 911101 , si j'ai bien compris
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : sommeprod fonctionne mal

Bonjour,
Tu as 3 lignes qui correspondent : il te fait donc 3*25(N° de ligne) =75
je pense que tu dois passer par un min ou un petite valeur.
Je t'ai fait un exemple en pj avec petite valeur mais maintenant la formule est matricielle (à valider avec ctrl+maj+enter)

Cordialement
 

Pièces jointes

  • Drousselessai.xlsx
    27 KB · Affichages: 44

Dugenou

XLDnaute Barbatruc
Re : sommeprod fonctionne mal

Droussel,
sommeprod multiplie et totalise les résultats donc quand tu as plusieurs lignes qui correspondent aux critères tu obtiens la somme des N° de ligne. Pour n'avoir que la première tu dois utiliser petite.valeur(matrice;k) où matrice = ta formule si(critere*critere*ligne;0;ligne) et k = le nb de valeurs qui ne correspondent pas +1
si tu sais calculer directement le nb de valeurs qui ne correspondent pas c'est super sinon il faut calculer le nb total de valeurs - le nb de valeurs qui correspondent +1.
On peut faire plus court en mettant dans le si (valeur si faux) un chiffre supérieur à tout résultat possible : par exemple 5000.
si(critere x critere =0;5000; ligne) et ensuite on pourra demander petite.valeur(matrice;1) qui renverra le premier N° de ligne qui correspond.
Cette explication est-elle suffisante ?
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 077
Membres
103 455
dernier inscrit
saramachado