contar valores distintos en una hoja de cálculo

84

Tengo una hoja de cálculo de Google con una columna que se parece a esto:

City
----
London
Paris
London
Berlin
Rome
Paris

Quiero contar las apariciones de cada ciudad distinta (entonces necesito el nombre de la ciudad y el número de apariciones).

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

¿Cómo puedo hacer eso?

Marius Bancila
fuente
Eliminé mi respuesta porque no pude crear un ejemplo de trabajo. Recomiendo echar un vistazo a una combinación con IF()yCOUNTIF()
sascha

Respuestas:

103

Enlace a ejemplos prácticos

Solución 0

Esto se puede lograr utilizando tablas dinámicas.

Ejemplo de tabla dinámica: contar filas por valor

Solución 1

Utilice la uniquefórmula para obtener todos los valores distintos. Luego use countifpara obtener el recuento de cada valor. Vea el enlace de ejemplo de trabajo en la parte superior para ver exactamente cómo se implementa.

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

Solucion 2

Si configura sus datos como tales:

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

Entonces lo siguiente producirá el resultado deseado.

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

Estoy seguro de que hay una manera de deshacerse de la segunda columna, ya que todos los valores serán 1. En mi opinión, no es una solución ideal.

a través de http://googledocsforlife.blogspot.com/2011/12/counting-unique-values-of-data-set.html

Otros enlaces posiblemente útiles

JSuar
fuente
Eso funciono. Gracias. Es curioso que ya apliqué la segunda solución con otro conjunto, pero no lo pensé aquí.
Marius Bancila
para la solución 2: puede dejar la columna B vacía y luego usar "count" en lugar de "sum": = sort (transpose (query (A3: B8, "Select count (B) pivot (A)")), 2, FALSE )
wivku
... pero ¿cómo creo una tabla dinámica? Si bien esta respuesta se ve excelente y detallada, la respuesta más sencilla de dnlbrky es la que me salvó. aquí, ni siquiera noté las soluciones alternativas 1 y 2, más simples, dadas. Lástima :(
Balmipour
1
@Balmipour Data> Pivot Table> luego simplemente copie la captura de pantalla.
Joshua Dance
Regresé aquí después de tu comentario. No adiviné que el francés para "tablas dinámicas" era "tableaux croisés dynamiques". Supongo que podría haber buscado un poco mejor ese día, pero al menos, saber que la opción del menú estaba en "Datos" me permitió encontrarla.
Balmipour
25

Puede usar la queryfunción, por lo que si sus datos estaban en la columna A, donde la primera fila era el título de la columna ...

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

rendimientos

City    count 
London  2
Paris   2
Berlin  1
Rome    1

Enlace a la hoja de trabajo de Google.

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

Mike Latch
fuente
Esta técnica funcionó bien y fue más fácil de aplicar en mi caso particular. Sin embargo, curiosamente, la consulta parecía romperse (es decir, no mostraba nada) si había más de un valor numérico distinto en la columna que se contaba. Sin embargo, funcionó cuando convertí los valores numéricos a sus equivalentes de cadena.
Matt V.
@MattV. Intenté agregar valores numéricos distintos en la columna que se estaba contando y la consulta funcionó bien. docs.google.com/spreadsheets/d/…
Mike Latch
Para etiquetar otras columnas, repita su definición exactamente. En este ejemplo:label A 'City', count(A) 'Total'
Bryan Roach
21

=iferror(counta(unique(A1:A100))) cuenta el número de celdas únicas de A1 a A100

d -_- b
fuente
2
¿Puedes explicar la función de iferror () en este caso? counta (unique (A1: A100)) me dio el resultado que estaba buscando.
Estofado
10
OP no estaba solicitando un recuento de valores únicos, pero si lo desea, puede simplificarlo usando = COUNTUNIQUE (A: A)
wivku
6

No es exactamente lo que preguntó el usuario, sino una forma sencilla de contar valores únicos:

Google introdujo una nueva función para contar valores únicos en un solo paso, y puede usar esto como entrada para otras fórmulas:

=COUNTUNIQUE(A1:B10)

Rudolf Real
fuente
1
Esto devolverá solo 1 número. El recuento de valores únicos. Sin embargo, el OP preguntó cómo contar cada valor único.
Joshua Dance
3
@JoshuaDance Tienes razón, pero la publicación de la operación se llama "contar valores distintos en una hoja de cálculo". Esto me parece una respuesta legítima a esta pregunta precisa. Solo tenga en cuenta que no cuenta "celda vacía" como valor
Balmipour
1
Si estáis bien, lo dejaré por ahora. A menos que muchos usuarios consideren que esta es una mala respuesta, la eliminaré. @Balmipour
Rudolf Real
1
Esto es exactamente lo que necesitaba.
FellyTone84
6

Esto funciona si solo desea el recuento de valores únicos en, por ejemplo, el siguiente rango

=counta(unique(B4:B21))
Paul
fuente
0

Esto es similar a la Solución 1 de @JSuar ...

Suponga que los datos de su ciudad original son un rango con nombre llamado dataCity. En una nueva hoja, ingrese lo siguiente:

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

= ÚNICO ({filter (Core! L8: L27, isblank (Core! L8: L27) = false), query (ArrayFormula (countif (Core! L8: L27, Core! L8: L27)), "seleccione Col1 donde Col1 < > 0 ")})

Core! L8: L27 = lista

usuario3626588
fuente
De las publicaciones que veo, esta parece ser la mejor respuesta al 15/11/18. Voto a
favor por favor