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 :

un Sommeprod qui me fait devenir chevre [XL-2007]


Sujet :

Excel

  1. #1
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut un Sommeprod qui me fait devenir chevre
    en faite une question existentielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(NON(ESTNA(S36:AD36))*(S36:AD36))
    ceci me retourne le code "#N/A"
    la zone en S36:AD36 est une table qui sers entre autre a un graphique (d’où les NA() pour éviter de "cradossage" du graphique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMME.SI(S36:AD36;"<>#N/A";S36:AD36)
    ceci me retourne bien une valeur numérique
    quant à celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(NON(ESTNA(S36:AD36))*1)
    me retourne 4
    et là je ne comprends pas pourquoi le mariage des deux formule pour obtenir la premiere cité ne marche pas
    je m'arrache les cheveux sur ce truc ( et il ne m'en reste déjà pas beaucoup, et je ne suis pas des plus tenter par la coupe Yul Brynner)

  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
    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(ESTNA(S36:AD36);0;S36:AD36))
    A valider avec Ctrl+Shift+Entrée comme une fonction matricielle.

  3. #3
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(ESTNA(S36:AD36);0;S36:AD36))
    A valider avec Ctrl+Shift+Entrée comme une fonction matricielle.
    cette fonction est identique en théorie à celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMME.SI(S36:AD36;"<>#N/A";S36:AD36)
    mais en théorie seulement car elle me retourne également #N/A
    les cellules testées sont remplies par une formule (S36:AD36)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(RECHERCHEV($R36;tablo_annee;S$32;FAUX)="";NA();RECHERCHEV($R36;tablo_annee;S$32;FAUX))

  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
    J'ai testé la formule que j'ai donnée avec une série contenant des nombres et des fonctions NA() et elle fonctionne.
    Sauf si on oublie de la valider comme une fonction matricielle.
    Citation Envoyé par Menhir Voir le message
    A valider avec Ctrl+Shift+Entrée comme une fonction matricielle.

  5. #5
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Menhir Voir le message
    J'ai testé la formule que j'ai donnée avec une série contenant des nombres et des fonctions NA() et elle fonctionne.
    Sauf si on oublie de la valider comme une fonction matricielle.
    bien le problème, soit j'ai #N/A soit j'ai 0
    voilà la tronche de la plage s36:ad36

    1.170 | 1.170 | 1.310 | 1.300 | #N/A |#N/A |#N/A |#N/A |#N/A |#N/A |#N/A |#N/A |

    savoir que la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI(S36:AD36;"<>#N/A";S36:AD36)
    quant à elle retourne 4.95

    eviter les formules matricielles c'est le but du somme prod , suffit de cliquer dans une matricielle pour couper son fonctionnement
    d'où la volonté de passer par un Sommeprod mais si il fonctionne sur un plage sans NA il semble avoir du mal à comprendre les
    plage de renseignement graphique, je vais tenter de contourner ce problème par l'ajout d'une ligne intermédiaire pour virer les NA
    et le remplacer par un vide ( apparemment le sommeprod gère mieux ceux là)

  6. #6
    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 Daranc Voir le message
    voilà la tronche de la plage s36:ad36
    1.170 | 1.170 | 1.310 | 1.300 | #N/A |#N/A |#N/A |#N/A |#N/A |#N/A |#N/A |#N/A |
    savoir que la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI(S36:AD36;"<>#N/A";S36:AD36)
    quant à elle retourne 4.95
    La formule que j'ai donnée aussi.

    suffit de cliquer dans une matricielle pour couper son fonctionnement
    Un simple clic sur la cellule ne perturbe pas plus une matricielle qu'une autre formule.
    Pour ça, il faut soit cliquer dans la barre de formule, soit faire un double clic sur la cellule.
    Et si ça arrive, il suffit de taper sur Echap pour que la formule reste inchangée.

    Perso, je trouve les formules matricielles bien plus pratiques, compréhensibles et fiables que la fonction SOMMEPROD().

    je vais tenter de contourner ce problème par l'ajout d'une ligne intermédiaire pour virer les NA et le remplacer par un vide ( apparemment le sommeprod gère mieux ceux là)
    Au lieu de les remplacer par des vides, remplace-les par des 0, comme ça tu n'auras même plus besoin d'une SOMMEPROD mais d'une simple SOMME (il est même probable que SOMME puisse fonctionner avec les vides).

  7. #7
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Bon avec une astuce ( un peu bricolée quand même , faut bien l'avouer)
    je suis dons passer par une ligne intermédiaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(ESTNA(S36);99999;S36)
    cette formule tirée de S39 à AD39
    et la formule en R47
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD((S39:AD39<>"")*(S39:AD39)*(S43:AD43<100)*(S43:AD43))/SOMMEPROD((S39:AD39<>"")*(S39:AD39))
    donne bien le même résultat que la matricielle en R44
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(S39:AD39<>"";SI(NON(ESTERREUR(S36:AD36));S36:AD36*S39:AD39;"");))/SOMME(SI(S39:AD39<>"";SI(NON(ESTERREUR(S36:AD36));S39:AD39;0);))

  8. #8
    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
    N'aurait-il pas été plus simple d'écrire :
    et, en supposant que la précédente formule est en ligne 43, en R47 :

  9. #9
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Menhir Voir le message
    N'aurait-il pas été plus simple d'écrire :
    non parce que j'ai soit une prise en compte de la valeur ( qui tourne au alentour des 1 (variation de 0à 2)

    Citation Envoyé par Menhir Voir le message
    et, en supposant que la précédente formule est en ligne 43, en R47 :
    le calcul va se jouer sur une interraction entre deux plages complète avec des conditions de prise en compte ou non des cellules ( si j'ai un quantité de 0 acheté le prix du marché n'est pas prix en compte dans la valeur de calcul du stock en fait on pondère la valeur en fonction de la Qte. commandée)
    j'ai juste traduit la formule matricielle en sommeprod ( même si il a fallut passer par une étape intermédiaire) les feuille de calcul sont crées puis on te demande une modif , puis une autre ( tous les ans a peu prés ..quand même), puis une adaptation etc... au final tu rustines plus que tu construit (faut se rappeler comment marche le système feuille crée sous 2003...2007 n'existait pas encore ... ce qui explique une certaine prise de distance avec les plans de bases)

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

Discussions similaires

  1. [debutant] page html qui ne fait pas fonctionner la fonction
    Par Battosaiii dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2006, 19h25
  2. Thème qui a fait planter WinXP Pro
    Par lechewal dans le forum Windows XP
    Réponses: 2
    Dernier message: 13/02/2006, 09h23
  3. [debutant]programme qui ne fait rien.
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 04/12/2005, 22h19
  4. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25
  5. fonction qui en fait planter une autre
    Par ickis dans le forum C
    Réponses: 5
    Dernier message: 18/08/2003, 21h33

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