IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

SOMMEPROD génère #VALEUR à cause d'une chaine de caractères au lieu d'une date


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 28
    Points : 12
    Points
    12
    Par défaut SOMMEPROD génère #VALEUR à cause d'une chaine de caractères au lieu d'une date
    Bonjour,

    J'ai un souci avec une formule utilisant sommeprod ... j'ai vraiment besoin d'aide car c'est en train de m'énerver ... 2 jours de perdu ...

    En fait, c'est assez simple, je fais un sommeprod avec l'une des conditions qui se fait sur une date. Or, parfois, je me retrouve avec une chaine de caractères (ex: "x") dans la cellule lorsque la date n'était pas spécifiée. Dans ce cas, je ne dois pas prendre en compte la cellule mais excel me retourne une erreur #VALEUR.

    Ex:
    Colonnes Date Note
    1 12/07/14 5
    2 13/07/14 6
    3 x 5
    4 13/08/14 6
    5 14/07/14 5

    Supposons que je souhaite récupérer le nombre de 5 en juillet, j'obtiendrais ainsi le chiffre 2 pour les lignes 1 et 5.

    Ma formule est la suivante (retournant une erreur #VALEUR):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD( (MOIS(A1:A5)=7) * (B1:B5 = 5) )
    J'ai aussi essayé la formule suivante (me retournant 0):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD( SI(ET(ESTNUM(A1:A5);NON(ESTVIDE(A1:A5) ) ; (MOIS(A1:A5)=7) ; (1=0) )  * (B1:B5 = 5) )
    En gros je teste d'abord si ma cellule est correcte en format, puis je teste la valeur ou force un FAUX ... mais j'obtiens 0.


    Pourriez vous m'aider pour savoir quelle formule dois je utiliser pour arriver à mes fins ?

    Merci beaucoup pour toute l'aide que vous pourrez m'apporter.

  2. #2
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Ecrire la formule matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME((SI(ESTNUM(A1:A5);MOIS(A1:A5);0)=7)*(B1:B5=5))
    à valider par Ctrl + Maj + Entrée
    Cordialement
    Claude

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Autre solution avec SOMMEPROD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(  (ESTNUM(B2:B6)) *  (MOIS(N(B2:B6))=7) * (C2:C6 = 5) )
    ESTNUM renvoie VRAI si c'est une date et FAUX si c'est un texte comme X
    N renvoie le numéro de série d'une date ou le nombre si s'en est un et 0 pour toute autre valeur donc 0 pour X.
    Par contre MOIS(0) renvoie 1.
    Donc si A2 contient une date, la formule ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ESTNUM(A2) * MOIS(N(A2))
    Si c'est une date (exemple 12/07/2014) renverra 7 (VRAI * 7)
    Si c'est du texte (exemple x) reverra 0 (FAUX * 1)

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/12/2009, 00h27
  2. [Toutes versions] Ajouter une chaine de caractère à la fin d'une autre chaine
    Par esstin dans le forum Excel
    Réponses: 2
    Dernier message: 02/05/2009, 15h54
  3. Réponses: 2
    Dernier message: 03/10/2008, 13h50
  4. Réponses: 5
    Dernier message: 02/08/2007, 11h31
  5. Verifier si une chaine de caractere est situe dans une chaine de caractere
    Par gregounnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2007, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo