Excel - transposer multicellule sur des ligne

Fermé
ToRoX - Modifié par ToRoX le 23/06/2011 à 14:38
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 23 juin 2011 à 15:27
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

A voir également:

2 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
23 juin 2011 à 14:41
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
1
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 ?
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
23 juin 2011 à 15:27
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.
0