Come eseguire una ricerca verticale e restituire più valori senza duplicati in Excel?
Quando lavori con i dati in Excel, potresti avere la necessità di restituire più valori corrispondenti a un determinato criterio di ricerca. Tuttavia, la funzione VLOOKUP predefinita recupera solo un singolo valore. Se esistono più corrispondenze e desideri visualizzarle tutte in una sola cella senza duplicati, puoi utilizzare metodi alternativi per ottenere questo risultato.

Eseguire una ricerca verticale e restituire più valori corrispondenti senza duplicati in Excel
Restituire più valori corrispondenti senza duplicati con le funzioni TEXTJOIN e FILTER
Se utilizzi Excel365 o Excel2021, puoi sfruttare le funzioni TEXTJOIN e FILTER per ottenere facilmente questo risultato. Queste funzioni permettono di filtrare dinamicamente i dati e concatenare i risultati in una sola cella.
Inserisci la formula seguente in una cella vuota per esportare il risultato, quindi premi il tasto "Invio" per ottenere tutti i valori corrispondenti senza duplicati. Vedi screenshot:
=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(C2:C17, A2:A17=E2)))
- FILTER(C2:C17, A2:A17=E2) estrae tutti i nomi nella Colonna C in cui il prodotto nella Colonna A corrisponde al valore di ricerca in E2.
- UNIQUE rimuove eventuali valori duplicati.
- TEXTJOIN(", ", TRUE, ...) unisce i valori unici risultanti in una sola cella, separati da virgole.
Restituire più valori corrispondenti senza duplicati con una funzionalità avanzata
Se desideri eseguire una ricerca verticale e restituire più valori corrispondenti senza duplicati in Excel ma trovi troppo complessi i metodi manuali o il VBA, "Kutools per Excel" offre una soluzione semplice ed efficiente: grazie alla funzione "Ricerca uno-a-molti" puoi estrarre e unire rapidamente tutti i valori unici corrispondenti in una sola cella con pochi clic.
Fai clic su "Kutools" > "Super RICERCA.VERT" > "Ricerca uno-a-molti (restituisce più risultati)" per aprire la finestra di dialogo "Ricerca uno-a-molti", quindi specifica le operazioni nella finestra di dialogo:
- Seleziona separatamente "Area di posizionamento dellelenco" e "Intervallo dei valori da cercare" nelle rispettive caselle di testo;
- Seleziona l'intervallo della tabella che desideri utilizzare;
- Specifica separatamente la colonna chiave e la colonna di restituzione dai menu a discesa "Colonna chiave" e "Colonna di restituzione";
- Infine, fai clic sul pulsante "OK".
Risultato:
Ora puoi vedere che tutti i valori corrispondenti sono stati estratti senza elementi duplicati, come mostrato nello screenshot:
Se desideri utilizzare un delimitatore diverso per separare i dati, puoi fare clic su "Opzioni" e selezionare il delimitatore desiderato. Inoltre, puoi eseguire altre operazioni sui risultati, come sommare, calcolare la media e altro ancora.
Restituire più valori corrispondenti senza duplicati con una Funzione Definita dall'Utente
Se non disponi di Excel365 o Excel2021, puoi utilizzare la Funzione Definita dall'Utente fornita di seguito come alternativa. Questo metodo consente di ottenere risultati simili, come ad esempiorestituire più valori corrispondenti senza duplicati, anche nelle versioni precedenti di Excel.
- Tieni premuti i tasti "Alt" + "F11" per aprire la finestra "Microsoft Visual Basic for Applications".
- Fai clic su "Inserisci" > "Modulo" e incolla il codice seguente nella Finestra "Modulo".
Codice VBA: Ricerca verticale e restituzione di più valori unici corrispondenti:
Function VlookupUnique(lookupValue As String, lookupRange As Range, resultRange As Range, delim As String) As String Dim cell As Range Dim result As String Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") For Each cell In lookupRange If cell.Value = lookupValue Then If Not dict.exists(resultRange.Cells(cell.Row - lookupRange.Row + 1, 1).Value) Then dict.Add resultRange.Cells(cell.Row - lookupRange.Row + 1, 1).Value, True result = result & delim & resultRange.Cells(cell.Row - lookupRange.Row + 1, 1).Value End If End If Next cell If Len(result) > 0 Then VlookupUnique = Mid(result, Len(delim) + 1) Else VlookupUnique = "" End If End Function
- Salva e chiudi la finestra del codice, torna al foglio di lavoro e inserisci la formula seguente, premi il tasto "Invio" per ottenere il risultato corretto come desiderato. Vedi screenshot:
=VlookupUnique(E2, A2:A17, C2:C17, ", ")
In sintesi, esistono diversi modi efficaci per eseguire una ricerca verticale e restituire più valori corrispondenti senza duplicati in Excel. Scegli il metodo più adatto alle tue esigenze e alla versione di Excel che utilizzi. Grazie a queste tecniche, puoi facilmente restituire più valori corrispondenti senza duplicati in Excel. Se sei interessato a scoprire altri suggerimenti e trucchi per Excel, il nostro sito offre migliaia di tutorial.
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- 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, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!