J'ai une feuille de calcul Excel avec une liste de séminaires et de cours que les étudiants ont suivis et qui (abrégés) ressemblent à ceci:
(A)___ClassName________|(B)_________Tags____________|
Astrobiology | astro, bio, sci |
Extremophiles | chem, bio, sci |
Human Space Habitation | astro, bio, med, engi, sci | etc.
J'aimerais pouvoir en extraire des étiquettes individuelles et obtenir un compte associé pour chaque étiquette d'une autre feuille, de sorte que pour ce qui précède:
__Tag__|_Frequency_|
astro | 2 |
bio | 3 |
sci | 3 |
chem | 1 | etc.
J'essayais de faire cela uniquement en utilisant des fonctions, et je peux obtenir une liste unique de chaînes de balises (par exemple, "astro, bio, sci") en utilisant
{=INDEX(User1!Tags,MATCH(0,COUNTIF($A$1:A1,User1!Tags),0))}
mais je n'ai pas réussi à extraire les balises elles-mêmes. J'aimerais conserver le fichier "avertissement de macro", si possible, mais je suis nouveau pour exceller, alors si je m'y prends mal, faites-le-moi savoir!
Est-ce possible?
Copiez la colonne de vos balises sur une nouvelle feuille, puis:
C1
), et est défini avec des références fixes tout au long (signes '$').La première étape peut ne pas être nécessaire mais est destinée à supprimer les espaces qui gêneraient autrement le comptage.
la source
Je me suis donc intrigué par cette question et je voulais trouver un moyen de la résoudre avec une macro. Je sais que vous avez dit que vous voudriez éviter une macro, mais je ne crois pas que cela puisse être fait avec une fonction seule.
Le code ci-dessous passe en boucle sur la cellule B2: B25 (cela peut être modifié ou modifié en un paramètre ou les cellules sélectionnées, mais cela semblait plus facile pour le moment). Il utilise une classe personnalisée nommée KeyValue pour agréger le nom de la balise et le nombre d'occurrences. Cela pourrait être amélioré avec l'utilisation d'un objet Dictionnaire, mais cela nécessite d'autres compléments. Il sépare les étiquettes délimitées par des virgules de chaque cellule et compte la fréquence. Ensuite, il affiche cette liste dans les deux premières colonnes de la deuxième feuille de calcul.
Pour ajouter le code, vous devez procéder comme suit. Tout d’abord sur le classeur, vous devez activer la barre d’outils Développeur puis, à partir de là, cliquez sur le
Visual Basic
bouton. Ajoutez ensuite un nouveau module de classe et nommez-leKeyValue
. Collez dans le code suivant:Ensuite, sur la feuille Sheet1, ajoutez le code suivant:
Cliquez sur le bouton Exécuter pour qu'il compte les tags.
la source