unicos - Ignorar duplicados y crear una nueva lista de valores únicos en Excel
formula para eliminar duplicados en excel (12)
Tengo una columna de valores que a menudo aparecen como duplicados. Necesito crear una nueva columna, de valores únicos basados en la primera columna, de la siguiente manera:
Column A Column B
a a
a b
b c
c
c
Esta columna B realmente tendrá que aparecer en una hoja diferente, dentro del mismo libro de trabajo, así que supongo que tendrá que trabajar con el formato de estilo sheet2!A1
.
No he tenido suerte con las opciones del menú Datos / Filtro, ya que parece que solo funciona en el comando. Necesito que la columna B se actualice automáticamente siempre que se ingrese un nuevo valor en la columna A.
El enfoque MODERNO es considerar los casos en que la columna de información proviene de un servicio web, como una fuente de OData. Si necesita generar un filtro, seleccione campos fuera de datos masivos que tengan valores replicados para la columna, considere el siguiente código:
var CatalogURL = getweb(currenturl)
+"/_api/web/lists/getbytitle(''Site%20Inventory%20and%20Assets'')/items?$select=Expense_x0020_Type&$orderby=Expense_x0020_Type";
/* the column that is replicated, is ordered by <column_name> */
OData.read(CatalogURL,
function(data,request){
var myhtml ="";
var myValue ="";
for(var i = 0; i < data.results.length; i++)
{
myValue = data.results[i].Expense_x0020_Type;
if(i == 0)
{
myhtml += "<option value=''"+myValue+"''>"+myValue+"</option>";
}
else
if(myValue != data.results[i-1].Expense_x0020_Type)
{
myhtml += "<option value=''"+myValue+"''>"+myValue+"</option>";
}
else
{
}
}
$("#mySelect1").append(myhtml);
});
En el módulo de hoja de trabajo para la hoja que contiene la lista:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDest As Range
If Not Intersect(Target, Me.Columns(1)) Is Nothing Then
Set rngDest = ThisWorkbook.Sheets("Sheet2").Range("A1")
Me.Range(Me.Range("A2"), Me.Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=rngDest, Unique:=True
End If
End Sub
En mi caso, el excel se congeló al usar la fórmula de
B2 = INDICE ($ A $ 2: $ A $ 20, PARTIDO (0, CONTABLE ($ B $ 1: B1, $ A $ 2: $ A $ 20), 0))
porque había muchas filas (10000). Así que lo hice de otra manera, que muestro a continuación.
He copiado mi lista original en una segunda columna y luego, con la función de Excel "eliminar duplicados", pude encontrar la lista de valores únicos.
Copiado del sitio web de Microsoft Office:
Select all the rows, including the column headers, in the list
quieres filtrar
Haga clic en la celda superior izquierda del rango, y luego arrastre a la celda inferior derecha.
On the Data menu, point to Filter, and then click Advanced Filter. In the Advanced Filter dialog box, click Filter the list, in place. Select the Unique records only check box, and then click OK.
Se muestra la lista filtrada y las filas duplicadas están ocultas.
On the Edit menu, click Office Clipboard.
Se muestra el panel de tareas del Portapapeles.
Make sure the filtered list is still selected, and then click Copy Copy button.
La lista filtrada se resalta con contornos delimitadores y la selección aparece como un elemento>> en la parte superior del Portapapeles.
On the Data menu, point to Filter, and then click Show All.
La lista original se vuelve a mostrar.
Press the DELETE key.
La lista original es eliminada.
In the Clipboard, click on the filtered list item.
La lista filtrada aparece en la misma ubicación que la lista original.
Fuente: sitio web de Microsoft Office (enlace eliminado, causa muerte)
En una columna ordenada , también puedes probar esta idea:
B2=A2
B3=IFERROR(INDEX(A:A,MATCH(B2,A:A,1)+1),"")
B3 puede ser pegado. Ocasionará 0, después de la última coincidencia única. Si esto no es deseado, ponga alguna instrucción IF alrededor para excluir esto.
Editar:
Más fácil que una instrucción IF, al menos para valores de texto:
B3=IFERROR(T(INDEX(A:A,MATCH(B2,A:A,1)+1)),"")
Encuentre here fórmula mencionada anteriormente con control de errores
=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"")
donde: (B2: B9 es la columna de datos que desea extraer los valores únicos, D1 es la celda de arriba donde se encuentra su fórmula)
Hay una buena guía de cómo hacer esto here .
Básicamente algo similar a:
=INDEX(Sheet1!$A$1:$A$20, MATCH(0, COUNTIF($B$1:B1,Sheet!$A$1:$A$20), 0))
Honestamente, seguí estos ejemplos a la perfección y simplemente no funcionaron. Lo que terminé haciendo después de luchar inútilmente tratando de hacer que Excel funcionara fue copiar todo el contenido de mi columna a NotePad ++, donde pude encontrar una solución fácil en cuestión de minutos. Eche un vistazo a esto: Eliminar filas duplicadas en Notepad ++
Editar: Aquí hay una breve descripción de cómo hacerlo en TextFX:
Complementos -> Administrador de complementos -> Mostrar administrador de complementos -> Pestaña disponible -> TextFX -> Instalar
Después de que TextFX está instalado en NotePad ++, entonces selecciona todo el texto del que desea eliminar los duplicados, luego asegúrese de marcar: TextFX -> TextFX Tools -> Sort outputs only UNIQUE lines
A continuación, haga clic en "ordenar las mayúsculas y minúsculas" o "ordenar las líneas sin distinción entre mayúsculas y minúsculas", y se realizará una clasificación única.
La respuesta de Totero es correcta. El enlace también es muy útil.
Básicamente, la fórmula que necesitas es:
B2=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$20), 0))
Luego presione ctrl + shift + enter (o no funcionará con una fórmula de matriz).
Aquí hay dos cosas importantes que debe tener en cuenta: la lista completa está en las celdas A2:A20
, luego esta fórmula debe pegarse en la celda B2
(no B1
ya que le dará una referencia circular). En segundo lugar, esta es una fórmula de matriz, por lo que debe presionar ctrl + shift + enter o no funcionará correctamente.
Para eliminar duplicados de una columna
- Ordene los valores en la columna A A-> Z
- Seleccione la columna B
Mientras que la columna B aún está seleccionada, en el cuadro de entrada de fórmula, ingrese
=IF(TRIM(A1)=TRIM(A2),"",TRIM(A1))
Mientras que la columna B aún está seleccionada, seleccione Editar -> Rellenar -> Abajo (en versiones más recientes, simplemente seleccione la celda B1 y despliegue la casilla exterior para expandirla completamente en la columna)
Nota : si la columna B está en otra hoja, puede hacer Sheet1! A1 y Sheet1! A2.
Por lo tanto, para esta tarea Primero ordene sus datos en orden de A a Z o Z a A, luego puede usar una fórmula simple como se indica a continuación:
=IF(A2=A3, "Duplicate", "Not Duplicate")
La fórmula anterior establece que si los datos de la columna A2 (A es la columna y 2 es el número de la fila) es similar a A3 (A es la columna y 3 es el número de la fila), imprimirá Duplicate else y se imprimirá No duplicado.
Veamos un ejemplo, la Columna A consiste en una dirección de correo electrónico en la que algunos están duplicados, así que en la Columna 2, utilicé la fórmula indicada anteriormente que en los resultados me mostró las 2 celdas duplicadas, una es la Fila 2 y la Fila 6.
Una vez que obtuvo los datos duplicados, simplemente coloque el filtro en su hoja y haga visibles solo los datos duplicados y elimine todos los datos innecesarios.
Tengo una lista de nombres de colores en el rango A2: A8, en la columna BI quiero extraer una lista distinta de nombres de colores.
Siga los pasos dados a continuación:
- Seleccione la Celda B2; escribe la fórmula para recuperar los valores únicos de una lista.
-
=IF(COUNTIF(A$2:A2,A2)=1,A2,””)
- Presiona Enter en tu teclado.
- La función devolverá el nombre del primer color.
- Para devolver el valor del resto de celdas, copie la misma fórmula. Para copiar la fórmula en el rango B3: B8, copie la fórmula en la celda B2 presionando la tecla CTRL + C en su teclado y pegue en el rango B3: B8 presionando la tecla CTRL + V.
- Aquí puede ver el resultado donde tenemos la lista única de nombres de colores.
Todo lo que tiene que hacer es: ir a la pestaña de Datos Seleccione Avanzar en Acciones de Ordenar y Filtrar: seleccione: copiar a otra ubicación si desea una nueva lista - Copiar a cualquier ubicación En el rango de lista, elija la lista de la que desea obtener los registros. Y lo más importante es comprobar: registros únicos solamente.