gérer une erreur dans une formule matricielle

okolo

XLDnaute Nouveau
Bonjour à tous, bonsoir aux autres,

pour calculer les participants à des modules de formation, j'utilise la formule sommeprod(module; cherche(participant)). Or si le participant recherché ne figure pas dans chacune des lignes, j'ai une erreur #valeur. Je voudrais remplacer dans ma formule #valeur par 0, pour qu'Excel fasse le calcul sans erreur.
 

Pièces jointes

  • erreur_valeur.zip
    4.9 KB · Affichages: 23
  • erreur_valeur.zip
    4.9 KB · Affichages: 23
  • erreur_valeur.zip
    4.9 KB · Affichages: 20

JeanMarie

XLDnaute Barbatruc
Re : gérer une erreur dans une formule matricielle

Bonjour Okolo, Wilfried

Pour résoudre ton problème
Code:
=SOMMEPROD((A2:A11=1)*ESTNUM((CHERCHE(40;C2:C11))))

Pour supprimer le retour d'une erreur, rien ne sert de mettre la globalité de la formule dans une fonction ESTERREUR, se sont des ressources de calcul pris inutilement. Il faut au contraire s'appliquer à trouver l'origine de celle-ci. Comme Okolo l'a dit dans son post l'erreur "apparait quand la valeur ne figure pas dans la ligne", l'origine vient de la fonction CHERCHE qui retourne un #valeur ou une valeur numérique, il suffit de neutraliser cette erreur, ce que j'ai fait avec ESTNUM.

@+Jean-Marie
 

okolo

XLDnaute Nouveau
Re : gérer une erreur dans une formule matricielle

Bonjour,

J'ai tenu compte de vos deux remarques et j'ai sorti une formule qui semble faire l'affaire: sommeprod((module=valeur)*1; si(esterreur(cherche);0;cherche)). J'ai le résultat correct, mais on dirait que c'est "par hasard", car ma deuxième matrice donne {1,1,1,1,...} ce qui n'est pas correct et j'ai peur de ne pas repérer les erreurs dans une très grande feuille.

Merci, en tout cas, j'avance
 

JeanMarie

XLDnaute Barbatruc
Re : gérer une erreur dans une formule matricielle

Bonjour

Ma formule n'était pas une remarque, elle fonctionne en l'état. Mais l'as-tu simplement copié, et essayé j'en doute.
Ma remarque sur la gestion d'erreur, était plus une critique à l'encontre de la proposition de Wilfried.

Si tu ne comprends pas la formule, demande des explications, c'est plus simple que "pondre un bachibouzouks" !

Si tu veux utiliser le principe de ta formule, as-tu essayé de la valider par les touches Ctrl-Shift-Entrer.

@+Jean-Marie
 

okolo

XLDnaute Nouveau
Re : gérer une erreur dans une formule matricielle

Bonjour Jeanmarie,

Il ne faut pas te fâcher. Bien sûr que j'ai essayé et que cela fonctionne sans aucun problème. Mais j'essaye d'anticiper sur la demande "et si on tapait les noms au lieu de leur matricule"... Je regarde donc pour valider ma matrice, qu'elle soit numérique ou non, et ta formule fonctionne aussi bien. Voilà.

Merci en tout cas de votre aide. Mon projet peut être présenté et c'est ça qui compte.

OKolo

voilà donc en fichier joint le corrigé, pour celui que ça peut intéresser
 

Pièces jointes

  • erreur_valeur.zip
    2.8 KB · Affichages: 20
  • erreur_valeur.zip
    2.8 KB · Affichages: 17
  • erreur_valeur.zip
    2.8 KB · Affichages: 19

JeanMarie

XLDnaute Barbatruc
Re : gérer une erreur dans une formule matricielle

Bonjour

Pour simplifier tes formules
en B30
Code:
=SOMMEPROD((A17:A29=1)*ESTNUM((CHERCHE("pol";B17:B29))))
en B31
Code:
=SOMMEPROD((A17:A29=1)*SI(ESTERREUR(CHERCHE("pol";B17:B29));0;1))
ou
=SOMME((A17:A29=1)*SI(ESTERREUR(CHERCHE("pol";B17:B29));0;1))

Dans la première, ESTNUM((CHERCHE("pol";B17:B29)*1), la multiplication par 1 ne sert à rien, tout comme la division que tu as rajouté.

Pour la deuxième, la validation par Ctrl+shift+Entrer est nécessaire par l'emploi de la fonction SI dans la formule, même remarque sur la multiplication et la division. ESTNUM est une fonction qui retourne soit VRAI ou FAUX ce qui est respectivement équivalent à 1 et 0, pas besoin de rajouter le dernier CHERCHE("pol";B17:B29), et du coup on supprime l'utilisation de deux matrices dans la fonction SOMMEPROD.

Tu te compliques trop la vie, pour te la simplifier analyse chaque matrice, neutralise ce qu'il se doit. C'est en forgeant que l'on devient forgeron, si tu as d'autres questions, n'hésite pas.

@+Jean-Marie
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
294

Statistiques des forums

Discussions
312 146
Messages
2 085 764
Membres
102 967
dernier inscrit
Syl34