Ignora duplicati e crea un nuovo elenco di valori unici in Excel

Ho una colonna di valori che spesso appaiono come duplicati. Devo creare una nuova colonna, di valori univoci basati sulla prima colonna, come segue:

Column A Column B aa ab bc c c 

Questa colonna B dovrà effettivamente apparire su un foglio diverso, all’interno della stessa cartella di lavoro, quindi presumo che dovrà lavorare con il formato di stile sheet2!A1 .

Non ho avuto fortuna con le opzioni del menu Dati / Filtro in quanto sembra funzionare solo su comando. Ho bisogno che la colonna B si aggiorni automaticamente ogni volta che viene inserito un nuovo valore nella colonna A.

La risposta di Totero è corretta. Anche il collegamento è molto utile.

Fondamentalmente la formula che ti serve è:

 B2=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$20), 0)) 

Quindi premere ctrl + MAIUSC + INVIO (oppure non funzionerà con una formula di matrice).

Due cose importanti da tenere a mente qui: L’elenco completo è nelle celle A2:A20 , quindi questa formula deve essere incollata nella cella B2 (Non B1 quanto ti darà riferimento circolare). In secondo luogo, si tratta di una formula di matrice, quindi è necessario premere ctrl + MAIUSC + INVIO o non funzionerà correttamente.

C’è una buona guida su come farlo qui .

Fondamentalmente qualcosa di simile a:

 =INDEX(Sheet1!$A$1:$A$20, MATCH(0, COUNTIF($B$1:B1,Sheet!$A$1:$A$20), 0)) 

Nel mio caso l’excel era congelato quando si utilizzava la formula di

B2 = INDICE ($ A $ 2: $ A $ 20, MATCH (0, COUNTIF ($ B $ 1: B1, $ A $ 2: $ A $ 20), 0))

perché c’erano molte righe (10000). Così ho fatto in un altro modo che mostro di seguito.

Ho copiato il mio elenco originale in una seconda colonna e quindi con la funzione di Excel “rimuovi duplicati” ho trovato l’elenco di valori univoci.

Copiato dal sito Web di Microsoft Office:

 Select all the rows, including the column headers, in the list 

vuoi filtrare.

Fai clic sulla cella in alto a sinistra dell’intervallo, quindi trascina nella cella in basso a destra.

 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. 

L’elenco filtrato viene visualizzato e le righe duplicate sono nascoste.

 On the Edit menu, click Office Clipboard. 

Viene visualizzato il riquadro attività Appunti.

 Make sure the filtered list is still selected, and then click Copy Copy button. 

L’elenco filtrato è evidenziato con contorni di delimitazione e la selezione appare come>> elemento nella parte superiore degli Appunti.

 On the Data menu, point to Filter, and then click Show All. 

L’elenco originale viene nuovamente visualizzato.

 Press the DELETE key. 

L’elenco originale è cancellato.

 In the Clipboard, click on the filtered list item. 

L’elenco filtrato appare nella stessa posizione dell’elenco originale.

Fonte: sito Web di Microsoft Office (collegamento rimosso, causa morto)

Su una colonna ordinata , puoi anche provare questa idea:

 B2=A2 B3=IFERROR(INDEX(A:A,MATCH(B2,A:A,1)+1),"") 

B3 può essere incollato. Risulterà 0, dopo l’ultima partita unica. Se questo non è voluto, mettere un po ‘di istruzione IF in giro per escluderlo.

Modificare:

Più semplice di un’istruzione IF, almeno per i valori di testo:

 B3=IFERROR(T(INDEX(A:A,MATCH(B2,A:A,1)+1)),"") 

Per rimuovere i duplicati da una colonna

  1. Ordinare i valori nella colonna A A-> Z
  2. Seleziona la colonna B
  3. Mentre la colonna B è ancora selezionata, nella casella di immissione della formula, immettere

     =IF(TRIM(A1)=TRIM(A2),"",TRIM(A1)) 
  4. Mentre la colonna B è ancora selezionata, seleziona Modifica -> Riempi -> Giù (nelle versioni più recenti, seleziona semplicemente la cella B1 e trascina verso il basso la scatola esterna per espanderla fino in fondo nella colonna)

