Excel : transformer certaines lignes en colonnes

Excel : transformer certaines lignes en colonnes - Logiciels - Windows & Software

Marsh Posté le 13-09-2006 à 12:09:11    

Bonjour à tous!
 
J'ai un boulot super important à faire où je dois réaliser la prouesse
suivante :
 
J'ai une BDD comme suit :
 
établissement 1
2000 X
2001 X
2002 X
établissement 2
2002 X
2003 X
établissement 3
2004 X
 
Et je veux la transformer en:
                          2000 2001 2002 2003 2004
établissement 1      X       X      X
établissement 2                        X      X
établissement 3                                          X
 
 
 
Avez-vous une idée de la manière dont je peux procéder (pour le faire
automatiquement bien entendu)?
 
Dois-je passer par le VBA?
 
Si oui, quelles fonctions (voire même un tuto?) vont elles être utiles?
 
Merci d'avance de votre aide :)
 
PS : si vous connaissez un forum plus adapté pour répondre à ma question, je suis preneur merci :)

Reply

Marsh Posté le 13-09-2006 à 12:09:11   

Reply

Marsh Posté le 13-09-2006 à 12:29:20    

copier>collage spécial...>transposé

Reply

Marsh Posté le 13-09-2006 à 15:34:28    

Tout d'abord merci de ton aide.
 
Ce n'est pas exactement une transposition que je tente de faire, si on regarde bien l'exemple, établissement ET année sont en ligne.
 
Si je transpose, ils seront tous les deux en colonnes, or je veux établissement en lignes et année en colonnes.
 
Si ce n'est pas assez clair, je tenterai de formuler autrement...
 
Merci de vos contributions :)

Reply

Marsh Posté le 13-09-2006 à 21:39:09    

Si tu as 2 colonnes dans ton tableau, je ferai sur la troisième une petite formule genre en C1, recopier b1 et en C2
=si(gauche(A2,1)="E",A2,C1)
recopier sur tout le tableau, copier, coller les valeurs.
 
Là tu auras en face des couples "années,X" l'établissement auquel tu te réfères
Ensuite je remplacerai les X par des 1
puis supprimer les lignes qui commencent par "Etablissement" dans la colonne A. Renommer les entêtes en "années", "test" et "établissement"
 
puis un tableau croisé dynamique avec les établissement dans les lignes, les années en colonnes et le test pour les données, en en prenant le maximum. Ca marche d'ailleurs peut être sans remplacer les X par des 1.
 
Ensuite copier/coller les valeurs du tableau croisé dynamique, si nécessaire remplacer les cellules non vides (donc contenant 1) par X (rechercher/remplacer).


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
Reply

Marsh Posté le 13-09-2006 à 23:35:35    

Bonsoir

 

Le "X" correspond a quoi ? est-il dans la meme cellule que l'année ?  
 
Est-ce un vrai exemple ? tes etablissements sont tous ecris Etablissement1 etablissement2 etc. ?


Message édité par SuppotDeSaTante le 13-09-2006 à 23:52:39
Reply

Marsh Posté le 14-09-2006 à 10:52:18    

Merci de votre aide.
 
En fait je souhaitais présenter une version ultra-simplifiée de ce que je faisais pour ne pas innonder les gentils contributeurs de détails dont ils n'ont que faire, mais je m'exprime mal et je m'en excuse.
 
Déjà le x représente une valeur ou des caractères.
Ce que j'appelle établissement 1, 2 ...  est en fait un code d'identification croissant.
Et en fait ce n'est pas par année mais par discipline que je dois faire la redistribution des colonnes.
 
Voici la tête de ma base de données (encore très simplifiée, mais moins ;))
 
FI               AN      DISCI LITC
010000040 2002 20000 81
010000040 2002 21000 30
010000040 2002 21100 30
010000040 2002 25000 51
010000040 2002 26000  
010000057 2002 20000 252
010000057 2002 21000 192
010000057 2002 21100 86
010000057 2002 25000 60
010000057 2002 26000  
010000180 2000 20000 100
010000180 2000 21000 3
010000180 2000 21100 3
010000180 2000 24000 97
010000180 2000 24200 97
010000180 2001 20000 100
010000180 2001 21000 3
010000180 2001 21100 3
010000180 2001 24000 97
010000180 2001 24200 97
 
Et je souhaite obtenir
 
(en cours d'édition, j'arrive pas à caler)
 
      FI             AN       D20000      LITC20000     D21000          L21000        D21100      L21100
010000040       2002   20000        81                  21000             30              21100         30           ETC.
010000057       2002   20000       252                 21000            192             21100         86           ETC.
010000180       2000   20000     100                 ETC…    
010000180       2001   20000     100                 ETC…    
   
C'est toujours pas le top pour présenter... Mais sinon vous pouvez voir de manière plus claire sur cet excel (sans macro normalement, donc pas de risque) :
 
http://cjoint.com/?jnrdBwdJiR
 
Merci encore de vos contributions :)


Message édité par therion3 le 14-09-2006 à 11:03:38
Reply

Marsh Posté le 16-09-2006 à 19:03:10    

Ben là j'avoue ne pas voir pourquoi un simple tableau croisé dynamique ne convient pas


---------------
La ligne droite n'est en aucun cas le plus court chemin entre deux points. Sauf, bien sûr, si les deux points sont bien alignés l'un en face de l'autre
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed