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

Come visualizzare e concatenare più valori corrispondenti in Excel?

Come tutti sappiamo, il Vlookup la funzione in Excel può aiutarci a cercare un valore e restituire i dati corrispondenti in un'altra colonna, ma in generale può ottenere il primo valore relativo solo se sono presenti più dati corrispondenti. In questo articolo, parlerò di come visualizzare e concatenare più valori corrispondenti in una sola cella o in un elenco verticale.

Vlookup e restituisce più valori corrispondenti verticalmente con la formula

Visualizza e concatena più valori corrispondenti in una cella con la funzione definita dall'utente

Vlookup e concatena più valori corrispondenti in una cella con Kutools per Excel


Supponendo di avere il seguente intervallo di dati, per ottenere tutti i valori corrispondenti in base a un valore specifico verticalmente come mostrato nella seguente schermata, è possibile applicare una formula di matrice.

doc vlookup concatena 1

1. Inserisci questa formula: =IF(COUNTIF($A$1:$A$16,$D$2)>=ROWS($1:1),INDEX($B$1:$B$16,SMALL(IF($A$1:$A$16=$D$2,ROW($1:$16)),ROW(1:1))),"") in una cella vuota in cui si desidera inserire il risultato, ad esempio E2, quindi premere CTRL + MAIUSC + INVIO chiavi insieme per ottenere la base del valore relativo su un criterio specifico, vedi screenshot:

doc vlookup concatena 2

Note:: Nella formula sopra:

A1: A16 è l'intervallo di colonne che contiene il valore specifico che desideri cercare;

D2 indica il valore specifico che desideri visualizzare;

B1: B16 è l'intervallo di colonne da cui si desidera restituire i dati corrispondenti;

$ 1: $ 16 indica il riferimento alle righe all'interno dell'intervallo.

2. Quindi seleziona la cella E2 e trascina il quadratino di riempimento verso il basso sulle celle fino a ottenere celle vuote e tutti i valori corrispondenti sono elencati nella colonna come mostrato nella seguente schermata:

doc vlookup concatena 3


Invece di ottenere i valori relativi verticalmente, a volte, vuoi i valori corrispondenti in una cella e concatenarli con un separatore specifico. In questo caso, la seguente funzione definita dall'utente potrebbe farti un favore.

1. Tenere premuto il tasto ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il codice seguente nel file Modulo Finestra.

Codice VBA: Vlookup e concatena più valori corrispondenti in una cella

Function CusVlookup(lookupval, lookuprange As Range, indexcol As Long)
'updateby Extendoffice
Dim x As Range
Dim result As String
result = ""
For Each x In lookuprange
    If x = lookupval Then
        result = result & " " & x.Offset(0, indexcol - 1)
    End If
Next x
CusVlookup = result
End Function

3. Quindi salva e chiudi questo codice, torna al foglio di lavoro e inserisci questa formula: = cusvlookup (D2, A1: B16,2) in una cella vuota in cui si desidera inserire il risultato e premere Entra chiave, tutti i valori corrispondenti basati su dati specifici sono stati restituiti in una cella con separatore di spazio, vedi screenshot:

doc vlookup concatena 4

Note:: Nella formula sopra: D2 indica i valori delle celle che desideri cercare, LA1: SI16 è l'intervallo di dati di cui vuoi recuperare i dati, il numero 2 è il numero della colonna da cui deve essere restituito il valore corrispondente, è possibile modificare questi riferimenti in base alle proprie necessità.


Se si dispone di Kutools for Excel, Con la sua Combina righe avanzate funzione, puoi completare rapidamente questo lavoro con facilità. Questa funzione può aiutarti a combinare tutti i valori corrispondenti con delimitatori specifici basati sugli stessi dati in un'altra colonna.

Kutools for Excel : con oltre 300 utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni in 30 giorni.

Dopo l'installazione Kutools for Excel, si prega di fare come segue:

1. Seleziona l'intervallo di dati a cui desideri ottenere i valori corrispondenti in base ai dati specifici.

2. Quindi fare clic Kutools > Unisci e dividi > Combina righe avanzate, vedi screenshot:

3. Nel Combina righe avanzate finestra di dialogo, fare clic sul nome della colonna su cui si desidera combinare, quindi fare clic su Chiave primaria pulsante, vedi screenshot:

doc vlookup concatena 6

4. Quindi fare clic su un altro nome di colonna in cui si desidera restituire i valori corrispondenti e fare clic Combinare per scegliere un separatore per separare i valori combinati, vedi screenshot:

doc vlookup concatena 7

5. E poi clicca Ok pulsante, tutti i valori corrispondenti basati sugli stessi valori sono stati combinati insieme a un separatore specifico, vedi screenshot:

doc vlookup concatena 8 2 doc vlookup concatena 9

 Scarica e prova gratuitamente Kutools per Excel ora!


Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni. Scarica e prova gratuita ora!

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-2019 e 365. Supporta tutte le lingue. Facile distribuzione 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 centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (16)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Come ottenere il risultato. Per favore aiuto. data data1 risultato a 1 a1 b 2 a2 c b1 b2 c1 c2
Questo commento è stato fatto dal moderatore sul sito
Quando si utilizza cusvlookup c'è un modo per aggiungere anche il cognome con una virgola in mezzo che potrebbe apparire nella colonna C
Questo commento è stato fatto dal moderatore sul sito
Mi è piaciuta la funzione per Excel 2013 ma l'ho modificata leggermente per cambiare il carattere di separazione in ";" invece di " " e quindi rimuovere il prefisso ";" dai valori concatenati I valori corrispondenti ai risultati nel mio esempio avrebbero ;result01 o ;result01;result02 . Aggiunto l'extra If Left(xResult, 1) = ";" per rimuovere eventuali ";" in più all'inizio della stringa se è il primo carattere. Sono sicuro che c'è un modo più ordinato di farlo, ma ha funzionato per me. :) Funzione CusVlookup(pValue As String, pWorkRng As Range, pIndex As Long) Dim rng As Range Dim xResult As String xResult = "" For Each rng In pWorkRng If rng = pValue Then xResult = xResult & ";" & rng.Offset(1, pIndex - 0) Se Left(xResult, 1) = ";" Quindi xResult = MID(xResult,1) End If End If Next CusVlookup = xResult End Function
Questo commento è stato fatto dal moderatore sul sito
Crea se condizione per il risultato se vuoto.

