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 :

utiliser l'en-tête de colonne dans SOMMEPROD


Sujet :

Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Points : 156
    Points
    156
    Par défaut utiliser l'en-tête de colonne dans SOMMEPROD
    Bonsoir


    j'ai un petit souci et je n'arrive pas à le résoudre seul.
    Je voudrais utiliser l'en-tête de colonne dans ma formule SOMMEPROD
    car ma base sur laquelle je veux travailler n'aura pas systématiquement les colonnes aux mêmes coordonnées.

    dans mon fichier que je joins,
    - j'ai une formule (Orange) qui utilise les coordonnées, elle fonction bien.
    - En (vert) la même formule mais en voulant utiliser l'en-tête de colonne

    Si quelqu'un peut m'aider

    Merci d'avance
    Christian

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    salut
    en fait ça marche très bien avec l'entete de colonne, mais il y a une condition a sommeprod c'est que toutes les données de la colonne doivent etre des chiffres, et donc c'est l'entete de la colonne qui perturbe
    essaye sans
    je t'ai aussi simplifié le formule, la parenthese avec a1:g1 = "montant ne sert a rien pour le calcul.
    sinon, le mieux est de nommer tes colonnes avec une formule "décaler". ainsi, tu peux garder tes entetes, et la formule étant dynamique, elle n'utilise que la hauteur de colonne réelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    en E11:
    =SOMMEPROD((Extract!F:F-Extract!E:E<=D11)*(Extract!F:F-Extract!E:E<D12)*(Extract!D:D))
    bon dimanche

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Points : 156
    Points
    156
    Par défaut
    Bonjour

    Merci alsimbad de ta réponse.

    Je viens de m'apercevoir que c'est les caractères alphabétiques qui génère une erreur dans ma formule.

    l'erreur renvoyé n'est pas à cause de l'entête car cela marche si il y avait pas d'alphabétique dans les données.
    L'entête je veux la garder, car ma base à analyser est issue d'un autre programme que j'extrais par copier/coller, donc je n'aurais pas nécessairement les colonnes toujours au même coordonnées sur Excel.

    Je ne sais pas si c'est possible dans les critères de SOMMEPROD, exclure une colonne ayant du alphabétique, j'ai essayé avec ESTNUM() mais depuis tout à l'heure je cherche sans trouver.

    voici un nouveau fichier retraçant cela.

    Faut voir avec decaler, mais c'est aussi une découverte pour moi


    Cordialement
    Christian de montpellier

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    Citation Envoyé par crissud
    Je viens de m'apercevoir que c'est les caractères alphabétiques qui génère une erreur dans ma formule.

    l'erreur renvoyé n'est pas à cause de l'entête
    hé ben si
    ce que j'appelle l'entete, ce sont les caracteres de texte qui sont en tete de tes colonne montant, date ect. si tu avais du texte a un endroit quelquonque de ta colonne, cela genererait une erreur aussi.
    dans le deuxieme fichier que tu as joint, je ne vois pas que ça marche
    si tu ne veux pas enlever cet entete, tu n'as pas d'autre solution que de t'atteler a la formule décaler
    si tu sais nommer une plage, c'est le mieux.
    je te joins ton fichier avec les formules, tu dis quoi

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Points : 156
    Points
    156
    Par défaut
    Re

    Merci d'avoir passé un peu de temps et d'avoir essayé, mais ce n'est pas là où je bloque.

    Je ne connais pas à l'avance où se trouve mes colonnes, [Paiement] [Date] [Montant], sur ma feuille Extract!.

    C'est pour cela que dans ma formule je cherche l'entête Paiement, Date et Montant qui sont les seuls informations que je dispose pour la syntaxe de ma formule.


    Cordialement
    Christian de montpellier

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    là, je crois que je peux passer la main au premier volontaire. je suppose que tu peux le faire avec un equiv, puis un décaler, mais j'ai pas la competence pour ce genre de formule. j'y reflechirais néamoins.
    est ce que la casse et le format sont toujour les mêmes ?

  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
    Salut

    Comme le suggère Alsimbad, une solution est de passer par DECALER...

    Pour simplifier un peu la formule, je crée d'abord une plage nommée avec DECALER via le gestionnaire de noms... J'appelle cette plage Donnees et en référence, lors de la création du nom, j'utilise ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);NBVAL(Feuil1!$1:$1))
    Ainsi, la plage s'étend au fur et à mesure des données et des champs qui sont ajoutés/supprimés. Pour cela, je considère que tes données démarrent en A1 avec une ligne d'entête, et qu'aucune ligne n'est vide en A entre la ligne 1 et la fin de ton tableau. Je considère également qu'aucune colonne n'est vide en 1 entre la colonne A et la dernière colonne de ton tableau. En clair, il n'y a sur la feuille QUE tes données (ta feuille sert de table de données)

    Si, parmi plusieurs colonnes, tu as effectivement des colonnes dont les intitulés sont Montant, Date et Paiement, retrouver par exemple la somme des montants payés en octobre (date en octobre et PAIEMENT à "Oui"), tu peux utiliser cette charmante formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((DECALER(Donnees;1;EQUIV("Paiement";DECALER(Donnees;0;0;1);0)-1;LIGNES(Donnees)-1;1)="Oui")*(MOIS(DECALER(Donnees;1;EQUIV("Date";DECALER(Donnees;0;0;1);0)-1;LIGNES(Donnees)-1;1))=10)*(DECALER(Donnees;1;EQUIV("Montant";DECALER(Donnees;0;0;1);0)-1;LIGNES(Donnees)-1;1)))


    Tu peux simplifier la formule
    en créant trois plages nommées avec DECALER (une pour les montants, une pour les dates, une pour la colonne PAIEMENT), ce qui allègera évidemment la formule ci-dessus. Dans ce cas, tu crées les trois plages nommées Dates, Montants et Paiements sur ce modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =DECALER(Feuil1!$A$1;1;EQUIV("Date";Feuil1!$1:$1;0)-1;NBVAL(Feuil1!$A:$A)-1;1)
    =DECALER(Feuil1!$A$1;1;EQUIV("Montant";Feuil1!$1:$1;0)-1;NBVAL(Feuil1!$A:$A)-1;1)
    =DECALER(Feuil1!$A$1;1;EQUIV("Paiement";Feuil1!$1:$1;0)-1;NBVAL(Feuil1!$A:$A)-1;1)
    Et la formule avec SOMMEPROD devient simple et lisible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((Paiements="Oui")*(MOIS(Dates)=10)*Montants)
    Si tu dois réaliser plusieurs SOMMEPROD, tu pourrais peut-être t'orienter vers un tableau croisé dynamique
    "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 habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Points : 156
    Points
    156
    Par défaut
    Re

    Merci Pierre et alsimbad.

    Avec et grâce à votre aide, on arrive au résultat que je souhaitais
    je ne serais pas arrivé seul.

    A présent quelques soit la position de la colonne, dans mon onglet où se trouve mes données, me renvoie le résultat de ma formule

    Je joins le résultat, qui pourrait servir à d'autre

    Bon après midi
    Cordialement
    Christian

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

Discussions similaires

  1. [AC-2007] Comment classer les dates en "En-tête de colonne" dans une requête TDC
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 01/07/2011, 10h32
  2. utiliser l'alias d'une colonne dans une requête
    Par da_latifa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/04/2010, 23h34
  3. utiliser la valeur d'une colonne dans une requete
    Par docv266 dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/08/2007, 15h44
  4. En-têtes de colonnes dans un rapport
    Par ym21 dans le forum Access
    Réponses: 4
    Dernier message: 07/03/2006, 11h05
  5. Guillemets dans un en-tête de colonne
    Par Tutulejouflu dans le forum Oracle
    Réponses: 5
    Dernier message: 12/08/2004, 17h11

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