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 :

[E 2002] Formule matricielle


Sujet :

Excel

  1. #1
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut [E 2002] Formule matricielle
    Je suis entrain de bidouiller avec un calendrier et j'aimerai me faire une formule qui me compte les samedi et les dimanche dans l'année.

    je l'ai fait avec la somme de deux nb.si, ça marche sans souçis

    mais pour la beauté du geste j'aurai aimé faire ça avec une formule matricielle et là j'avoue que je touche mes limites...
    Excel recommence à m'insulter comme quand je débutai et j'aime pas ça !

    Would you please to help me ? thanks so much
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Avec SOMMEPROD à valider de façon normale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((JOURSEM(A1:A30;2)>5)*1)
    Avec SOMME, à valider avec MAJ+CTRL+ENTER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME((JOURSEM(A1:A30;2)>5)*1)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut


    t'es trop fort Pierre !

    Pierre tu es Pierre et sur cette Pierre je batirai mon apllication avec Excel !

    j'ai essayé avec des bdlire, nb, nb.si et autre trucs dans le genre et je n'ai pas pensé un demie-secondeà faire la somme !

    Merci!
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  4. #4
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Petit supplément chantilly, on peut mettre des conditions avec une formule matricielle ?

    un truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=si(a1:d10="";"";somme(joursem(a1:d10)..etc
    Parce que je patauge encore avec ça...
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Oui, mais pas avec la fonction SI... (C'est une des utilisations (la principale) de SOMMEPROD de travailler sur des conditions...)

    En fait, SOMMEPROD, comme son nom l'indique, réalise la SOMME des PRODuits...

    Il faut dès lors savoir que, pour Excel, la valeur logique VRAI vaut 1 et la valeur logique FAUX vaut 0.

    On peut donc avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A10<>"") * (JOURSEM(A1:A10;2)>5))
    en ajoutant des conditions à l'envi

    Peux-tu détailler ce que tu souhaites obtenir?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Sympa Pierre de prendre du temps pour me faire progresser !

    Mona calendrier à cette gueule là:

    Janvier Février Mars ....
    lun01 mer01 lun 01
    Mar02 jeu 02 mar 02
    Mer03 ven03 mer 03
    ...

    Les glands qui ont inventés le calendrier n'ont pas mis le même nombre de jours partout d'ou quelques cellules vide par ci par là.. Et devine ce qui de passe lorsque tu fais un JOURSEM(.;.) sur une cellule vide...


    d'ou le besoin d'une condition pour les cellules vide...

    voilà
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ilcocodrillo Voir le message
    ...Et devine ce qui de passe lorsque tu fais un JOURSEM(.;.) sur une cellule vide...
    ...
    Il la compte comme un samedi, car le 01/01/1900 est un dimanche...

    Donc, la solution proposée répond à ta demande, il me semble.

    A bientôt sur nos forums
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    On peut donc avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A10<>"") * (JOURSEM(A1:A10;2)>5))
    Ben imagine toi que non ça ne fonctionne pas...

    si j'ai bien tout compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A10<>"") * (JOURSEM(A1:A10;2)>5))
    ça devrait pas plutôt être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A10<>"") ; (JOURSEM(A1:A10;2)>5))
    au passage tu remarquera que ça marche pas non plus...


    petit complément d'info:
    Lorsque tu écris
    C'est une des utilisations (la principale) de SOMMEPROD de travailler sur des conditions
    Cela veut dire pour traduire dans ma langue...
    que SOMEPROD((A1:A10)<>"";...)
    ça pourrait se dire tu fais la somme des produits des plages si le contenu de la cellule de la plage A1:A10 est différent de "" ?

    J'ai bien compris chef ?

    Parce que ça m'ouvre des horizons nouveau cette utilisation de cette fonction que j'utilisai bétement à faire ...la somme des produits...

    decidement tu m'aura appris des choses Pierre ! La première ça à été l'utilité des classes dans les projets VBA !
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Chez moi, elle fonctionne très bien.

    Si on veut être puriste, on testera sur les cellules non vides

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((NON(ESTVIDE(A2:A30)))*(JOURSEM(A2:A30;2)>5))

    Cela veut dire pour traduire dans ma langue...
    que SOMEPROD((A1:A10)<>"";...)
    ça pourrait se dire tu fais la somme des produits des plages si le contenu de la cellule de la plage A1:A10 est différent de "" ?
    Oui, tout à fait. Cette fonction permet d'extraire une valeur selon une série de conditions, du moment que toutes les conditions soient remplies.

    Comme le montre l'exemple dans le fichier joint, qui vaut mieux qu'un long discours, SOMMEPROD travaille sur des matrices (des plages de données) qui doivent être de même taille. SOMMEPROD peut aussi, comme dans notre cas, travailler plusieurs fois sur la même matrice.

    Le fichier montre comment travaille SOMMEPROD. On se base pour travailler avec cette fonction sur le fait que VRAI vaut 1 et FAUX vaut 0.

    Dans la colonne B, on teste si la cellule en A est "non" vide. Si non vide, la formule renvoie VRAI => 1.
    En C, on teste si le jour de la semaine est >5. Si oui, la formule renvoie VRAI = 1.

    En D, on fait B x C => 1 si B et C sont VRAI, 0 dans tous les autres cas.

    On fait la somme des valeurs en D, ce qui revient à compter le nombre de fois que les deux conditions ont été remplies.

    SOMMEPROD permet de faire cela sans devoir "décortiquer" sur plusieurs colonnes, en utilisant une seule cellule.

    fichier d'exemple de SOMMEPROD

    PS: Tant mieux si l'article sur les classes t'a appris des choses... Bon week-end

    PS2: je sortirai très prochainement un tuto sur cette fonction
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Parfait, L'exemple est très clair. Merci beaucoup Pierre. Je n'arrive toujours pas à faire fonctionner ça sur mon calendrier mais je vais finir par trouver ou j'ai fais une boulette.

    bon week-end
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Tu peux mettre ton fichier ou un extrait du fichier si tu le souhaites...

    Tu es sûr que les cellules sont bien vides? Elles ne sont pas remplies d'espaces? (Tu rigoles sûrement, mais j'en ai déjà vu, tu sais... )
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Je l'ai le foutu pépin ! c'est pas un espace mais c'est pas mieux....

    En fait c'est un calendrier automatique donc plein de formules et particulièrement pour le 29/02...

    tu vas comprendre tout de suite ou le bât blesse...

    calendrierSOMMEPROD.xls

    en décortiquant la formule comme dans ton exemple j'ai trouvé tout de suite... c'était juste devant mes yeux !

    Par contre je vois comment éviter ça... parce que si je met 0, c'est une valeur donc une date... si je met rien ou FAUX c'est pareil.

    Je pense que je vais devoir changer de logique pour gérer cette date là
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Tu peux tester si la cellule est plus grande que 0
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    J'aime bien ça ! j'vais l'essayer tout de suite !
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

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

Discussions similaires

  1. Formule matricielle pour une variable
    Par sariel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/01/2008, 19h31
  2. Problème formule matricielle
    Par Gerard6969 dans le forum Excel
    Réponses: 2
    Dernier message: 18/09/2007, 08h47
  3. Formule matricielle et Fonction ligne()
    Par FredoMin dans le forum Excel
    Réponses: 1
    Dernier message: 28/06/2007, 11h14
  4. Comment affecter une formule matricielle longue dans une cellule
    Par dav_e77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 18h56
  5. [VBA-E] - formule matricielle
    Par jimbololo dans le forum Macros et VBA Excel
    Réponses: 37
    Dernier message: 09/06/2006, 14h27

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