Fonction SOMMEPROD

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'utilise Excel, j'ai un classeur dont une des feuilles et alimentée à partir des données saisie dans un formulaire.
Afin de faire un décompte suivant deux critères j'utilise la formule suivante :
=SOMMEPROD((A:A="X")*(F:F="Y"))

Mais ça ne marche !?! Je ne comprends vraiment pas pourquoi vu que dans un autre fichier ce type de formule fonctionne bien.

Auriez-vous une idée sur ce qui cloche ?

Merci d'avance

Laure

6 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    SOMMEPROD ne fonctionne pas avec des colonnes entières, utilise une plage réduite, par exemple :
    =SOMMEPROD((A1:A65535="X")*(B1:B65535="Y"))

    Cordialement
    Patrice
    0
    1. Utilisateur anonyme
       
      Merci
      Mais j'avais déjà essayé cela. ça ne marche toujours pas.
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Re Bonjour

      Quel système d'exploitation et quelle version d'Excel utilises-tu ?
      0
  2. m@rina Messages postés 27534 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Quand tu dis "ça ne marche pas", ça veut dire quoi ?
    Que le résultat obtenu n'est pas bon ou bien que ça génère une erreur ?

    m@rina
    0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Si cela ne fonctionne pas, c'est qu'il y a un problème avec les valeurs (ou les formats) car la formule est correcte. Merci donc de répondre à m@rina.
    J'ajouterais que la formule SOMMEPROD est gourmande... Il faut dans l'absolu éviter de la gaver et d'en gaver votre classeur.
    Des formules comme : =SOMMEPROD((A1:A65535="X")*(B1:B65535="Y")) ne font qu'alourdir, inutilement votre classeur.
    Pour utiliser SOMMEPROD avec des plages variable, je vous recommande d'utiliser la combinaison SOMMEPROD et DECALER. Dans l'exemple que vous donnez ça donnerait :
    =SOMMEPROD((DECALER(A1;;;NBVAL(A:A))="x")*(DECALER(B1;;;NBVAL(B:B))="y"))

    NB : lorsque votre plage s'étends sur 50000 lignes, le résultat est le même : fichier plus lourd. Dans ce cas, préférer une macro plus légère et moins indigeste pour l'appétit de votre classeur.
    Bonne soirée et bon appétit...
    0
  4. Utilisateur anonyme
     
    Bonjour à tous,

    Merci de m'aider.

    "ça ne marche pas" ie rien de se passe, la cellule contenant la formule continue de m'afficher 0.
    J'utilise Excel 2003. Système d'exploitation ... heuu je regarderai lundi.
    J'ai vérifié et revérifié les formats des cellules. Dans la 1er matrice j'ai des nombres, et dans la 2nd j'ai du texte.

    Laure
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Dans la 1er matrice j'ai des nombres, et dans la 2nd j'ai du texte.
      Alors mettez ici votre formule exactement telle que vous l'avez dans le classeur, ou joignez nous un classeur exemple....
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,
    Si la première matrice est constituée de nombres, il est normale que A1:A65535="X" (entre guillemets) donne 0 !. Il faudrait mettre A1:A65535=Nbre (où Nbre est le nombre cherché).

    0
    1. Utilisateur anonyme
       
      Bonjour,

      Heuuu.... Voici une des formules exacte de mon fichier
      =SOMMEPROD(('Audit IT & IP'!$A$3:$A$5000="33")*('Audit IT & IP'!$F$3:$F$5000="KO"))
      Laure
      0
    2. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      Salut le forum

      Enleve les guillemets autour de 33

      Mytå
      0
  7. Utilisateur anonyme
     
    ça marche !!

    Merci Merci
    0