Funzione CusVlookup(lookupval, lookuprange As Range, indexcol As Long)
'aggiornamento entro Extendoffice 20151118
Dim x come intervallo
Risultato debole come stringa
risultato = ""
Per ogni x Nell'intervallo di ricerca
Se x = valore di ricerca Allora
Se non risulta = "" Allora
risultato = risultato & " " & x.Offset(0, indexcol - 1)
Altro
risultato = x.Offset(0, indexcol - 1)
End If
Prossimo x
CusVlookup = risultato
End Function
Questo commento è stato fatto dal moderatore sul sito
Questo è fantastico ma sto cercando qualcos'altro, ho una tabella con RollNo StudentName sub1, sub2, sub3 ... Risultato totale, quando inserisco Rollnumber dovrebbe dare un risultato come "SName Sub1 64, sub2 78, ... Totale 389, Risultato pass", è possibile
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per eliminare i valori duplicati nel concatenato?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Giacobbe,
Potrebbe essere il seguente articolo può aiutarti a risolvere il tuo problema.
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html

Per favore, prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per elencare i valori duplicati solo una volta, usando il codice vba e la formula sopra? Non sono sicuro di dove inserire l'istruzione countif>1 nella barra della formula o nella stessa vba. Per favore aiuto
Questo commento è stato fatto dal moderatore sul sito
puoi aggiungere due condizioni extra per saltare le celle vuote e per saltare i duplicati: For i = 1 To CriteriaRange.Count
Se CriteriaRange.Cells(i).Value = Condizione allora
Se ConcatenateRange.Cells(i).Value <> "" Allora 'SKIP BANKS
Se InStr(xResult, ConcatenateRange.Cells(i).Value) = 0 allora 'SALTA SE TROVATO DUPLICATO
xRisultato = xRisultato & Separatore & ConcatenateRange.Cells(i).Value
End If
End If
End If
Avanti
Questo commento è stato fatto dal moderatore sul sito
Devo dire che sto cercando di ottenere una formula per combinare più valori e restituirli in una singola cella da 2 giorni. Questo "Come fare per" mi ha salvato!! Grazie mille! Non l'avrei mai ottenuto senza il tuo modulo!
Ho 2 domande però. Ho il delimitatore come una virgola invece di uno spazio e per questo inizia con una virgola. C'è un modo per impedire la virgola iniziale ma mantenere il resto?
La mia seconda domanda è; Quando utilizzo il quadratino di riempimento, cambia i valori dell'intervallo e il valore della cella che voglio cercare. Voglio che continui a cambiare il numero di cella che voglio cercare ma mantenga gli stessi valori di intervallo. Come posso fare in modo che ciò accada?

Grazie mille per il vostro aiuto!!
Questo commento è stato fatto dal moderatore sul sito
Il cusVlookup ha funzionato alla grande per me. Un altro modo per avere un separatore diverso è racchiudere in due funzioni sostitutive. Il primo (dall'interno verso l'esterno) sostituisce il primo spazio senza spazio, il secondo sostituisce tutti gli altri spazi con un " / " nel mio. Potrebbe usare "," se vuoi le virgole.
=SOSTITUZIONE(SOSTITUZIONE(cusVlookup(D2,Tabella1,2)," ","",1)," "," / ")

Inoltre, se il valore di ricerca non è la prima colonna, puoi utilizzare 0 o numeri negativi per andare alla colonna a sinistra.
=SOSTITUZIONE(SOSTITUZIONE(cusVlookup(D2,Tabella1,-1)," ","",1)," "," / ")
Questo commento è stato fatto dal moderatore sul sito
Ciao, jeff,
Grazie per la tua condivisione, devi essere un uomo di buon cuore.
Questo commento è stato fatto dal moderatore sul sito
Funziona benissimo per me - c'è comunque la possibilità di cambiarlo per verificare se la cella contiene piuttosto che una corrispondenza completa? Fondamentalmente ho un elenco di attività in cui:
Colonna A: Dipendenze (es. 10003 10004 10008)
Colonna B: Riferimento attività (ad es. 10001)
Colonna C: Attività dipendenti (la colonna per il risultato della formula) - dove cerca il riferimento all'attività per vedere quali righe lo contengono nella colonna A, quindi elenca il Riferimento attività di tali attività.

Per esempio:

Riga | Colonna A | Colonna B | Colonna C
1 | | 10001 | 10002 10003
2 | 10001 | 10002 | 10003
3 | 10001 10002 | 10003 |
Questo commento è stato fatto dal moderatore sul sito
vorresti usare la funzione Instr() che verificherà qualcosa in una stringa di testo in una cella. Puoi anche usare Left() e Right() se stai cercando i dettagli iniziali o finali.
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per ottenere il "nome" univoco per "class1"
Questo commento è stato fatto dal moderatore sul sito
Ciao, sym-john,
Forse l'articolo qui sotto può risolvere il tuo problema, per favore guardalo:
https://www.extendoffice.com/documents/excel/3381-excel-extract-unique-values-with-criteria.html
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite