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 averti
    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
    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
    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
    13 149
    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 : 13 149
    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)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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