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 :

Maximum avec des plages nommées


Sujet :

Excel

  1. #1
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut Maximum avec des plages nommées
    Bonjour,

    [Je n'arrive pas à trouver la séquence de mots clés qui va bien pour me donner une réponse pertinente à ma question. Google me remonte juste ça (mais la solution est perdue en cours de route) : http://www.excelforum.com/excel-form...ed-ranges.html ]

    Ce que je cherche à faire. J'ai deux colonnes auxquelles j'ai donné un nom histoire de rendre intelligibles mes formules. Appelons-les Col1 (dans A) et Col2 (dans B), et je veux produire une troisième colonne (dans C) dont chaque élément est le max de ce qui ce trouve sur Col1 et sur Col2. C'est à dire que la formule de C1 serait =MAX(A1;B1), =MAX(A2;B2) pour C2, etc.

    Je sais qu'il reste possible de travailler ainsi. Naïvement, j'avais tenté d'écrire dans C1: =MAX(Col1;Col2) qui me prend le max de toutes les cellules des 2 colonne. Autant dire pas du tout ce que je cherchais à faire.

    Vous l'aurez deviné, ma question est: est-il possible d'exprimer ma formule avec mes noms de colonnes (cellules nommées) ? Et si oui comment ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 760
    Points : 28 618
    Points
    28 618
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    =MAX(Col1;Col2) ne peux pas fonctionner parce-que l'on ne peux pas nommer une plage de cellules qui est déjà une référence de cellule. En effet, la colonne COL existe et il y a la ligne 1
    En revanche MAX(Col_1;Col_2) fonctionnera.
    Cependant idéalement il faudrait donner un nom moins exotique.
    Il est aussi préférable de nommer les deux colonnes (par exemple CA) et de faire MAX(CA)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Merci, mais en fait, mes noms de cellules ne posent pas problème. Col1 et Col2, c'était pour simplification.
    En réalité, elles portent des noms du genre de Ax1AC2occ. Et pour l'instant, je ne trouve pas mieux que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(INDEX(Ax1AC1occ;LIGNE(A3);1);INDEX(Ax1AC2occ;LIGNE(A3);1))
    Je sens que l'on peux mieux faire (pour de la clarté), mais je ne trouve pas.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pour faire une formule générique on peux faire :

    =MAX(INDEX(COL_1;LIGNE());INDEX(COL_2;LIGNE()))

    en effet Ligne() renvoi le N° de ligne où il se trouve !

    sinon j'ai pas mieux!

    Tu dis si cela te convient ........ ou pas

    bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  5. #5
    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
    Il y aurait aussi une possibilité avec DECALER() selon le même principe mais en intégrant dans le nom que les cellules de la première lignes.
    Mais ça ne serait pas mieux que d'utiliser INDEX().
    Le seul intérêt c'est que tu pourrais utiliser un seul nom. Par exemple, si je nomme "test" les cellules A1:A2, la formule serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(DECALER(test;LIGNE()-1;0))
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    J'ai plein d'autres calculs qui font que nommer toute la colonne est fort pratique. Du coup la solution avec Décaler ne m'avance pas plus que ça.

    En revanche, je prends la surcharge sans arguments d'INDEX()

    Merci à vous tous.

    PS: je ne sais pas si c'est une question revient souvent, mais je la verrai bien dans une FAQ.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  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 Luc Hermitte Voir le message
    J'ai plein d'autres calculs qui font que nommer toute la colonne est fort pratique.
    Juste un petit détail : les deux ne sont pas incompatible. Deux noms différents peuvent très bien désigner une même cellule.
    Il est donc tout à fait possible d'apposer un nom sur chacune de tes colonne et d'en avoir aussi un pour la première paire de cellules.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. [XL-2007] Puis-je optimiser mes if else avec des plages et variables aux noms différents ?
    Par GroFlo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/08/2014, 17h16
  2. Réponses: 1
    Dernier message: 14/06/2013, 00h07
  3. Problème étrange avec des plages de cellules
    Par ANOVA dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/08/2011, 23h12
  4. [XL-2003] Problème avec des plages de cellules non rectangulaires
    Par rodival dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/08/2009, 15h49
  5. Liste des plages nommées d'un workbook
    Par Gautheron dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/11/2008, 20h48

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