Excel - transposer multicellule sur des ligne
ToRoX
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
Bonjour la communauté !
Je viens souvent sur ccm pour trouver des trucs et astuces pour réaliser mes formules excel, mais cette fois je suis bloqué bloqué : /
.
J'ai 2 feuilles dans mon classeur :
1- liste d'applications
2- liste de serveurs
.
Pour chaque ligne (1ligne=1application), je souhaiterai renseigner la liste des serveurs rattachés sur cette ligne.
.
Représentation:
1- liste des applications
id_application | nom_application |et plein d'info dans Xcellules
.
2- liste serveurs
id_application | id_serveur | nom_serveur
.
Résultat souhaité:
1- liste applications
id_application | nom_application | Xcellules | nom_serveur1 | nom_serveur2 | nom_serveur3 ...
.
Je souhaiterai que tout soit automatique via fonctions et/ou Macros.
Merci à tous pour votre aide, conseil, piste de recherche ou développement :)
Précision : microsoft 2003
Je viens souvent sur ccm pour trouver des trucs et astuces pour réaliser mes formules excel, mais cette fois je suis bloqué bloqué : /
.
J'ai 2 feuilles dans mon classeur :
1- liste d'applications
2- liste de serveurs
.
Pour chaque ligne (1ligne=1application), je souhaiterai renseigner la liste des serveurs rattachés sur cette ligne.
.
Représentation:
1- liste des applications
id_application | nom_application |et plein d'info dans Xcellules
.
2- liste serveurs
id_application | id_serveur | nom_serveur
.
Résultat souhaité:
1- liste applications
id_application | nom_application | Xcellules | nom_serveur1 | nom_serveur2 | nom_serveur3 ...
.
Je souhaiterai que tout soit automatique via fonctions et/ou Macros.
Merci à tous pour votre aide, conseil, piste de recherche ou développement :)
Précision : microsoft 2003
2 réponses
-
bonjour,
voici la formule qui permet de t'aider.
ton tableau serveur est comme ca :
2- liste serveurs
id_application | id_serveur | nom_serveur
1- liste applications
id_application | nom_application | Xcellules | nom_serveur1 | nom_serveur2 | nom_serveur3 ...
à nom_serveur1 : tu mets cette formule :
=SI(NB.SI(Application!$A:$A;$E7)>=1;DECALER(Application!$A$1;EQUIV($E7;Application!$A:$A;0)-1;2;;);"")
à nom-serveur2 :
=SI(NB.SI(Application!$A:$A;$E7)>=1;DECALER(Application!$A$1;EQUIV($E7;Serveur!$A:$A;0);2;;);"")
à nom serveur3 :
=SI(NB.SI(Application!$A:$A;$E7)>=1;DECALER(Application!$A$1;EQUIV($E7;Serveur!$A:$A;0)+1;2;;);"")
voici ce qu'elle fait :
nb.si : compte le nombre de fois où la cellule E7 apparaît dans la colonne A de ta feuille Application. (E7, cellule ou se trouve le nom ton application)
important :
eQUIV($E7;Serveur!$A:$A;0)-LIGNE(Serveur!$A$1) : donne le numéro de lignes ou se trouve ton application(E7), dans la colonne A da tafeuille Application. A ce numéro de lignes tu fais -1 pour le serveur 1; 0 pour le serveur 2; +1 pour le serveur 3 ....
la fonction decaler permet de décaler :
DECALER(Application!$A$1;EQUIV($E7;Application!$A:$A;0)-1;2;;) :
cellule de référence : A1 de la feuille Application.
On lui rajoute le numéro de lignes où se trouve ton application (cf equiv) auquel on rajoute -1 ou 0 ou +1 ou +2 en fonction du numéro de serveur....
et on va à la colonne 2 pour chercher le nom du serveur.
Je peux pas te donner de fichier dans cijoint car pas accès mais essaie et vois ce que ca donne -
Bonjour Mélanie,
Merci pour ta réponse !
Je suis entrain d'adapter à mon tableau actuellement, juste pour etre sur que ceci est une coquille dans ta réponse (sinon je ne comprend plus la logique de la formule ^^) :
========
à nom_serveur1 : tu mets cette formule :
=SI(NB.SI(Application!$A:$A;$E7)>=1;DECALER(Application!$A$1;EQUIV($E7;Application!$A:$A;0)-1;2;;);"")
à nom-serveur2 :
=SI(NB.SI(Application!$A:$A;$E7)>=1;DECALER(Application!$A$1;EQUIV($E7;Serveur!$A:$A;0);2;;);"")
========
Dans la 1ere formule, c'est bien Serveur et non Application qu'il faut utiliser ?-
oui, j'avais commencé à la modifier et j'ai pas du aller au bout et je me suis un peu mélangée!!:
à nom_serveur1 : tu mets cette formule :
=SI(NB.SI(serveur!$A:$A;$E7)>=1;DECALER(Serveur!$A$1;EQUIV($E7;Serveur!$A:$A;0)-1;2;;);"")
à nom_serveur2 : tu mets cette formule :
=SI(NB.SI(serveur!$A:$A;$E7)>=1;DECALER(Serveur!$A$1;EQUIV($E7;Serveur!$A:$A;0);2;;);"")
à nom_serveur3 : tu mets cette formule :
=SI(NB.SI(serveur!$A:$A;$E7)>=1;DECALER(Serveur!$A$1;EQUIV($E7;Serveur!$A:$A;0)+1;2;;);"")
Cette formule à mettre sur ta feuille Application.
-