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 quand cellule vide. [XL-2010]


Sujet :

Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut SOMMEPROD quand cellule vide.
    Bonjour à tous,

    Dans mon tableur, j'ai une feuille intitulée "Suivi demande".
    Depuis une autre feuille j'utilise la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((((MOIS('Suivi demande'!R1400:R2000)=1)*1)*(ANNEE('Suivi demande'!R1400:R2000)=2015)*1))
    (comme vous l'avez compris je cherche a compté combien de cellule, dans la plage R1400:R2000, ont pour date janvier 2015).

    Mon soucis : si une des cellules de la plage ne contient pas de valeur, la formule ne fonctionne pas.
    Est il possible de résoudre le problème?

    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Si tu ne veux pas te prendre la tête pendant des heures à essayer de régler cette formule, il y a une méthode simple et rapide pour résoudre ton problème :
    Tu ajoutes deux colonnes à ta feuille source : une avec le mois, une avec l'année des dates visées.
    Ensuite, tu fais un simple NB.SI.ENS sur ces deux colonnes.
    Eventuellement, tu masques les deux colonnes créées.

    Ca manque d'élégance mais c'est efficace.
    Pour moi, l'important c'est d'avoir au final un truc propre avec un résultat fiable en y passant le moins de temps possible.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Merci pour ta réponse.
    Le problème est que dans la colonne contenant les dates, les 1400 premieres cellules ont des formats batards (texte, date, parfois rien etc...) et les remettre en état sera un travail très long et fastidieux.
    A partir de la ligne 1400, les gens (ce fichier est partagé) ont commencé à renseigner une date, ou laisser une cellule vide.
    C'est pour cela que dans le sommeprod je travaille uniquement sur cette plage.
    Ajouter 2 colonnes avec le moi et l'année comme tu dis, n'est pas possible dans mon cas.
    Etonnant que le sommeprod ne tolere pas les cellules vides non?

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par GuillaumeNcy Voir le message
    Ajouter 2 colonnes avec le moi et l'année comme tu dis, n'est pas possible dans mon cas.
    Même si les colonnes sont masquées et renseignées automatiquement ?
    Tu peux peut-être les placer dans ton onglet destination. Ou bien dans un onglet "brouillon" intermédiaire.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Et bien on ne pourra pas les remplir automatiquement si toutes la colonne n'est pas dans le bon format si?
    Si il est possible de masquer + remplir auto sur seulement plage définit (en l'occurrence de R1400 à R2000 par ex) ça me va !!
    Par contre, étant très débutant en excel, je ne connais pas la fonction NB.SI.ENS, je me renseigne sur le sujet.

  6. #6
    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,
    Essayer la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(('Suivi demande'!R1400:R2000)>=DATE(2015;1;1))*('Suivi demande'!R1400:R2000)<=DATE(2015;1;31)))
    Cordialement
    Claude

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par GuillaumeNcy Voir le message
    Et bien on ne pourra pas les remplir automatiquement si toutes la colonne n'est pas dans le bon format si?
    S'il n'est pas possible de connaitre le mois et l'année de ces cellules par une formule, je ne vois pas comment il serait possible d'obtenir le résultat que tu souhaites.
    La solution que je te proposait concerne les cellules qu'il est possible de traiter en supposant que les autres soient déclarées "hors-traitement" par la formule utilisée, par exemple en ajoutant un SIERREUR ou SI ( ESTNUM à la fonction qui permet de donner l'année et le mois..
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par papouclo Voir le message
    Bonjour,
    Essayer la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(('Suivi demande'!R1400:R2000)>=DATE(2015;1;1))*('Suivi demande'!R1400:R2000)<=DATE(2015;1;31)))
    Cordialement
    Claude
    J'obtiens une erreur ! surement à cause des valeurs nulle.

    La solution que je te proposait concerne les cellules qu'il est possible de traiter en supposant que les autres soient déclarées "hors-traitement" par la formule utilisée, par exemple en ajoutant un SIERREUR ou SI ( ESTNUM à la fonction qui permet de donner l'année et le mois..
    Et bien les cellules qu'il est possible de traiter sont définit par la plage R1400:R2000.
    Tu me parle de SI ERREUR, ça voudrai dire que je pourrai considérer toute les cellules de la colonne sans me préocuper du format?
    Tu ne penses pas que je pourrai rajouter un SI ERREUR dans ma formule d'origine?

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par GuillaumeNcy Voir le message
    Tu me parle de SI ERREUR, ça voudrai dire que je pourrai considérer toute les cellules de la colonne sans me préocuper du format?
    Tu ne penses pas que je pourrai rajouter un SI ERREUR dans ma formule d'origine?
    C'est SIERREUR() (sans espace entre SI et ERREUR).

    Par exemple, si tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(ANNEE(A1);"")
    Si la fonction ANNEE donne un résultat qui ne soit pas une erreur, ce résultat sera écrit.
    Si elle donne une erreur, alors c'est le second argument de la fonction SIERREUR qui sera renvoyé. Donc mon exemple, ce sera un vide.
    Une fois que tu auras déployé tes fonctions ANNEE et MOIS sur deux colonnes masquées (avec ces test d'erreur), tu pourras les utiliser pour faire ton calcul qui devrait pouvoir se faire avec un simple NB.SI.ENS, sans avoir à passer par des SOMPROD ou des fonctions matricielles.

    Si l'on suppose que ces fonctions se trouvent en G1:G1000 (pour les mois) et H1:H1000 (pour les années) ça donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI.ENS(G1:G1000;"=1";H1:H1000;"=2015")
    Et ça n'est pas gêné par les cellules vides.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Je teste tous ça et je te tiens au courant!

  11. #11
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Parfait je m'en sors! En effet pas la peine de m'embeter avec sommeprod..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/07/2015, 13h51
  2. CopierColler quand cellule vide
    Par GagnetYvon dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2013, 17h06
  3. Pb SOMMEPROD et cellules date vides
    Par ericdev67 dans le forum Excel
    Réponses: 15
    Dernier message: 20/01/2011, 07h18
  4. Sommeprod avec cellule non vide
    Par tite schtroumpfette dans le forum Excel
    Réponses: 2
    Dernier message: 27/09/2010, 15h49
  5. sauter un chapitre de code quand une cellule vide
    Par mimic44 dans le forum Access
    Réponses: 7
    Dernier message: 09/01/2007, 09h09

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