VLOOKUP Partita sfumata in Excel (3 modi rapidi)

  • Condividi Questo
Hugh West

Oggi impareremo a utilizzare VLOOKUP per cercare Abbinamento confuso in Excel.

Quando si lavora con insiemi di dati più grandi, spesso si cerca di filtrare i valori simili. Uno di questi tipi di corrispondenza è chiamato Abbinamento confuso , dove i valori non sono esattamente uguali, ma vengono comunque abbinati in base alla loro somiglianza.

Quindi, discutiamo di come si può utilizzare l'opzione VBA VLOOKUP funzione di Excel per cercare Abbinamento confuso .

Introduzione al Fuzzy Match

A Abbinamento confuso è un tipo di corrispondenza parziale.

In questo tipo di corrispondenze, un testo non corrisponde completamente all'altro testo, ma le sezioni importanti del testo corrispondono all'altro testo.

Nell'esempio dato, il libro "La storia dell'India durante la guerra mondiale". contiene tre importanti sezioni: La storia , India , e Guerra mondiale .

Pertanto, tutti i libri che contengono una o più di una di queste sezioni corrisponderanno in modo confuso al libro.

Quindi, le corrispondenze sfumate sono:

  • La storia della Seconda Guerra Mondiale
  • Storia della Grecia antica
  • La guerra mondiale: cause ed effetti
  • La civiltà dell'Indo: una storia antica
  • L'India conquista la libertà
  • Adolf Hitler: prima e dopo la guerra mondiale
  • La scoperta dell'India

Scarica il quaderno di esercizi

VLOOKUP Fuzzy Matching.xlsm

3 approcci per la corrispondenza VLOOKUP Fuzzy in Excel

Qui abbiamo un insieme di dati con il valore Nomi di alcuni libri di una libreria chiamata.

Il nostro obiettivo oggi è quello di utilizzare il VLOOKUP di Excel per generare alcune Corrispondenze confuse Discutiamo di 3 approcci diversi.

