In questo articolo, cercheremo di ottenere la posizione della prima corrispondenza parziale in un intervallo.
Come sappiamo, la funzione CONFRONTA restituisce l'indice o la posizione della prima corrispondenza in un intervallo. Quindi, è ovvio usare questa funzione per ottenere la posizione della prima corrispondenza in un intervallo. Poiché supporta gli operatori con caratteri jolly, possiamo anche utilizzare MATCH per eseguire corrispondenze parziali.
Una volta che otteniamo la posizione della prima posizione della partita, possiamo fare varie cose. Come recuperare quel valore o un valore adiacente o non adiacente utilizzando la funzione INDICE, o creare una funzione dinamica. Dipende dalle tue necessità e creatività.
Formula generica per la prima corrispondenza parziale trovata
Per la stringa dell'hardcode:
=CONFRONTA("*str*",gamma,0)
Per riferimento di cella:
=CONFRONTA("*"&cella&"*",intervallo,0)
Str: è il testo o la stringa che si desidera far corrispondere parzialmente nell'intervallo. Può essere qualsiasi cosa, una cella o una stringa codificata.
Gamma: è la gamma in cui cercherai str.
0: È il parametro per la corrispondenza esatta. Puoi anche usare FALSO.
Nota che usavamo * (asterischi) davanti e alla fine della stringa str. Questo è l'operatore jolly per la corrispondenza di qualsiasi valore avente qualsiasi stringa prima e dopo di essa…
Vediamo un esempio.
Qui ho un record di vittorie, sconfitte e pareggi. Vogliamo ottenere la prima posizione di vittoria, sconfitta e pareggio.
Quindi, se eseguo un hard code, la formula per trovare la prima posizione della corrispondenza parziale in ogni cella sarà:
=MATCH("*vinto*",A2:A10,0)
=CONFRONTA("*perdita*",A2:A10,0)
=MATCH("*pareggio*",A2:A10,0)
=CONFRONTA("*"&C2&"*",$A$2:$A$10,0)
Come funziona
Utilizza semplicemente la funzionalità di Excel per eseguire corrispondenze parziali. CONFRONTA 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 di seguito 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:
=Corrispondenza prima parte(C2,$A$2:$A$10)
Otterrai la posizione della prima partita. Come questo.
Come funziona
Il primo argomento è la stringa che si desidera cercare per la corrispondenza parziale.
Il secondo argomento è l'intervallo in cui si desidera ottenere la posizione della stringa.
=PrimaPartematch(str,intervallo)
Per utilizzare questa formula per la corrispondenza parziale, copia sotto il codice nel modulo VBA.
Funzione FirstPartMatch(str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 Per ogni 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 faccia distinzione tra maiuscole e minuscole, rimuovi Funzione Lcase dalla riga 7.
Quindi il codice per la distinzione tra maiuscole e minuscole sarà:
Funzione FirstPartMatchCASE(str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 Per ogni cll In rng tmp = tmp + 1 If InStr(1, cll.Value2, str) > 0 Allora 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 c'è vittoria o pareggio 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, condividi con noi qui nella sezione commenti qui sotto.
Come utilizzare la funzione CONFRONTA in Excel
Come utilizzare la funzione INDICE in Excel
Vlookup Primi 5 valori con valori duplicati utilizzando INDEX-MATCH in Excel
Articoli popolari:
La funzione CERCA.VERT in Excel
CONTA.SE in Excel 2016
Come utilizzare la funzione SOMMA.SE in Excel