liczyć różne wartości w arkuszu kalkulacyjnym

84

Mam arkusz kalkulacyjny Google z kolumną, która wygląda następująco:

City
----
London
Paris
London
Berlin
Rome
Paris

Chcę policzyć wystąpienia każdego odrębnego miasta (potrzebuję więc nazwy miasta i liczby wystąpień).

City   | Count
-------+------
London |  2
Paris  |  2
Berlin |  1
Rome   |  1

Jak mogę to zrobić?

Marius Bancila
źródło
Usunąłem moją odpowiedź, ponieważ nie mogłem stworzyć działającego przykładu. Polecam przyjrzeć się połączeniu z IF()iCOUNTIF()
saschą.

Odpowiedzi:

103

Link do przykładów roboczych

Rozwiązanie 0

Można to zrobić za pomocą tabel przestawnych.

Przykład tabeli przestawnej - zliczanie wierszy według wartości

Rozwiązanie 1

Użyj uniquewzoru, aby uzyskać wszystkie różne wartości. Następnie użyj, countifaby uzyskać liczbę każdej wartości. Zobacz działający przykład link u góry, aby zobaczyć dokładnie, jak to jest zaimplementowane.

Unique Values        Count
=UNIQUE(A3:A8)       =COUNTIF(A3:A8;B3)
                     =COUNTIF(A3:A8;B4)
                     ...

Rozwiązanie 2

Jeśli skonfigurujesz swoje dane jako takie:

City    
----    
London   1
Paris    1
London   1
Berlin   1
Rome     1
Paris    1

Następujące czynności przyniosą pożądany rezultat.

=sort(transpose(query(A3:B8,"Select sum(B) pivot (A)")),2,FALSE)

Jestem pewien, że jest sposób na pozbycie się drugiej kolumny, ponieważ wszystkie wartości będą równe 1. Moim zdaniem nie jest to idealne rozwiązanie.

przez http://googledocsforlife.blogspot.com/2011/12/counting-unique-values-of-data-set.html

Inne potencjalnie przydatne linki

JSuar
źródło
To się udało. Dzięki. Zabawne, że już zastosowałem drugie rozwiązanie z innym zestawem, ale tutaj o tym nie pomyślałem.
Marius Bancila
dla rozwiązania 2: możesz pozostawić kolumnę B pustą, a następnie użyć „count” zamiast „sum”: = sort (transpose (query (A3: B8, „Select count (B) pivot (A)”)), 2, FALSE )
wivku
... ale jak utworzyć tabelę przestawną? podczas gdy ta odpowiedź wygląda świetnie i szczegółowo, prostsza odpowiedź dnlbrky'ego jest tą, która mnie uratowała. tutaj nawet nie zauważyłem podanych -prostszych- alternatywnych rozwiązań 1 i 2. Szkoda :(
Balmipour
1
@Balmipour Data> Pivot Table> a następnie po prostu skopiuj zrzut ekranu.
Joshua Dance
Właśnie wróciłem tutaj po twoim komentarzu. Nie zgadłem, że francuskie określenie „tabele przestawne” to „tableaux croisés dynamiques”. Chyba mogłem tego dnia poszukać trochę lepiej, ale przynajmniej wiedząc, że opcja menu znajduje się tylko w „Danych”, pozwoliła mi ją znaleźć.
Balmipour
25

Możesz użyć tej queryfunkcji, więc jeśli twoje dane były w kolumnie A, gdzie pierwszy wiersz był tytułem kolumny ...

=query(A2:A,"select A, count(A) where A != '' group by A order by count(A) desc label A 'City'", 0)

plony

City    count 
London  2
Paris   2
Berlin  1
Rome    1

Link do działającego arkusza Google.

https://docs.google.com/spreadsheets/d/1N5xw8-YP2GEPYOaRkX8iRA6DoeRXI86OkfuYxwXUCbc/edit#gid=0

Mike Latch
źródło
Ta technika działała dobrze i była łatwiejsza do zastosowania w moim konkretnym przypadku. Jednak, co dziwne, zapytanie wydawało się przerywać (tj. Nic nie dawało), gdyby w liczonej kolumnie była więcej niż jedna odrębna wartość liczbowa. Zadziałało, gdy przekonwertowałem wartości liczbowe na ich odpowiedniki w postaci ciągów.
Matt V.,
@MattV. Próbowałem dodać różne wartości liczbowe do liczonej kolumny, a zapytanie działało dobrze. docs.google.com/spreadsheets/d/…
Mike Latch
Aby oznaczyć inne kolumny, dokładnie powtórz ich definicję. W tym przykładzie:label A 'City', count(A) 'Total'
Bryan Roach
21

=iferror(counta(unique(A1:A100))) zlicza liczbę unikalnych komórek od A1 do A100

d -_- b
źródło
2
czy możesz wyjaśnić funkcję iferror () w tym przypadku? counta (unikalny (A1: A100)) dał mi wynik, którego szukałem.
Gulasz
10
OP nie pytał o liczbę unikalnych wartości, ale jeśli chcesz, możesz to uprościć, używając = COUNTUNIQUE (A: A)
wivku
8

Nie jest to dokładnie to, o co prosił użytkownik, ale łatwy sposób liczenia unikalnych wartości:

Firma Google wprowadziła nową funkcję zliczania unikatowych wartości w jednym kroku, której możesz użyć jako danych wejściowych dla innych formuł:

=COUNTUNIQUE(A1:B10)

Rudolf Real
źródło
1
To zwróci tylko 1 liczbę. Liczba unikalnych wartości. Jednak PO zapytał, jak policzyć każdą niepowtarzalną wartość.
Joshua Dance
3
@JoshuaDance Masz rację, ale post operatora nazywa się „policz różne wartości w arkuszu kalkulacyjnym”. To wygląda na poprawną odpowiedź na to dokładne pytanie. Zwróć uwagę, że nie liczy „pustej komórki” jako wartości
Balmipour,
1
Jeśli jesteście w porządku, na razie to zostawię. Chyba że zbyt wielu użytkowników uzna to za złą odpowiedź, więc ją usunę. @Balmipour
Rudolf Real
1
Właśnie tego potrzebowałem.
FellyTone84
6

Działa to, jeśli chcesz tylko liczyć unikalne wartości np. W następującym zakresie

=counta(unique(B4:B21))
Paweł
źródło
0

Jest to podobne do rozwiązania 1 z @JSuar ...

Załóżmy, że oryginalne dane miasta to nazwany zakres o nazwie dataCity. W nowym arkuszu wprowadź następujące informacje:

    A                 | B
  ----------------------------------------------------------
1 | =UNIQUE(dataCity) | Count
2 |                   | =DCOUNTA(dataCity,"City",{"City";$A2})
3 |                   | [copy down the formula above]
4 |                   | ...
5 |                   | ...
dnlbrky
źródło
-4

= UNIQUE ({filter (Core! L8: L27, isblank (Core! L8: L27) = false), query (ArrayFormula (countif (Core! L8: L27, Core! L8: L27))), "wybierz Col1, gdzie Col1 < > 0 ")})

Rdzeń! L8: L27 = lista

user3626588
źródło
Z postów, które widzę, wydaje się, że to najlepsza odpowiedź na dzień 15.11.18. Głos w górę plz
user3626588