Note: The other languages of the website are Google-translated. Back to English

Come estrarre valori univoci da più colonne in Excel?

Supponendo di avere più colonne con più valori, alcuni valori vengono ripetuti nella stessa colonna o in una colonna diversa. E ora vuoi trovare i valori che sono presenti in entrambe le colonne solo una volta. Esistono trucchi rapidi per estrarre valori univoci da più colonne in Excel?


Estrai valori univoci da più colonne con la formula di matrice

Ecco una formula di matrice che può anche aiutarti a estrarre i valori univoci da più colonne.

1. Supponendo che i tuoi valori siano nell'intervallo A2: C9, inserisci la seguente formula nella cella E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""

Note:: Nella formula sopra, A2: C9 indica l'intervallo di celle da cui si desidera estrarre i valori univoci, E1: E1 è la prima cella della colonna in cui vuoi inserire il risultato, $ 2: $ 9 sta per le righe che contengono le celle che si desidera utilizzare e $ A: $ C indica che le colonne contengono le celle che desideri utilizzare. Si prega di cambiarli con i propri.

2. Quindi premere Maiusc + Ctrl + Invio insieme alle chiavi, quindi trascina il quadratino di riempimento per estrarre i valori univoci finché non vengono visualizzate celle vuote. Vedi screenshot:


Estrai valori univoci da più colonne con la tabella pivot

Se hai familiarità con la tabella pivot, puoi facilmente estrarre i valori univoci da più colonne con i seguenti passaggi:

1. All'inizio, inserisci una nuova colonna vuota a sinistra dei tuoi dati, in questo esempio, inserirò la colonna A accanto ai dati originali.

2. Fare clic su una cella nei dati e premere Alt + D tasti, quindi premere P immediatamente il tasto per aprire il file Creazione guidata tabella pivot e grafico pivotscegli Intervalli di consolidamento multipli nel passaggio 1 della procedura guidata, vedi screenshot:

3. Quindi fare clic Successiva pulsante, controllare Crea un singolo campo pagina per me opzione nel passaggio 2 della procedura guidata, vedi screenshot:

4. Continua a fare clic Successiva fare clic per selezionare l'intervallo di dati che include la nuova colonna di celle sinistra, quindi fare clic Aggiungi pulsante per aggiungere l'intervallo di dati al file Tutte le gamme casella di riepilogo, vedi screenshot:

5. Dopo aver selezionato l'intervallo di dati, continuare a fare clic Successiva, nel passaggio 3 della procedura guidata, scegli dove desideri inserire il rapporto di tabella pivot come preferisci.

6. Finalmente, clicca Fine per completare la procedura guidata e una tabella pivot è stata creata nel foglio di lavoro corrente, quindi deselezionare tutti i campi dal Scegli i campi da aggiungere al rapporto sezione, vedi screenshot:

7. Quindi controlla il campo Valore o trascina il valore sul file Righe etichetta, ora otterrai i valori univoci dalle più colonne come segue:


Estrai valori univoci da più colonne con codice VBA

Con il seguente codice VBA, puoi anche estrarre i valori univoci da più colonne.

1. Tieni premuto il ALT + F11 chiavi e apre il file Finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Moduloe incolla il codice seguente nella finestra del modulo.

VBA: estrae valori univoci da più colonne

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Quindi premere F5 per eseguire questo codice e verrà visualizzata una finestra di messaggio per ricordarti di selezionare l'intervallo di dati che desideri utilizzare. Vedi screenshot:

4. E poi clicca OK, apparirà un'altra finestra di messaggio per consentirti di scegliere un posto in cui inserire il risultato, vedi screenshot:

5. Clicchi OK per chiudere questa finestra di dialogo e tutti i valori univoci sono stati estratti contemporaneamente.


Estrai valori univoci da una singola colonna con una funzionalità straordinaria

A volte, è necessario estrarre i valori univoci da una singola colonna, i metodi sopra non ti aiuteranno, qui, posso consigliare uno strumento utile-Kutools for Excel, Con la sua Estrai celle con valori univoci (includi il primo duplicato) utility, puoi estrarre rapidamente i valori univoci.

NOTA:Per applicare questo Estrai celle con valori univoci (includi il primo duplicato), in primo luogo, dovresti scaricare il file Kutools for Excele quindi applica la funzione in modo rapido e semplice.

Dopo l'installazione Kutools for Excel, per favore fai come questo:

1. Fare clic su una cella in cui si desidera visualizzare il risultato. (Note:: Non fare clic su una cella nella prima riga.)

2. Quindi fare clic Kutools > formula Helper > formula Helper, vedi screenshot:

