подсчитывать различные значения в таблице

84

У меня есть таблица Google со столбцом, который выглядит так:

City
----
London
Paris
London
Berlin
Rome
Paris

Я хочу посчитать появление каждого отдельного города (поэтому мне нужно название города и количество появлений).

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

Как я могу это сделать?

Мариус Бансила
источник
Мой ответ был удален, так как мне не удалось создать рабочий пример. Я рекомендую взглянуть на комбинацию с IF()иCOUNTIF()
sascha

Ответы:

103

Ссылка на рабочие примеры

Решение 0

Это можно сделать с помощью сводных таблиц.

Пример сводной таблицы - подсчет строк по значению

Решение 1

Используйте uniqueформулу, чтобы получить все различные значения. Затем используйте countifдля подсчета каждого значения. См. Ссылку на рабочий пример вверху, чтобы точно узнать, как это реализовано.

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

Решение 2

Если вы настроите свои данные как таковые:

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

Тогда следующее даст желаемый результат.

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

Я уверен, что есть способ избавиться от второго столбца, поскольку все значения будут равны 1. На мой взгляд, это не идеальное решение.

через http://googledocsforlife.blogspot.com/2011/12/counting-unique-values-of-data-set.html

Другие, возможно, полезные ссылки

JSuar
источник
Это сработало. Благодарю. Забавно, что я уже применил второе решение с другим набором, но не подумал об этом здесь.
Marius Bancila
для решения 2: вы можете оставить столбец B пустым, а затем использовать «count» вместо «sum»: = sort (transpose (query (A3: B8, «Select count (B) pivot (A)»)), 2, FALSE )
wivku
... но как мне создать сводную таблицу? Хотя этот ответ выглядит великолепно и подробно, более простой ответ dnlbrky - тот, который меня спас. здесь я даже не заметил приведенных более простых альтернативных решений 1 и 2. Жаль :(
Balmipour
1
@Balmipour Data> Pivot Table> затем просто скопируйте снимок экрана.
Joshua Dance
Только что вернулся сюда после вашего комментария. Я не догадывался, что «сводные таблицы» по-французски называются «динамичные таблицы круазе». Думаю, в тот день я мог бы поискать немного лучше, но, по крайней мере, знание того, что пункт меню был только в «Data», позволило мне найти его.
Balmipour
25

Вы можете использовать эту queryфункцию, поэтому, если ваши данные были в столбце A, где первая строка была заголовком столбца ...

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

дает

City    count 
London  2
Paris   2
Berlin  1
Rome    1

Ссылка на рабочий Google Sheet.

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

Майк защелка
источник
Этот метод работал хорошо, и в моем конкретном случае его было легче применить. Однако, как ни странно, казалось, что запрос прерывается (т. Е. Ничего не выводит), если в подсчитываемом столбце содержится более одного отдельного числового значения. Это сработало, когда я преобразовал числовые значения в их строковые эквиваленты.
Matt V.
@MattV. Я попытался добавить отдельные числовые значения в подсчитываемый столбец, и запрос работал нормально. docs.google.com/spreadsheets/d/…
Майк
Чтобы пометить другие столбцы, точно повторите их определение. В этом примере:label A 'City', count(A) 'Total'
Брайан Роуч
21

=iferror(counta(unique(A1:A100))) подсчитывает количество уникальных ячеек от A1 до A100

г -_- б
источник
2
можете ли вы объяснить функцию iferror () в этом случае? counta (unique (A1: A100)) дала мне результат, который я искал.
Stew
10
OP не запрашивал количество уникальных значений, но если вы действительно этого хотите, вы можете упростить его, используя = COUNTUNIQUE (A: A)
wivku
8

Не совсем то, что спросил пользователь, а простой способ просто подсчитать уникальные значения:

Google представил новую функцию для подсчета уникальных значений всего за один шаг, и вы можете использовать ее в качестве входных данных для других формул:

=COUNTUNIQUE(A1:B10)

Рудольф Реал
источник
1
Это вернет только 1 число. Количество уникальных значений. Однако OP спросил, как подсчитать каждое уникальное значение.
Joshua Dance
3
@JoshuaDance Вы правы, но сообщение оператора называется «подсчитывать различные значения в электронной таблице». Мне это кажется правильным ответом на этот точный вопрос. Просто обратите внимание, что он не считает «пустую ячейку» значением
Balmipour
1
Если вы, ребята, не возражаете, я пока оставлю это. Если только слишком много пользователей не сочтут это плохим ответом, я удалю его. @Balmipour
Рудольф Реал
1
Это именно то, что мне нужно.
FellyTone84
6

Это работает, если вам просто нужно количество уникальных значений, например, в следующем диапазоне

=counta(unique(B4:B21))
Павел
источник
0

Это похоже на Решение 1 от @JSuar ...

Предположим, ваши исходные данные о городе - это именованный диапазон с именем dataCity. На новом листе введите следующее:

    A                 | B
  ----------------------------------------------------------
1 | =UNIQUE(dataCity) | Count
2 |                   | =DCOUNTA(dataCity,"City",{"City";$A2})
3 |                   | [copy down the formula above]
4 |                   | ...
5 |                   | ...
dnlbrky
источник
-4

= UNIQUE ({фильтр (Core! L8: L27, isblank (Core! L8: L27) = false), query (ArrayFormula (countif (Core! L8: L27, Core! L8: L27)), "выберите Col1, где Col1 < > 0 ")})

Core! L8: L27 = список

user3626588
источник
Судя по сообщениям, это кажется лучшим ответом на 15.11.18. Голосовать за плз
user3626588