¿Cómo obtengo los valores distintos / únicos en una columna en Excel?

281

Si tengo una columna con valores y quiero saber qué valores distintos hay (no cuántos, sino los valores distintos reales), ¿cómo puedo hacer eso?

En SQL Server haría algo como

SELECT Distinct(MyColumn) FROM MyTable
Kjensen
fuente
Relacionado: stackoverflow.com/questions/13307927/…
alexanderbird

Respuestas:

297

Más simple de lo que piensas:

  • Haga clic en el menú de la cinta de datos
  • Seleccione el botón Avanzado en la sección Ordenar y filtrar
  • Complete el cuadro de diálogo, copie los resultados en otra ubicación y asegúrese de marcar Solo registros únicos

ingrese la descripción de la imagen aquí

Un enano
fuente
30
Para aquellos de nosotros que todavía vivimos una existencia sin cintas, es Data-> Filter-> Advanced.
JT Grimes
10
+1 Este método es superior a Eliminar duplicados si desea mantener intactos los datos originales.
Excellll
17
Si copia datos a otra hoja, debe iniciar el cuadro de diálogo Avanzado desde la hoja a la que desea copiar , de lo contrario, obtendrá un You can only copy filtered data to the active sheeterror.
Dave Zych
55
Esto no se actualiza cuando cambian los valores del rango de origen. ¿Hay alguna forma de hacerlo dinámico?
Hughes
129

Excel 2007 y 2010:
use la Remove Duplicatesopción de menú debajo del encabezado Datos .

Excel 2003:
forma fácil:

  1. Asegúrese de que sus datos tengan un encabezado
  2. Datos -> Filtro -> Filtro avanzado
  3. Verificar solo registros únicos
  4. Seleccione Copiar a otra ubicación
  5. Haga clic en Aceptar

Manera difícil:

Escribe una macro con el siguiente código:

'Remove duplicates from sorted list
Sub getDistinct()
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Select
            Selection.Delete Shift:=xlUp
        Else
            ActiveCell.Offset(1, 0).Activate
        End If
    Loop
End Sub

Eso te da tu lista distinta. Es posible que desee copiar su lista a otra hoja primero.

Nathan DeWitt
fuente
20
¡Gracias! Esta es una prueba de que Stack Exchange es mucho mejor que cualquier otra fuente de información técnica. Todos los demás resultados de Google son inútiles y no están clasificados. También me pregunto cómo sobrevive el intercambio de expertos
Eran Medan
21

Utilizo dos métodos principales para obtener valores distintos: el primero es la Remove Duplicatesherramienta invaluable como lo sugiere Nathan DeWitt .

La desventaja Remove Duplicateses que pierdes datos. A pesar del poder de Ctrl+, zes posible que no desee hacer esto por varias razones, por ejemplo, puede tener filtros actualmente seleccionados que hacen que sea bastante complicado eliminar duplicados para obtener su lista de valores.

El otro método, no mencionado anteriormente, es usar una tabla dinámica.

Digamos que esta es su tabla y desea obtener la lista distinta de Plataformas. mesa ficticia

Inserte un Pivot Tablecon la tabla como su fuente de datos.

Ahora seleccione la columna Plataforma (s) como su Row Labels.

Voila! Una lista de valores distintos.

tabla dinámica como lista de valores distintos

Si desea poner en orden esto, se puede desconectar Field Headersy establecer Grand Totalsa ser Off for Rows and Columns.

Andi Mohr
fuente
1
¡La técnica de tabla dinámica es brillante! Gracias por esto.
Thomas L Holaday
20

O (una forma cruda simple):

En B1,

=IF(COUNTIF(A$1:A1,A1)=1,A1,"") 

y copiar Simplemente copia la primera aparición de cada valor (en la fila en la que aparece).

Tapgas
fuente
1
Al igual que con todas las fórmulas de Excel, es posible que necesite usar punto y coma ( ;) en lugar de comas ( ,) según la configuración regional de su sistema.
Scott
5

O puede incluir la opción de filtro en una macro

    Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
cjcottell
fuente
3

Para mí, la forma más simple de ordenar es usar la opción "Filtro".

El primer paso es encontrar los valores duplicados con Formato condicional -> Resaltar reglas de celdas -> Valores duplicados.

Luego haga clic en la flecha en la columna donde tiene los duplicados (en este caso, "Plataformas") -> Filtrar por color (color de celdas o color de fuente).

Solo yo
fuente
El resultado aquí es diferente, ya que se eliminan todas las instancias de duplicados. Por ejemplo, la columna con valores [a, a, b]debe reducirse a [a, b], no [b].
Hugo Ideler