3. Nel Formule Helper finestra di dialogo, eseguire le seguenti operazioni:

  • Seleziona Testo opzione dal Formula Tipologia menu `A tendina;
  • Quindi scegli Estrai celle con valori univoci (includi il primo duplicato) dal Scegli una fromula casella di riepilogo;
  • In destra Input di argomenti sezione, seleziona un elenco di celle da cui desideri estrarre valori univoci.

4. Quindi fare clic Ok pulsante e trascina il quadratino di riempimento sulle celle in cui desideri elencare tutti i valori univoci finché non vengono visualizzate celle vuote, vedi screenshot:

Scarica subito Kutools per Excel!


Articoli più relativi:

  • Contare il numero di valori univoci e distinti da un elenco
  • Supponendo che tu abbia un lungo elenco di valori con alcuni elementi duplicati, ora, vuoi contare il numero di valori univoci (i valori che compaiono nell'elenco solo una volta) o valori distinti (tutti i diversi valori nell'elenco, significa unico valori + 1 ° valore duplicato) in una colonna come mostrato nell'immagine a sinistra. In questo articolo, parlerò di come affrontare questo lavoro in Excel.
  • Estrai valori univoci in base a criteri in Excel
  • Supponiamo che tu abbia il seguente intervallo di dati che desideri elencare solo i nomi univoci della colonna B in base a un criterio specifico della colonna A per ottenere il risultato come mostrato nell'immagine sottostante. Come puoi gestire questa attività in Excel in modo rapido e semplice?
  • Consenti solo valori univoci in Excel
  • Se desideri mantenere solo i valori univoci immessi in una colonna del foglio di lavoro e impedire i duplicati, questo articolo introdurrà alcuni trucchi rapidi per affrontare questa attività.
  • Sommare i valori univoci in base ai criteri in Excel
  • Ad esempio, ho un intervallo di dati che contiene le colonne Nome e Ordine, ora, per sommare solo valori univoci nella colonna Ordine in base alla colonna Nome come mostrato nella seguente schermata. Come risolvere questa attività rapidamente e facilmente in Excel?

I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (31)
Rinomato 5 su 5 · Valutazioni 1
Questo commento è stato fatto dal moderatore sul sito
Is this formula complete? =INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"",
Questo commento è stato fatto dal moderatore sul sito
Non è stato ancora risolto :sad:
Questo commento è stato fatto dal moderatore sul sito
che perdita di tempo..... la formula NON funziona
Questo commento è stato fatto dal moderatore sul sito
Grazie!!! Ho passato ore a cercare di farlo e di capire cosa è successo al Pivot Wizard (altro articolo).
Questo commento è stato fatto dal moderatore sul sito
Sto usando il tuo codice VBA, ma non voglio che la casella venga visualizzata. Invece voglio definire esattamente quale intervallo di celle usare ogni volta ed esattamente in quale casella inserire l'output. L'intervallo di input e l'output sarebbero su due fogli diversi. come faccio ad aggiornare il VBA per farlo? Grazie!!
Questo commento è stato fatto dal moderatore sul sito
Ehi! Qualcuno sa perché questa formula sembra portare a un errore dopo la riga 87? Ad esempio, funziona perfettamente e poi a un certo punto mi restituisce solo errori per ogni riga.. che è il peggiore! Perché sono così vicino a ciò di cui ho bisogno qui...
Questo commento è stato fatto dal moderatore sul sito
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"" It doesn't work
Questo commento è stato fatto dal moderatore sul sito
ciao voglio estrarre celle uniche dalla prima colonna quando la confronto con altre colonne (ho tre colonne disuguali), come posso farlo?
Questo commento è stato fatto dal moderatore sul sito
ciao ho tre colonne disuguali e voglio estrarre celle uniche della prima colonna. Come posso farlo?? Grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
mi piace

Estrai valori univoci da più colonne con tabella pivot
Questo commento è stato fatto dal moderatore sul sito
Puoi per favore inviare la formula corretta... la funzione VBA funziona bene.
Solo per il mio progetto, preferisco usare la formula corretta.


Grazie
Questo commento è stato fatto dal moderatore sul sito
qualcuno sa, per l'output, come trasformarlo in più righe ma non in una riga? (attualmente il risultato di una riga è ottenuto da worksheetfunction.transpose, ma quello che voglio ottenere (come risultato) è che quando si seleziona per 3 colonne, il risultato restituito sono anche 3 colonne, invece una
Questo commento è stato fatto dal moderatore sul sito
Questa formula di matrice è CORRETTA. Dati nelle colonne da A a C, prima formula del risultato nella cella D2... Questa è diversa dall'altra formula di matrice che la successiva è copia la formula in basso e Ctrl+Maiusc+Invio di tutta la formula. Tuttavia, questa formula di matrice dovrebbe essere eseguita con Ctrl + Maiusc + Invio nella prima cella e copiata verso il basso.
Questo commento è stato fatto dal moderatore sul sito
Grazie mille per la macro!!! me fue muy util
Questo commento è stato fatto dal moderatore sul sito
mi sono adattato al mio foglio ma sto solo restituendo il primo valore nell'array definito ... cosa mi sto perdendo?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Cody,
La formula sopra funziona bene nel mio foglio di lavoro, potresti fornire uno screenshot del tuo problema con i dati qui?
.
Questo commento è stato fatto dal moderatore sul sito
Per quanto riguarda la versione formula, potresti spiegare più in dettaglio cosa sta facendo questa porzione? *100+COLUMN($A:$C),7^8)),"R0C00") Nello specifico, quali sono i * 100, 7 ^ 8e "R0C000" facendo? Sto capendo tutto il resto, ma non riesco a capire a cosa servano.
Questo commento è stato fatto dal moderatore sul sito
Un po' tardi per la mia risposta qui, ma...
ROW($2:$9)*100 - questo sta moltiplicando il numero di riga *100, quindi se è nella riga 5, ora il numero è 500
COLUMN($A:$C) - questo viene aggiunto al numero riga*100, quindi se è riga 5 col 2, allora il numero è 502.
7^8)), - questo (penso) deve avere un valore massimo per l'istruzione min di prima.
"R0C00") - formatta il testo in base al numero. Nell'esempio, avevamo 502, quindi questo dà R5C02 (riga 5, col 02).

Se hai molte colonne ma non molte righe, puoi cambiarlo in ROW($2:$9)*1000+COLONNA($A:$C),7^8)),"R0C000")
Questo commento è stato fatto dal moderatore sul sito
Grazie per il codice. Sto usando il codice VBA di questa pagina. C'è un modo per aggiungere un codice di ordinamento dopo che i valori univoci sono stati estratti in modo che lo ordini automaticamente?
Questo commento è stato fatto dal moderatore sul sito
possiamo creare una funzione uniqdata invece di una macro?
Questo commento è stato fatto dal moderatore sul sito
Ciao, İlhan, se ti piace una funzione definita dall'utente per creare una formula per risolvere questo problema, il codice seguente potrebbe aiutarti: Dopo aver inserito il codice, seleziona un elenco di celle in cui desideri inserire i risultati. Quindi digita questa formula:=Unici(A1:C4)  nella barra della formula.Premere Ctrl + Maiusc + Invio chiavi insieme. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
Questo commento è stato fatto dal moderatore sul sito
Czy a żart?
Questo commento è stato fatto dal moderatore sul sito
La formula di matrice in alto funziona perfettamente se utilizzata con i dati nello stesso foglio, tuttavia quando provo a utilizzarla per fare riferimento agli stessi dati esatti da un altro foglio, la formula non restituisce nulla. Non riesco a capire perché. C'è una limitazione con le funzioni di matrice che impedisce di fare riferimento a intervalli in un foglio diverso?

Grazie per qualsiasi informazione tu possa fornire.
Questo commento è stato fatto dal moderatore sul sito
Ciao Erin,

Felice di aiutare. La funzione INDIRETTO in questa formula è più complicata da usare quando si fa riferimento a dati in altri fogli di lavoro. Non è consigliabile utilizzare questa funzionalità quando si fa riferimento a intervalli in fogli di lavoro diversi.

Ad esempio: ora i dati sono in Sheet1, voglio fare riferimento al contenuto della cella C2 di Sheet1 in Sheet2. Innanzitutto, in due celle qualsiasi in Foglio2, come D1 e D2, immettere rispettivamente Foglio1 e C2. A questo punto, inserisci la formula nella cella vuota di Foglio2:
=INDIRETTO("'"&D1&"'!"&D2), quindi è possibile restituire il contenuto della cella C2 in Foglio1.

Come puoi vedere, rende le cose molto più complesse. Spero che la mia spiegazione possa aiutare. Buona giornata.

Cordiali saluti,
Mandy
Questo commento è stato fatto dal moderatore sul sito
Salve signore! Il VBA ha funzionato a meraviglia, grazie mille per questo! Mi chiedevo, se cambio i dati originali, è possibile aggiornare automaticamente la colonna con i valori univoci?
Rinomato 5 su 5
Questo commento è stato fatto dal moderatore sul sito
Ciao Ioannis,

Felice di aiutare. Dopo aver modificato i dati originali, il VBA non può aggiornare automaticamente il risultato. E il modo più semplice che mi viene in mente è premere Ctrl + Alt + F9 per aggiornare tutti i risultati nei fogli di lavoro in tutte le cartelle di lavoro aperte. Buona giornata.

Cordiali saluti,
Mandy
Questo commento è stato fatto dal moderatore sul sito
Grazie per questo grande articolo.

Per le persone che utilizzano il formulario di matrice in Excel non inglese è necessario prestare particolare attenzione alla stringa di formato del testo: nel tuo esempio: "R0C00".
Per il tedesco questo si tradurrebbe in "Z0S00". Tuttavia, "S" è un carattere speciale che si riferisce ai secondi per la formattazione dell'ora. È necessario eseguire l'escape di questo carattere e quindi la stringa di formato corretta per Excel tedesco è "Z0\S00".

Spero che questo aiuti qualcuno in futuro :-)
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL