2009-10-15 8 views
-1

Je suis nouveau ici et j'ai été référé à ce site par quelqu'un qui pense que c'est le meilleur site pour les programmeurs. Je pense aussi que c'est !!Extraire des données dans Excel et les transposer/formater dans une autre feuille

Je suis nouveau pour les macros VBA et Excel. Je veux faire les choses suivantes avec une feuille de calcul ayant 13 colonnes et 1000 lignes.

  1. Déterminer les objets uniques dans les colonnes A à J
  2. déplacer les éléments propres à une nouvelle feuille
  3. transposer les données sur la nouvelle feuille de colonnes dans les rangées
  4. espacer les éléments uniques (les lignes serait déterminée par les données qui doivent être fixés sous variant)
  5. Trier les données brutes en fonction des éléments uniques à partir des colonnes B à J
  6. et peupler la nouvelle feuille créée précédemment en utilisant les éléments uniques et des données juste après la colonne avec l'élément unique de
  7. Créer un sous-total pour chaque donnée de population

Voici un format ci-dessous:

 
     A  B  C  D  E  F  G  ... L M 
    1 Mike mazer Male White London SE Barman ... 36 4.52 

Répondre

0

Votre question a beaucoup de pièces. Il pourrait être plus facile si vous avez rompu ces parties et juste posé des questions sur les choses qui vous donnent des difficultés. Bien que, Si vous pouvez déjà gérer ce problème manuellement, je suggère simplement d'utiliser Excel pour enregistrer une macro (vous pouvez trouver cette fonction dans la barre d'outils Visual Basic) de vous courir à travers toutes les étapes, puis l'ouverture de la macro l'éditeur vba pour modifier le code plus tard.

Bien sûr, si vous êtes bloqué sur l'une des étapes intermédiaires, vous pouvez toujours poser une autre question. Les gens ici sont heureux d'aider. J'espère que ça aide un peu.

+0

Merci Shaka. J'ai résolu 1,2 et j'espère 3. Avez-vous la moindre idée sur 4-6?merci beaucoup – user190710

+0

Ma première pensée est que vous pourriez être en mesure d'obtenir quelque part en jouant avec l'AutoFilter (situé sous Filtre dans le menu Données). Je ne comprends pas très bien ce que vous essayez de faire, mais l'AutoFilter est un outil très puissant pour trier les données. Et bien sûr, vous pouvez toujours poser une autre question maintenant que vous avez fait des progrès sur votre problème. – Shaka

2

Oui, cela peut être fait avec des macros Excel enregistrant des commandes Excel courantes. Je vous suggère de vous familiariser avec l'enregistreur Macro, puis de vous diriger vers superuser.com pour apprendre toutes les commandes Excel que vous pourriez avoir besoin d'enregistrer.

étapes 1-2 pourrait être fait avec les éléments suivants:

https://superuser.com/questions/49614/excel-get-distinct-values-in-column

J'ai personnellement enregistré beaucoup de commandes Excel juste pour voir quel code VB il crachait. est une bonne façon d'apprendre VB

il semble que vous auriez besoin de « pivot » les données pour l'étape 3 (lire sur des tableaux croisés dynamiques Excel)

pour 7, regardez dans les données> commande sous-total. Il y a plusieurs façons de le configurer.

+0

Merci à un groupe KevinDeus. J'ai réalisé les étapes 1 et 2. Avez-vous des suggestions sur les étapes 4 et 5? – user190710

0

Vous pouvez utiliser la fonction Application.WorksheetFunction.Transpose() pour retourner les valeurs.

Exemple: Pour une ligne entière,

Application.WorksheetFunction.Transpose("A1":"A1".End(xlToLeft)) 
+0

Merci Lance. S'il vous plaît pouvez-vous me donner l'argument dans la propriété Transpose. J'essaie de sélectionner toutes les données dans la feuille d'information qui contient les données transposées et de les faire transposer à partir de A (1,1) en bas de la rangée. merci beaucoup – user190710

+0

J'ai édité dans un exemple rapide basé sur une rangée, votre paramètre est juste la gamme que vous voulez transposer, et bien sûr vous voulez l'assigner à une gamme de dimensions inverses correctes. vous pouvez utiliser xldown pour la colonne, il y a plusieurs façons de saisir des plages dans Excel. –

Questions connexes