Mam arkusz kalkulacyjny programu Excel z listą seminariów i zajęć, które uczniowie wzięli, i które (po skróceniu) wyglądają następująco:
(A)___ClassName________|(B)_________Tags____________|
Astrobiology | astro, bio, sci |
Extremophiles | chem, bio, sci |
Human Space Habitation | astro, bio, med, engi, sci | etc.
Chciałbym móc wyodrębnić z tego poszczególne tagi i uzyskać powiązaną liczbę dla każdego tagu na innym arkuszu, na przykład dla powyższego:
__Tag__|_Frequency_|
astro | 2 |
bio | 3 |
sci | 3 |
chem | 1 | etc.
Próbowałem to zrobić tylko za pomocą funkcji i mogę uzyskać unikalną listę ciągów znaków (np. „Astro, bio, sci”) za pomocą
{=INDEX(User1!Tags,MATCH(0,COUNTIF($A$1:A1,User1!Tags),0))}
ale nie udało mi się samodzielnie wyodrębnić tagów. Chciałbym zachować plik „ostrzeżenie o makrze” - jeśli to możliwe - bez nowych, ale jestem nowy, aby się wyróżniać, więc jeśli zamierzam to zrobić w niewłaściwy sposób, proszę dać mi znać!
czy to możliwe?
Skopiuj kolumnę tagów do nowego arkusza, a następnie:
C1
) i jest zdefiniowany za pomocą stałych odniesień w całym tekście (tj. Znaki „$”).Pierwszy krok może nie być wymagany, ale ma na celu usunięcie spacji, które w przeciwnym razie zakłóciłyby liczenie.
źródło
Zaintrygowało mnie to pytanie i chciałem dowiedzieć się, jak rozwiązać to za pomocą makra. Wiem, że powiedziałeś, że chcesz uniknąć makra, ale nie sądzę, że można tego dokonać za pomocą samej funkcji.
Poniższy kod zapętla się nad komórką B2: B25 (można to zmienić lub zmienić na parametr lub wybrane komórki, ale na razie wydawało się to najłatwiejsze). Używa niestandardowej klasy o nazwie KeyValue do agregacji nazwy znacznika i liczby wystąpień. Można to poprawić za pomocą obiektu Dictionary, ale wymaga to innych dodatków. Oddziela tagi rozdzielane przecinkami od każdej komórki i zlicza częstotliwość. Następnie wysyła tę listę do pierwszych dwóch kolumn w drugim arkuszu.
Aby dodać kod, wykonaj następujące czynności. Najpierw w skoroszycie należy włączyć pasek narzędzi dla programistów, a następnie kliknąć
Visual Basic
przycisk. Następnie dodaj nowy moduł klasy i nazwij goKeyValue
. Wklej następujący kod:Następnie w arkuszu 1 dodaj następujący kod:
Kliknij przycisk Uruchom, aby policzyć tagi.
źródło