1. VLOOKUP Fuzzy Match utilizzando i caratteri jolly (corrispondenza dell'intero valore di ricerca)

  • Prima di tutto, genereremo alcune corrispondenze sfumate utilizzando il carattere jolly Asterisco (*) Ma ricordate, dovete far corrispondere l'intero simbolo valore_di_ricerca in questo metodo, non le parti separate dell'oggetto valore_di_ricerca .

Per esempio, possiamo trovare un libro contenente il testo "Seconda guerra mondiale" in questo modo.

Solo i libri con il testo completo "Seconda guerra mondiale" corrisponderà.

La formula è semplice: posizionare un Asterisco (*) su entrambe le estremità del valore_di_ricerca testo.

La formula sarà:

=VLOOKUP("*Seconda guerra mondiale*",B5:B22,1,FALSO)

  • Si può anche utilizzare un riferimento di cella al posto del testo originale, utilizzando il comando Ampersand (&) per unirli in un unico testo, come in questo caso:

=VLOOKUP("*"&D5&"*",B5:B22,1,FALSE)

Per saperne di più VLOOKUP utilizzando i caratteri jolly, visitare questo articolo .

Per saperne di più: Come eseguire VLOOKUP con caratteri jolly in Excel (2 metodi)

2. Corrispondenza fuzzy con VBA

Il metodo della sezione precedente soddisfa parzialmente il nostro scopo, ma non completamente.

Ora ricaveremo una formula utilizzando una Codice VBA che soddisfa quasi completamente il nostro scopo.

  • All'inizio, aprire un VBA e inserire quanto segue VBA in un nuovo modulo:

Codice :

 Function FUZZYMATCH(str As String, rng As Range) str = LCase(str) Dim Remove_1(5) As Variant Remove_1(0) = "," Remove_1(1) = "." Remove_1(2) = ":" Remove_1(3) = "-" Remove_1(4) = ";" Remove_1(5) = "?" Dim Rem_Str_1 As String Rem_Str_1 = str Dim rem_count_1 As Variant For Each rem_count_1 In Remove_1 Rem_Str_1 = Replace(Rem_Str_1, rem_count_1, "") Next rem_count_1 Words = Split(Rem_Str_1) Dim i AsVariant For i = 0 To UBound(Words) If Len(Words(i)) = 1 Or Len(Words(i)) = 2 Then Words(i) = Replace(Words(i), Words(i), " bt ") End If Next i Dim Final_Remove(26) As Variant Final_Remove(0) = "il" Final_Remove(1) = "e" Final_Remove(2) = "ma" Final_Remove(3) = "con" Final_Remove(4) = "in" Final_Remove(5) = "prima" Final_Remove(6) = "dopo" Final_Remove(7) = "oltre" Final_Remove(8) ="qui" Final_Remove(9) = "lì" Final_Remove(10) = "suo" Final_Remove(11) = "lei" Final_Remove(12) = "lui" Final_Remove(13) = "può" Final_Remove(14) = "potrebbe" Final_Remove(15) = "può" Final_Remove(16) = "potrebbe" Final_Remove(17) = "dovrà" Final_Remove(18) = "dovrebbe" Final_Remove(19) = "sarà" Final_Remove(20) = "sarebbe" Final_Remove(21) = "questo" Final_Remove(22) = "quello" Final_Remove(23) = "hanno"Final_Remove(24) = "ha" Final_Remove(25) = "aveva" Final_Remove(26) = "durante" Dim w As Variant Dim ww As Variant For w = 0 To UBound(Words) For Each ww In Final_Remove If Words(w) = ww Then Words(w) = Replace(Words(w), Words(w), " bt ") Exit For ' End If Next ww Next w Dim Lookup As Variant Dim x As Integer x = rng.Rows.count ReDim Lookup(x - 1) Dim j As Variant j = 0 Dim k As Variant For Each kIn rng Lookup(j) = k j = j + 1 Next k Dim Lower As Variant ReDim Lower(UBound(Lookup)) Dim u As Variant For u = 0 To UBound(Lookup) Lower(u) = LCase(Lookup(u)) Next u Dim out As Variant ReDim out(UBound(Lookup), 0) Dim count As Integer co = 0 mark = 0 Dim m As Variant For m = 0 To UBound(Lower) Dim n As Variant For Each n In Words Dim o As Variant For o = 1 To Len(Lower(m)) If Mid(Lower(m), o,Len(n)) = n Allora out(co, 0) = Lookup(m) co = co + 1 mark = mark + 1 Exit For End If Next o If mark> 0 Then Exit For End If Next n mark = 0 Next m Dim output As Variant ReDim output(co - 1, 0) Dim z As Variant For z = 0 To co - 1 output(z, 0) = out(z, 0) Next z FUZZYMATCH = output End Function 

Questo codice costruisce una funzione chiamata FUZZYMATCH .

  • Ora, salvate come segue i passaggi del Metodo 3 di questo articolo .

Questo FUZZYMATCH scopre tutti gli elementi Corrispondenze confuse di un Valore di ricerca direttamente.

Il Sintassi di questo FUZZYMATCH è la funzione:

=FUZZYMATCH(lookup_value,lookup_range)

Per scoprire il Corrispondenze confuse del libro "La storia dell'India durante la guerra mondiale". , inserire questo valore_di_ricerca in una cella ( D5 in questo esempio) e inserire questa formula in un'altra cella:

=FUZZYMATCH(D5,B5:B22)

Abbiamo scoperto tutte le corrispondenze sfocate del libro. "La storia dell'India durante la guerra mondiale".

  • Qui D5 è il riferimento alla cella del file lookup_value ("Storia dell'India durante la guerra mondiale").
  • B5:B22 è il intervallo_di_ricerca .

Scopriamo il Corrispondenze confuse di un altro libro intitolato "Un quaderno delle cause della criminalità nelle grandi città". .

Inserire questo valore_di_ricerca in una cella ( D5 in questo esempio) e inserire questa formula in un'altra cella:

=FUZZYMATCH(D5,B5:B22)

💡 Spiegazione della formula

  • Il FUZZYMATCH è la funzione che abbiamo costruito in VBA Prende una stringa chiamata valore_di_ricerca e un intervallo di celle chiamato intervallo_di_ricerca e restituisce un array di tutti gli elementi Corrispondenze confuse della stringa.
  • Pertanto FUZZYMATCH(D5,B5:B22) restituisce un array di tutti gli elementi Corrispondenze confuse della stringa nella cella D5 dalla gamma B5:B22 .

Per saperne di più: Come fare il VLOOKUP di un testo parziale in Excel (con alternative)

Letture simili

  • VLOOKUP non funziona (8 motivi e soluzioni)
  • MATCH INDICE vs funzione VLOOKUP (9 esempi)
  • Utilizzare VLOOKUP con più criteri in Excel (6 metodi + alternative)
  • VLOOKUP di Excel per restituire più valori in verticale
  • VLOOKUP e restituzione di tutte le corrispondenze in Excel (7 modi)

3. Corrispondenza fuzzy utilizzando l'add-in Fuzzy Lookup di Excel

Microsoft Excel fornisce un Add-in chiamato Fuzzy Lookup, con il quale è possibile far corrispondere due tabelle per Ricerca fuzzy .

  • All'inizio, scaricare e installare il programma Add-in da questo link .
  • Dopo averlo scaricato e installato con successo, troverete il componente aggiuntivo Fuzzy Lookup nella barra degli strumenti di Excel.

  • Quindi disponete i set di dati in due tabelle che volete far coincidere.

  • Qui ho due tabelle contenenti due elenchi di libri di due librerie chiamate Libreria Robert e Libreria Martin .
  • Successivamente, andare alla sezione Sfumato Ricerca fare clic su Ricerca fuzzy nella barra degli strumenti di Excel.

  • Pertanto, si otterrà un Ricerca fuzzy creata nel pannello laterale della cartella di lavoro.

Nel Tavolo di sinistra e Tavolo destro scegliere i nomi delle due tabelle.

Per questo esempio, scegliere Robert e Martin .

Poi nel Colonne scegliere i nomi delle colonne di ciascuna tabella.

Nel Colonna di abbinamento selezionare il tipo di corrispondenza che si desidera tra le due colonne, ad esempio Abbinamento confuso, selezionare Predefinito .

  • Infine, fare clic su Vai Si otterrà il rapporto di corrispondenza delle tabelle in una nuova tabella.

Per saperne di più: VLOOKUP per confrontare due elenchi in Excel (2 o più modi)

Conclusione

Utilizzando questi metodi, è possibile utilizzare il metodo VLOOKUP funzione di Excel per cercare Abbinamento confuso. Anche se questi metodi non sono efficienti al 100%, sono comunque molto utili. Avete domande? Non esitate a porle nel box dei commenti. Non dimenticate di condividere se avete metodi migliori. Restate in contatto con ExcelWIKI .

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.