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 :

formules Excel 2003


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    métreur (MŒ bât.)
    Inscrit en
    Juillet 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : métreur (MŒ bât.)
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2011
    Messages : 41
    Points : 16
    Points
    16
    Par défaut formules Excel 2003
    Bonjour,

    Je cherche une formule simple (du genre : retourne la valeur de la colonne (en vert) dont il y a une valeur) pour remplir automatique la colonne "TYPE" (en jaune) :
    je veux que la cellule en jaune retourne le libellé de la colonne (en vert) dont il y a une valeur dans la ligne correspondante
    (ex : I2 = "P20" car il y a une valeur quelconque sur la ligne 2 dans la colonne "P20" en I)

    Nom : TEST.png
Affichages : 107
Taille : 14,5 Ko

    Merci de votre aide.
    Désolé j'ai un peu de mal à expliquer

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    Quelque chose de ce genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =si(estvide(b2);si(estvide(c2);si(estvide(d2);si(estvide(e2);si(estvide(f2);si(estvide(g2);si(estvide(h2);"";h$1);g$1);f$1);e$1);d$1);c$1);b$1)

  3. #3
    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 922
    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 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Autre proposition
    A placer en I2 et copier vers le bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2<>0) * COLONNE($B2:$H2))-1);"")

  4. #4
    Membre à l'essai
    Homme Profil pro
    métreur (MŒ bât.)
    Inscrit en
    Juillet 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : métreur (MŒ bât.)
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2011
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par corona Voir le message
    Bonjour,
    Autre proposition
    A placer en I2 et copier vers le bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2<>0) * COLONNE($B2:$H2))-1);"")
    Voila! C'est ce genre de formule que je cherchais car le nombre de colonnes peu augmenter et malheureusement le nombre de formules dans les formules sont limités ce qui exclue la 1ere solution.
    Seulement, si il y a 2 valeurs dans la ligne, la formule ne fonction plus

  5. #5
    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 922
    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 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans ton exemple tu ne montres qu'une seule colonne de remplie. J'ai faillis préciser cela dans mon Post.
    Dans ce cas là il faudrait passer par une concaténation.
    C'est peut-être mieux alors de passer par une fonction personnalisée (VBA).

  6. #6
    Membre à l'essai
    Homme Profil pro
    métreur (MŒ bât.)
    Inscrit en
    Juillet 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : métreur (MŒ bât.)
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2011
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    le VBA c'est bien mais mes fichiers sont déjà assez lourds : si je peux éviter, j'évite le VBA et je suis une bille en VBA

  7. #7
    Membre à l'essai
    Homme Profil pro
    métreur (MŒ bât.)
    Inscrit en
    Juillet 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : métreur (MŒ bât.)
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2011
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Est-il possible de faire retourné le libellé de la colonne dont la la valeur est la plus grande dans la ligne ?

  8. #8
    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 922
    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 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Est-il possible de faire retourné le libellé de la colonne dont la la valeur est la plus grande dans la ligne ?
    Comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2=GRANDE.VALEUR($B2:$H2;1)) * COLONNE($B2:$H2))-1);"")

  9. #9
    Membre à l'essai
    Homme Profil pro
    métreur (MŒ bât.)
    Inscrit en
    Juillet 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : métreur (MŒ bât.)
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2011
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Ah oui merci ! nikel la formule

    Peux-tu m'expliquer la formule en détail STP ? notamment DECALER, SOMMEPROD et * COLONNE($B2:$H2))-1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2=GRANDE.VALEUR($B2:$H2;1)) * COLONNE($B2:$H2))-1);"")

  10. #10
    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 922
    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 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La formule COLONNE() renvoie le n° de colonne où se trouve la cellule, pour les autres formules un peu de lecture, pour SOMMEPROD, pour DECALER (Je ne sais pas s'il y a un didacticiel sur developpez.com, je n'ai pas trouvé).
    Si j'ai le temps, je vais préparer l'explication totale décomposée pas à pas.

  11. #11
    Membre à l'essai
    Homme Profil pro
    métreur (MŒ bât.)
    Inscrit en
    Juillet 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : métreur (MŒ bât.)
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2011
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    beaucoup pour tes lumières

  12. #12
    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 922
    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 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Explication de la formule
    On suppose dans notre exemple que nous avons un tableau de $A$1:$E$maxline
    La colonne 1 contient des valeurs qui ne nous intéressent pas dans la formule.
    Les libellés se trouvent dans la plage $B2:$D2 et ensuite à partir de la ligne 2 $B2:$Emaxline, les éléments à comparer.
    La plus grande valeur pour l'exemple se trouvera en cellule $D2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBVAL($B2:$D2);DECALER($A$1;0;SOMMEPROD( ($B2:$D2=GRANDE.VALEUR($B2:$D2;1)) * COLONNE($B2:$D2))-1);"")
    1 - D'abord on vérifie s'il y a des valeurs dans la plage $B2:$D2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NBVAL($B2:$D2);formules renvoyant le libellé;"")
    2 - Calculer la position de la valeur la plus grande dans la plage B2:H2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMMEPROD( ($B2:$D2=GRANDE.VALEUR($B2:$D2;1)) * COLONNE($B2:$D2))-1)
    Dans SOMMEPROD
    Elément 1 - ($B2:$D2=GRANDE.VALEUR($B2:$D2;1)) aura une matrice qui renverra (FAUX.FAUX.VRAI)
    Elément 2 - COLONNE($B2:$H2) renverra une matrice (2.3.4)
    On va multiplier les 2 éléments (FAUX valant 0 et VRAI 1) nous aurons donc dans notre exemple (0 * 2) + (0 * 3) + (1 * 4) ce qui donnera 4 (comme la première colonne du tableau $B2:$D2 est la colonne 2 de la feuille excel, nous devons retrancher 1 pour obtenir le bon résultat.
    D'où SOMMEPROD(($B2:$G2=GRANDE.VALEUR($B2:$G2;1)) * COLONNE($B2:$G2))-1)
    Maintenant que nous connaissons le n° de la colonne où aller chercher le libellé. On va aller chercher cette information dans la plage $B2:$D2. C'est là qu'entre en scène la fonction DECALER
    3 – Prendre le libellé le colonne 3 de la plage $B2:$D2 (DECALER)
    Nous partons de la cellule $A$1 dont on se décale de 0 ligne (puisque les libellés que nous cherchons se trouve sur la ligne 1 - même ligne que $A$1) et de 3 colonnes
    Rappel : Ce chiffre 3 est calculer par la formule (SOMMEPROD(($B2:$G2=GRANDE.VALEUR($B2:$G2;1)) * COLONNE($B4:$G4))-1))
    CQFD J'espère que c'est plus clair et que je n'ai rien oublié.

Discussions similaires

  1. [XL-2003] formule excel 2003
    Par VEROLYDE dans le forum Excel
    Réponses: 1
    Dernier message: 14/01/2011, 10h00
  2. Réponses: 5
    Dernier message: 22/02/2008, 19h34
  3. Réponses: 2
    Dernier message: 13/12/2007, 10h55
  4. [Excel 2003] Comment evaluer une formule en texte
    Par nuriel2 dans le forum Excel
    Réponses: 5
    Dernier message: 30/08/2007, 16h12
  5. [EXCEL 2003] gérer les erreur dans les formules
    Par aityahia dans le forum Excel
    Réponses: 2
    Dernier message: 15/05/2007, 10h29

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