Подсчет количества вхождений в столбце?

Какой будет хороший подход для расчета количества вхождений в столбце электронной таблицы? Можно ли это сделать с помощью одной формулы массива?

Пример (столбец A вход, столбцы B а также C должны быть сгенерированы автоматически):

|   A   |   B   |   C   |
+-------+-------+-------+
| Name  | Name  | Count |
+-------+-------+-------+
| Joe   | Joe   |     2 |
| Lisa  | Lisa  |     3 |
| Jenny | Jenny |     2 |
| Lisa  |       |       |
| Lisa  |       |       |
| Joe   |       |       |
| Jenny |       |       |

5 ответов

Решение

Пытаться:

=ArrayFormula(QUERY(A:A&{"",""};"select Col1, count(Col2) where Col1 != '' group by Col1 label count(Col2) 'Count'";1))


22/07/2014 Некоторое время в прошлом месяце Sheets начал поддерживать более гибкую конкатенацию массивов с использованием встроенного массива. Таким образом, решение может быть немного сокращено до:

=QUERY({A:A,A:A},"select Col1, count(Col2) where Col1 != '' group by Col1 label count(Col2) 'Count'",1)

Более простой подход к этому

В начале столбца B введите

=UNIQUE(А: А)

Затем в столбце C используйте

=COUNTIF(A:A, B1)

и скопировать их во все строки столбца C.

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

= COUNTIF (A: A; B1)

=COUNTIF(A:A;"lisa")

Вы можете заменить критерии ссылками на ячейки из столбца B

Просто добавляем дополнительную сортировку, если необходимо

=QUERY(A2:A,"select A, count(A) where A is not null group by A order by count(A) DESC label A 'Name', count(A) 'Count'",-1)

https://i.stack.imgur.com/D8UaB.png

=arrayformula(if(isblank(B2:B),iferror(1/0),mmult(sign(B2:B=TRANSPOSE(A2:A)),A2:A)))

Я получил это из хорошего учебника - не помню названия - возможно, об использовании MMult

Поместите в B3 следующее (кредит @Alexander-Ivanov за условие счета):

={UNIQUE(A3:A),ARRAYFORMULA(COUNTIF(UNIQUE(A3:A),"=" & UNIQUE(A3:A)))}

Преимущества: требуется только редактирование 1 ячейки, оно включает имя, отфильтрованное по уникальности, и оно сжато.

Недостаток: он запускает уникальную функцию 3x

Чтобы использовать уникальную функцию только один раз, разбейте ее на 2 ячейки:

B3: =UNIQUE(A3:A)

C3: =ARRAYFORMULA(COUNTIF(B3:B,"=" & B3:B))