Come ottenere la posizione di primo corrispondenza parziale
In questo articolo, proveremo a ottenere la posizione della prima corrispondenza parziale in un intervallo.
Come sappiamo che link: / lookup-formas-excel-match-function [MATCH function]
restituisce l’indice o la posizione della prima corrispondenza in un intervallo.
Quindi, è ovvio utilizzare questa funzione per ottenere la posizione della prima corrispondenza in un intervallo. Dato che supporta link: / tips-excel-wildcards [operatori jolly]
, possiamo anche usare MATCH per eseguire corrispondenze parziali.
Una volta ottenuta la posizione di prima posizione, possiamo fare varie cose. Come recuperare quel valore o un valore adiacente o non adiacente usando link: / lookup-formas-excel-index-function [INDEX function]
, o creare una funzione dinamica. Dipende dalle tue necessità e dalla tua creatività.
Formula generica per la prima partita parziale trovata
Per la stringa hardcode:
=MATCH("str",range,0)
Per riferimento cellulare:
=MATCH(""&cell&"",range,0)
Str: è il testo o la stringa che vuoi far corrispondere parzialmente nell’intervallo. Può essere qualsiasi cosa, una cella o una stringa codificata.
Range: è l’intervallo in cui cercherai str.
0: è il parametro per la corrispondenza esatta. Puoi anche usare FALSE.
Nota che eravamo soliti (astrisks) all’inizio e alla fine della stringa str. Questo è l’operatore jolly per la corrispondenza di qualsiasi valore con una stringa prima e dopo di esso .. *
Vediamo un esempio.
Qui ho un record di vittoria, sconfitta e pareggio. Vogliamo ottenere la prima posizione di vittoria, sconfitta e pareggio.
Quindi, se codifico in modo rigido, la formula per trovare la prima posizione di corrispondenza parziale in ogni cella sarà:
=MATCH("won",A2:A10,0) =MATCH("loss",A2:A10,0) =MATCH("tie",A2:A10,0)
=MATCH(""&C2&"",$A$2:$A$10,0)
Come funziona
Utilizza semplicemente la funzionalità di Excel per eseguire corrispondenze parziali. MATCH cerca qualsiasi stringa che contenga la stringa fornita tra * (asterischi) e restituisce la prima posizione trovata.
Trova la posizione della prima corrispondenza parziale nell’intervallo utilizzando la funzione VBA FirstPartMatch Se copi sotto il codice vba nel modulo vba in Excel, puoi utilizzare questa funzione per ottenere la prima posizione della corrispondenza parziale. Per l’esempio sopra, scrivi semplicemente questa formula:
=FirstPartMatch(C2,$A$2:$A$10)
Otterrai la posizione della prima partita. Come questo.
Come funziona
Il primo argomento è la stringa che vuoi cercare per una corrispondenza parziale.
Il secondo argomento è l’intervallo in cui vuoi ottenere la posizione della tua stringa.
=FirstPartMatch(str,range)
Per utilizzare questa formula per la corrispondenza parziale, copia il codice sottostante nel modulo VBA.
Function FirstPartMatch(str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 For Each cll In rng tmp = tmp + 1 If InStr(1, LCase(cll.Value2), LCase(str)) > 0 Then position = tmp Exit For End If Next cll If position Then FirstPartMatch = position Else FirstPartMatch = "#NA" End If End Function
Corrispondenza parziale con distinzione tra maiuscole e minuscole per la posizione
La funzione sopra definita dall’utente per trovare la prima corrispondenza parziale non farà distinzione tra maiuscole e minuscole. Se vuoi che sia sensibile al maiuscolo / minuscolo, rimuovi la funzione Lcase dalla riga 7.
Quindi il codice per la distinzione tra maiuscole e minuscole sarà:
Function FirstPartMatchCASE(str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 For Each cll In rng tmp = tmp + 1 If InStr(1, cll.Value2, str) > 0 Then position = tmp Exit For End If Next cll If position Then FirstPartMatchCASE = position Else FirstPartMatchCASE = "#NA" End If End Function
Puoi vedere che “vinto” e “pareggio” in questo caso non vengono trovati. Dal momento che non ci sono vinte o pareggi in minuscolo.
Quindi sì ragazzi, questi sono i modi per trovare la posizione della prima partita parziale in Excel. Ti ho detto che puoi trovare la prima posizione di corrispondenza parziale utilizzando la funzione MATCH predefinita e utilizzando la funzione di corrispondenza definita dall’utente.
Se hai altre idee o domande, condividile con noi qui nella sezione commenti qui sotto.
Articoli correlati:
link: / lookup-formas-excel-match-function [Come usare la funzione MATCH in Excel]
link: / lookup-formas-excel-index-function [Come usare la funzione INDICE in Excel]
link: / lookup-formas-vlookup-top-5-values-with-duplicate-values-using-index-match-in-excel [Vlookup Top 5 Values with Duplicate Values Using INDEX-MATCH in Excel]
Articoli popolari:
link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel]
link: / tips-countif-in-microsoft-excel [CONTA.SE in Excel 2016]
link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel]