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 Récupérer une matrice d'un autre fichier pb#Valeur


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 52
    Par défaut SOMMEPROD Récupérer une matrice d'un autre fichier pb#Valeur
    Bonjour,

    J'ai pour objectif de sommer des valeurs et de prendre en compte les deux conditions suivantes :
    L'Identifiant et la date pour sommer des valeurs.
    Mon tableau est :

    Identifiant date Valeur
    Jean 01/01/2019 50€
    Pierre 01/03/2019 75€
    Cédric 01/04/2019 15€
    Jean 01/01/2019 25€
    Jean 01/05/2019 30€

    Donc pour connaître combien m'a coûté Jean au mois de janvier 2019.
    Je fais mon somme prod :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A5="Jean")*(ET(ANNEE(B1:B5="2019");MOIS(B1:B5="Janvier"))*(C1:C5))
    Jusque là tous va bien, j'arrive à retrouver ma valeur correspondante, Soit 75€ pour Jean.

    Mon problème est lorsque je veux faire la même opération depuis un autre fichier excel pour venir sélectionner les plages dans le 1er fichier, j'ai un #VALEUR! qui apparaît.
    A noter que mes plages sélectionnées on le même nombre de ligne.

  2. #2
    Expert éminent 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
    Par défaut
    Citation Envoyé par MLvba Voir le message
    Je fais mon somme prod :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A5="Jean")*(ET(ANNEE(B1:B5="2019");MOIS(B1:B5="Janvier"))*(C1:C5))
    Il serait plus simple de faire un SOMME.SI.ENS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMME.SI.ENS(C1:C5;A1:A5;"Jean";B1:B5>=DATE(2019;1;1);B1:B5<DATE(2019;2;1))
    Mon problème est lorsque je veux faire la même opération depuis un autre fichier excel pour venir sélectionner les plages dans le 1er fichier, j'ai un #VALEUR! qui apparait.
    Comme il a été souvent dit sur ce forum, Excel n'est pas une base de données et il est très "maladroit" dans tout ce qui touche au multifichiers/multiutilisateurs, même si en théorie il est supposé savoir faire quelques bricoles.

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour à tous

    Ou de regarder l'aide de la fonction MOIS qui renvoie 1 à 12 et non des libellés. Attention aussi aux parenthèses et aux guillemets...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((A1:A5="Jean")*(ANNEE(B1:B5)=2019)*(MOIS(B1:B5)=1);(C1:C5))

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 52
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Il serait plus simple de faire un SOMME.SI.ENS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMME.SI.ENS(C1:C5;A1:A5;"Jean";B1:B5>=DATE(2019;1;1);B1:B5<DATE(2019;2;1))

    Comme il a été souvent dit sur ce forum, Excel n'est pas une base de données et il est très "maladroit" dans tout ce qui touche au multifichiers/multiutilisateurs, même si en théorie il est supposé savoir faire quelques bricoles.
    ICI D1 = Janv 2019

    J'ai aussi essayé de faire avec SOMME.SI.ENS mais je traite beaucoup trop de dates pour me permettre de mettre d'encadrer mes dates par mois.
    J'ai essayé de faire la même chose avec SOMME.SI.ENS(C1:C5;A1:A5;"Jean";ET(ANNEE(B1:B5);MOIS(B1:B5));ET(ANNEE(D1);MOIS(D1))) mais cela ne fonctionne pas.

    Excel n'aime pas ET(ANNEE(B1:B5);MOIS(B1:B5));ET(ANNEE(D1);MOIS(D1)

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Re

    De toute évidence tu es fâché avec les formules.

    Fais plutôt un tableau croisé dynamique : en 4 clics tout est ventilé...

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 52
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Re

    De toute évidence tu es fâché avec les formules.

    Fais plutôt un tableau croisé dynamique : en 4 clics tout est ventilé...
    C'est vrai, mais mon soucis principale c'est que je dois récupérer les données de 8 fichiers excels dans lesquel comportent entre 3 à 10 feuilles.
    Est ce que je peux faire un tableau pivot avec plusieurs plages de données regroupées en un seul ?
    C'est pour ça que je voulais utiliser une formule, pour faire des recherches V derrière.

  7. #7
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    RE

    Une chose à étudier est l’utilité de ces n classeurs et feuilles...

    Des formules, matricielles qui plus est, sur des classeurs en liaison, cela va ramer à mort.

    Si les onglets ont la même structure, on peut consolider avec PowerQuery, intégré à partir de la version 2016, en add on sur 2013.

    Si version 2013 pro plus on peut éventuellement consolider avec PowerPivot mais cela alourdit davantage que PowerQuery

  8. #8
    Expert éminent 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
    Par défaut
    Citation Envoyé par MLvba Voir le message
    J'ai aussi essayé de faire avec SOMME.SI.ENS mais je traite beaucoup trop de dates pour me permettre de mettre d'encadrer mes dates par mois.
    Comme dans ta demande tu n'indiquais pas d'où venait la source du critère de recherche, la réponse ne pouvait pas être adaptée.

    Pour reprendre ma formule avec tes nouvelles données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMME.SI.ENS(C1:C5;A1:A5;"Jean";B1:B5;">="&DATE(ANNEE(D1);MOIS(D1);1);B1:B5;"<"&(FIN.MOIS(D1)+1))
    Si c'est une formule à recopier, il sera sans doute nécessaire de mettre quelques $ là où il faut.

    J'ai essayé de faire la même chose avec SOMME.SI.ENS(C1:C5;A1:A5;"Jean";ET(ANNEE(B1:B5);MOIS(B1:B5));ET(ANNEE(D1);MOIS(D1))) mais cela ne fonctionne pas.
    La zone de recherche d'un SOMME.SI.ENS ne peut pas contenir de fonction (excepté des fonctions qui renvoient une référence de cellule).

Discussions similaires

  1. Récupérer une matrice d'un fichier
    Par sikin1989 dans le forum Débuter
    Réponses: 1
    Dernier message: 20/02/2012, 11h03
  2. récupérer une matrice à partir d'un fichier .xlat
    Par maroua_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/08/2011, 14h14
  3. Réponses: 0
    Dernier message: 23/06/2011, 10h39
  4. Réponses: 1
    Dernier message: 25/01/2010, 09h07
  5. Réponses: 2
    Dernier message: 02/07/2009, 08h33

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