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".
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.
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 ...