Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 15h59   #1
Invité de passage
 
Homme Micka M
technicien méthodes
Inscription : juillet 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Micka M
Localisation : France

Informations professionnelles :
Activité : technicien méthodes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2011
Messages : 6
Points : 0
Points : 0
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)

TEST.png

Merci de votre aide.
Désolé j'ai un peu de mal à expliquer
micka40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h10   #2
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
Bonjour,

Quelque chose de ce genre ?

Code :
=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)
__________________
Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp. Et ce coup ci, elle ne nous a pas ratés
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h15   #3
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
Bonjour,
Autre proposition
A placer en I2 et copier vers le bas
Code :
=SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2<>0) * COLONNE($B2:$H2))-1);"")
__________________
Philippe Tulliez
http://philippe.tulliez.be
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
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h33   #4
Invité de passage
 
Homme Micka M
technicien méthodes
Inscription : juillet 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Micka M
Localisation : France

Informations professionnelles :
Activité : technicien méthodes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2011
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par corona Voir le message
Bonjour,
Autre proposition
A placer en I2 et copier vers le bas
Code :
=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
micka40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h44   #5
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
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).
__________________
Philippe Tulliez
http://philippe.tulliez.be
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
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 17h00   #6
Invité de passage
 
Homme Micka M
technicien méthodes
Inscription : juillet 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Micka M
Localisation : France

Informations professionnelles :
Activité : technicien méthodes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2011
Messages : 6
Points : 0
Points : 0
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
micka40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 17h09   #7
Invité de passage
 
Homme Micka M
technicien méthodes
Inscription : juillet 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Micka M
Localisation : France

Informations professionnelles :
Activité : technicien méthodes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2011
Messages : 6
Points : 0
Points : 0
Est-il possible de faire retourné le libellé de la colonne dont la la valeur est la plus grande dans la ligne ?
micka40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 17h36   #8
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
Bonjour,
Citation:
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 :
=SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2=GRANDE.VALEUR($B2:$H2;1)) * COLONNE($B2:$H2))-1);"")
__________________
Philippe Tulliez
http://philippe.tulliez.be
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
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 17h51   #9
Invité de passage
 
Homme Micka M
technicien méthodes
Inscription : juillet 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Micka M
Localisation : France

Informations professionnelles :
Activité : technicien méthodes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2011
Messages : 6
Points : 0
Points : 0
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 :
=SI(NBVAL($B2:$H2);DECALER($A$1;0;SOMMEPROD( ($B2:$H2=GRANDE.VALEUR($B2:$H2;1)) * COLONNE($B2:$H2))-1);"")
micka40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 18h15   #10
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
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.
__________________
Philippe Tulliez
http://philippe.tulliez.be
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
corona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 18h16   #11
Invité de passage
 
Homme Micka M
technicien méthodes
Inscription : juillet 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Micka M
Localisation : France

Informations professionnelles :
Activité : technicien méthodes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : juillet 2011
Messages : 6
Points : 0
Points : 0
beaucoup pour tes lumières
micka40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 19h19   #12
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 306
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 306
Points : 2 654
Points : 2 654
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 :
=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 :
=SI(NBVAL($B2:$D2);formules renvoyant le libellé;"")
2 - Calculer la position de la valeur la plus grande dans la plage B2:H2
Code :
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é.
__________________
Philippe Tulliez
http://philippe.tulliez.be
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
corona est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h45.


 
 
 
 
Partenaires

Hébergement Web