Nota : se la colonna B si trova su un altro foglio, è ansible fare Sheet1! A1 e Sheet1! A2.

Nel modulo del foglio di lavoro per il foglio che contiene l’elenco:

 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 

Ho un elenco di nomi di colors nell’intervallo A2: A8, nella colonna BI voglio estrarre un elenco distinto di nomi di colors.

Segui i passaggi indicati di seguito:

  • Seleziona la cella B2; scrivere la formula per recuperare i valori univoci da un elenco.
  • =IF(COUNTIF(A$2:A2,A2)=1,A2,””)
  • Premi Invio sulla tastiera.
  • La funzione restituirà il nome del primo colore.
  • Per restituire il valore per il resto delle celle, copia la stessa formula in basso. Per copiare la formula nell’intervallo B3: B8, copia la formula nella cella B2 premendo il tasto CTRL + C sulla tastiera e incolla nell’intervallo B3: B8 premendo il tasto CTRL + V.
  • Qui puoi vedere l’output dove abbiamo la lista univoca dei nomi dei colors.

Quindi per questa operazione Prima ordina i tuoi dati in ordine dalla A alla Z o dalla Z alla A, quindi puoi semplicemente usare una semplice formula come indicato di seguito:

 =IF(A2=A3, "Duplicate", "Not Duplicate") 

La formula sopra riportata indica che se i dati della colonna A2 (A è colonna e 2 è numero riga) è simile a A3 (A è colonna e 3 è numero riga), quindi stamperà Duplicato altrimenti stamperà Non duplicato.

Prendiamo in considerazione un esempio, la Colonna A è costituita da un indirizzo Email in cui alcuni sono duplicati, quindi nella Colonna 2 ho usato la formula sopra indicata che nei risultati mi ha mostrato le 2 celle duplicate una è la Riga 2 e la Riga 6.

Uno ha i dati duplicati, basta mettere il filtro sul foglio e rendere visibili solo i dati duplicati ed eliminare tutti i dati non necessari.

Onestamente ho seguito questi esempi per un tee e semplicemente non hanno funzionato. Quello che ho finito dopo aver lottato inutilmente cercando di far funzionare Excel è stato copiare semplicemente l’intero contenuto della mia colonna in NotePad ++, dove sono riuscito a trovare una soluzione facile in pochi minuti. Dai un’occhiata a questo: Rimozione di righe duplicate in Notepad ++

Modifica: Ecco una breve panoramica su come farlo in TextFX:

Plugin -> Plugin Manager -> Show Plugin Manager -> scheda Disponibile -> TextFX -> Installa

Dopo aver installato TextFX in NotePad ++, seleziona tutto il testo da cui vuoi rimuovere i duplicati, quindi assicurati di controllare: TextFX -> Strumenti TextFX -> Ordina solo le righe UNICHE

Quindi fai clic su “ordina linee maiuscole / minuscole” o “Ordina righe senza distinzione tra maiuscole e minuscole” e verrà eseguito l’ordinamento univoco.

Trova qui la formula sopra citata con controllo degli errori

 =IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"") 

dove: (B2: B9 è i dati della colonna che si desidera estrarre i valori univoci, D1 è la cella sopra dove si trova la formula)

Tutto quello che devi fare è: Vai alla scheda Dati Scegli Avanzate in Ordina e Filtra Nelle azioni seleziona: copia in un’altra posizione se vuoi un nuovo elenco – Copia in qualsiasi posizione Nell’intervallo di lista scegli la lista in cui vuoi togliere i record. E la cosa più importante è controllare: solo record unici.

L’approccio MODERNA consiste nel considerare casi in cui la colonna di informazioni proviene da un servizio web come una fonte OData. Se è necessario generare un filtro, selezionare i campi al di fuori dei dati massivi che hanno valori replicati per la colonna, prendere in considerazione il codice seguente:

 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  */ 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 += ""; } else if(myValue != data.results[i-1].Expense_x0020_Type) { myhtml += ""; } else { } } $("#mySelect1").append(myhtml); });