Excel ajouter des données en masse à la feuille existante

2

J'ai une feuille Excel avec une trace des personnes ayant participé à certaines activités. Maintenant, je veux ajouter une activité avec des centaines de personnes, dont certaines sont déjà allées à d'autres. Ensuite, je veux trier les moments où ils sont allés à une activité.

Clarifier:

screenshot

Quel est le moyen le plus simple d'y parvenir?

Merci :)

Tom
la source
La méthode la plus simple et la plus rapide consiste à utiliser VBA - tant que les noms de la nouvelle activité 3 correspondent exactement à ceux de la feuille existante, vous pouvez utiliser un for loop d'ajouter un x dans la colonne D lorsqu'il y a une correspondance. Il y aurait peut-être un moyen meilleur / plus efficace de ...
ChrisW
@ChrisW Bonne suggestion, mais pourquoi ne pas ajouter une réponse ci-dessous montrant à Tom comment faire ce que vous suggérez?
CharlieRB
Je ne suis pas vraiment dans VBA .. Je viens de travailler sur quelque chose avec VLOOKUP qui récupère les informations d'une deuxième table. Ensuite, je trie manuellement. Le seul problème est que je dois d'abord ajouter les nouvelles personnes à la liste principale. Ce n'est pas optimal mais ça marche;)
Tom

Réponses:

0

Voici une solution sans VBA. Je le recommanderais s'il s'agit de quelque chose de plus rare qu'une tâche mensuelle.

C’est ainsi que vous configurez vos données - remarque, les colonnes A-D sont les "nouvelles colonnes".

This is the setup

Voici les formules - mettez-les en ligne 2, puis recopiez-les:

A2=IF(ISBLANK(F2),INDEX(J:J,ROW()-COUNTIF(F:F,"*")+1),F2)

B2=IFERROR(T(VLOOKUP($A2,$F:$H,2,FALSE)),"")

C2=IFERROR(T(VLOOKUP($A2,$F:$H,3,FALSE)),"")

D2=IFERROR(T(VLOOKUP($A2,$J:$K,2,FALSE)),"")

A2 remplit tous les noms de votre table d'activité actuelle jusqu'à ce que les cellules soient vides. Ensuite, vous commencez à remplir des noms à partir de votre nouvelle table d’activités, COUNTIF pour obtenir le nombre de cellules non vides et ROW et +1 pour obtenir le bon INDEX / Prénom.

Maintenant, il vous suffit de faire des recherches séparées pour vos activités.

Comme vous le voyez, vous obtiendrez des doublons, mais ils peuvent être facilement gérés. Ma suggestion serait la suivante: copiez la zone A-D en tant que valeurs vers une autre destination, puis utilisez la gomme à dupliquer intégrée dans Les données languette.

Bien sûr, vous pouvez le faire avec VBA, bien que ce soit souvent une tâche effectuée par des utilisateurs inexpérimentés - et créer une version dynamique de celui-ci en toute sécurité représente un peu de code et nécessite beaucoup plus de détails. Cependant, je tiens à vous rappeler qu'il s'agit d'une tâche de base de base de données, qui peut être effectuée beaucoup plus facilement avec les fonctions de base de données.

Jook
la source
0

Puisque vous mentionnez «Je veux trier les heures où ils sont allés à une activité», je suppose que vos Xs représentent des heures (pour lesquelles la réponse de @ Jook ne fonctionnerait pas). L'approche ci-dessous fonctionnerait cependant pour des temps (ou des X avec une adaptation mineure) et n'utilise aucune formule (autre que celle qui sous-tend les icônes):

En supposant que la nouvelle activité 3 ait des valeurs dans une colonne immédiatement à droite de Nom: -

  1. Copier les données de la feuille existante et les en-têtes dans une nouvelle feuille.
  2. Immédiatement ci-dessous, ajoutez une copie des données de la nouvelle activité 3 à cette feuille.
  3. Déplacez les données de la nouvelle activité 3 autres que les noms sur deux colonnes à droite.
  4. Faites glisser le libellé de l'activité 2 vers la droite d'une cellule.
  5. Sélectionnez une feuille entière, Données & gt; Trier & amp; Filtre - AZ.
  6. Données & gt; Contour & gt; Sous-total avec À chaque modification de: Nom, fonction Use: Max, Ajouter un sous-total à: vérifier chacune des activités 1, 2 et 3, cocher Remplacer les sous-totaux actuels et le résumé sous les données, OK.
  7. Copier Collage spécial & gt; Les valeurs, d'accord
  8. Données & gt; Trier & amp; Filtre - Filtrer et pour la colonne Nom les filtres de texte, Ne pas contenir, entrez MAX, OK.
  9. Supprimez toutes les lignes visibles sauf celle comportant des étiquettes.
  10. Données & gt; Trier & amp; Filtre - Filtre.
  11. Sélectionnez la colonne Nom, Accueil & gt; Modification & gt; Trouver & amp; Sélectionnez, Remplacer, entrez "MAX" sans les guillemets pour Trouver quoi:, Remplacer tout, OK, Fermer.
  12. Sélectionnez une feuille entière, Données & gt; Contour & gt; Total partiel, Tout supprimer.
  13. Supprimer la ligne avec le nom ‘Grand’.
  14. Sélectionnez les colonnes d'activité, Accueil & gt; Cellules - Format, Formater les cellules, Personnalisé, jj / mm / aaaa hh: mm ;; "" ou selon votre choix, OK.
  15. Sauvegarder.

Cela donne des résultats triés par ordre de nom, quelle que soit l'heure, qui pourraient ensuite être triés par activité mais pas, compte tenu de la présentation, commodément triés par activité, que ce soit 1, 2 ou 3.

pnuts
la source