Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb avec formule matricielle

  • Initiateur de la discussion Initiateur de la discussion LeFennec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

LeFennec

Guest
Bonjour à toutes et à tous,

Je dois effectuer des moyennes de points pour un bulletin d'élève et pour cela, j'utilise une formule matricielle.

Globalement, ça fonctionne, mais il y a un cas dans lequel ça ne va pas.

Je n'arrive pas à comprendre le problème.

Voir fichier attaché.

Quelqu'un peut-il m'aider?

D'avance, merci.

Ah, encore un détail: je travaille avec Excel 97 (à la maison, sur PC, en français) et Excel 98 (au bureau, sur MAC, en anglais) [file name=Exemple-xls_20050315130414.zip size=15572]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple-xls_20050315130414.zip[/file]
 

Pièces jointes

Ben mince, j'ai cherché toute la soirée d'hier sans rien trouver et là, subitement, j'essaie un truc et ça fonctionne 😛

Voici ce que j'ai trouvé:

{=IF(SUM(ISNUMBER(B10:M10)*1)=0;'---';ROUND(SUM(B10:M10)/SUM($B$6:$M$6*ISNUMBER(B10:M10))*100*2;0)/2)}

Désolé d'avoir dérangé pour rien 😱
 
Bonjour,

Avec SommeProd (SumProduct) à la place de Somme() en matriciel, tu n'as pas besoin de valider par ctrl, maj et entrée :
=SI(SOMME(B10:M10)=0;'---';ARRONDI(SOMME(B10:M10)/SOMMEPROD($B$6:$M$6*ESTNUM(B10:M10))*100*2;0) /2)

En anglais, ça doit être à peu près ça :
=IF(SUM(B10:M10)=0;'---';ROUND(SUM(B10:M10)/SUMPRODUCT($B$6:$M$6*ISNUMBER(B10:M10))*100*2😉 /2)
 
Merci beaucoup pour le tuyau.

Votre formule ne fonctionne cependant pas dans mon cas car dans le cas où l'élève obtient un zéro à toutes ses notes, votre formule renvoit '---' et elle devrait renvoyer zéro.

La formule que j'avais corrigé ne fonctionnait pas non plus dans un autre cas: si la première note (cellule B10, par exemple) était un 'A' (Absent), par exemple.

J'ai dû rajouter une condition supplémentaire, ce qui donne:
{=IF(SUM(ISNUMBER(B10:M10)*1)=0;IF(OR((B10:M10)='A';(B10:M10)='CM';(B10:M10)='E';(B10:M10)='P');'A';'---');ROUND(SUM(B10:M10)/SUM($B$6:$M$6*ISNUMBER(B10:M10))*100*2;0)/2)}

Cela fonctionnerait-il sans formule matricielle?

Faudra que j'essaie, pour voir 😉
 
Bonjour,

Fais des essais avec ces deux-là, pour la ligne 7 :

=SI(NBVAL(B7:M7)=0;'---';ARRONDI(SOMME(B7:M7)/SOMMEPROD($B$6:$M$6*ESTNUM(B7:M7))*200;0) /2)
=IF(COUNTA(B7:M7)=0,'---',ROUND(SUM(B7:M7)/SUMPRODUCT($B$6:$M$6*ISNUMBER(B7:M7))*200,0) /2)

Ou bien :
=SI(NB(B7:M7)>0;ARRONDI(SOMME(B7:M7)/SOMMEPROD($B$6:$M$6*ESTNUM(B7:M7))*200;0) /2;'---')
=IF(COUNT(B7:M7)>0,ROUND(SUM(B7:M7)/SUMPRODUCT($B$6:$M$6*ISNUMBER(B7:M7))*200,0) /2,'---')

(à valider par 'Entrée' simplement)

La 1ère : si tu n'as ni chiffre ni lettre, la formule renvoie 3 petits traits, sinon, le calcul se fait.
La 2ème : si tu as au moins un nombre, le calcul se fait, sinon tu obtiens les 3 traits.
 
Génial, ça fonctionne!

Euh ... ben non, il y a encore un cas où ça ne fonctionne pas:

si on n'a pas de points mais que des absences, par exemple (et donc on n'a pas de cellule avec des chiffres mais 1 ou plusieurs cellules avec une lettre), la formule renvoit un message d'erreur #DIV/0! dans la première formule et écrit '---' dans la 2ème au lieu de renvoyer 'A'.

Désolé, Monique, tu dois me trouver chiant.

J'essaie de régler le problème du 'A' dans une de tes 2 formules mais je n'ai pas encore trouvé ...
 
Bon, voilà, je crois que cette formule-ci fonctionne dans tous les cas de figure:

=IF(COUNT(B25:M25)>0;ROUND(SUM(B25:M25)/SUMPRODUCT($B$6:$M$6*ISNUMBER(B25:M25))*100*2;0)/2;IF(COUNTIF(B25:M25;'A')<>0;'A';'---'))

Merci encore, Monique, c'est toujours plus facile d'éviter les formules matricielles.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…