Mam zestaw danych w Excelu, gdzie każdy wiersz ma (między innymi) dwie wartości i chcę wygenerować posortowaną listę wszystkich par.
Przykładowe dane:
Val1 Val2
------------
A B
B A
C A
B C
A B
C A
etc..
Przykładowy wynik:
Val1 Val2 Count
------------------
A B 2
B A 1
B C 1
C A 2
Czy można to zrobić bez pisania kodu VBA.
Edytować: Powinienem dodać, że mój zbiór danych rośnie i wolałbym rozwiązanie, które aktualizowałoby się automatycznie po wprowadzeniu nowych danych.
Odpowiedzi:
Najprostszym sposobem jest połączenie dwóch kolumn razem, wykonaj polecenie a
COUNTIF()
w tej kolumnie i ostatecznie usuń wszystkie zduplikowane wiersze.źródło
Załóżmy, że wiersz 1 to wiersz nagłówka, a wiersz 2 to pierwszy wiersz danych (
A B
).Kroki
Wpisz w D2:
=A2 & "|||" & B2
i skopiuj do D3: D999(Użyj jakiegoś rzadkiego łańcucha, takiego jak
"|||"
)Wpisz C2:
=COUNTIF(D:D, D2)
i skopiuj do C3: C999Skopiuj kolumnę C: C, a następnie Wklej specjalnie jako wartość do kolumny C: C (
Alt-E > S > V > Enter
)Wybierz kolumnę A: D, a następnie sortuj według kolumny D
Wpisz E2:
=IF(OR(ROW(D2)=2, C2=1, AND(C2>1,D2<>D1)), "Keep", "Delete")
i skopiuj do E3: E999Włącz autofiltr (
Alt-D > F > F
)Wybierz „Usuń” z listy rozwijanej E kolumny
Wybierz wiersz 2: 999, a następnie kliknij prawym przyciskiem myszy & gt; Kasować
(Trochę
#REF!
może być pokazany w kolumnie E, co jest normalne)Wyłącz autofiltr (
Alt-D > F > F
)Usuń fikcyjną kolumnę D: E
źródło
Użyj
countifs
makro.Oryginalna tabela:
Makro w tym przypadku to:
Który brzmi: „Jeśli w zakresie A1: A6 jest A, a jeśli w zakresie B1: B6 jest B, policz.”
Spowoduje to coś takiego (z LICZNIKAMI w kolumnie G):
Można ustawić zakresy absolutnie:
Lub użyj tabeli prawdy (lub klucza), aby
COUNTIFS
nie odnosi się do siebie.Co pomogłoby stworzyć liczniki, które zbierałyby dane z oryginalnego zbioru danych, ale porównałyby się do tabeli referencyjnej, tak jak poniżej:
To jest to samo, ale teraz dane w tabeli mogą być aktualizowane i sortowane bez tworzenia
COUNTIFS
niedokładny.źródło