|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Micka Mtechnicien méthodes Inscription : juillet 2011 Messages : 6 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : avril 2005 Messages : 425 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
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
|
|
|
00
|
|
|
#4 | |
|
Invité de passage
![]() Micka Mtechnicien méthodes Inscription : juillet 2011 Messages : 6 ![]() |
Citation:
Seulement, si il y a 2 valeurs dans la ligne, la formule ne fonction plus |
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
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
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Micka Mtechnicien méthodes Inscription : juillet 2011 Messages : 6 ![]() |
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
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Micka Mtechnicien méthodes Inscription : juillet 2011 Messages : 6 ![]() |
Est-il possible de faire retourné le libellé de la colonne dont la la valeur est la plus grande dans la ligne ?
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
Bonjour,
Citation:
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
|
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Micka Mtechnicien méthodes Inscription : juillet 2011 Messages : 6 ![]() |
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);"") |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
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
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Micka Mtechnicien méthodes Inscription : juillet 2011 Messages : 6 ![]() |
beaucoup pour tes lumières
|
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
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);"") Code :
=SI(NBVAL($B2:$D2);formules renvoyant le libellé;"") Code :
SOMMEPROD( ($B2:$D2=GRANDE.VALEUR($B2:$D2;1)) * COLONNE($B2:$D2))-1) 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
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com