Excel: Caratteri jolly in VLOOKUP e SUMIFS
Ad un recente seminario Power Excel per una sezione IMA®, un partecipante ha chiesto se c’è un modo per usare VLOOKUP per abbinare un numero che è incorporato in una cella più lunga. Stava cercando di abbinare gli assegni di un registro di assegni con una lista di transazioni cancellate dalla sua banca. La difficoltà: Il numero dell’assegno era incorporato all’interno di un campo Transaction Code.
Il campo che aveva bisogno di cercare conteneva un numero variabile di caratteri come prefisso, seguito dal numero dell’assegno, poi finiva con ancora più caratteri. La maggior parte delle persone non si rende conto che VLOOKUP supporta i caratteri jolly. In effetti, il team di Excel alla Microsoft pensa che i caratteri jolly finiscano più frequentemente nei VLOOKUP per caso che non per le persone che li usano intenzionalmente. Poiché la maggior parte delle persone non sa che VLOOKUP supporterà i caratteri jolly, sembra più probabile che le persone eseguano un VLOOKUP in cui il loro valore di ricerca contenga un carattere che non era inteso a rappresentare un carattere jolly.
Utilizzare i caratteri jolly
I caratteri jolly standard sono un asterisco (*) per indicare qualsiasi numero di caratteri, e un punto interrogativo (?) per indicare qualsiasi carattere. E se dovessi effettivamente cercare un asterisco o un punto interrogativo? Usa ~* per cercare un asterisco o ~? per cercare un punto interrogativo. Usate ~~ per cercare una tilde.
L’uso di questi tre caratteri è particolarmente difficile se avete centinaia di VLOOKUP e i valori contengono già caratteri jolly. Cercare di convertire i valori al volo usando funzioni SUBSTITUTE annidate diventa complicato. Immaginate =VLOOKUP(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, “~”,”~~”), “*”,”~*”),”?”,”~?”). In realtà sarebbe meglio se Microsoft offrisse un’opzione che disattivasse il comportamento dei caratteri jolly per un particolare foglio di lavoro o cartella di lavoro.
Torniamo al problema originale. Dovreste cercare *apple* per trovare la parola “apple” all’interno di qualsiasi testo nella prima colonna della tabella di ricerca. Ma poiché la cella A2 della figura 1 contiene già “mela”, la formula inizia con =VLOOKUP(“*”&A2&”*”. In questo caso, state usando il carattere di concatenazione (&) per avvolgere il valore in A2 con un asterisco su ogni lato. In alternativa, potreste usare =VLOOKUP(CONCATENATE(“*”,A2, “*”) per avvolgere la parola “apple” in asterischi.
La formula =VLOOKUP(“*”&A2&”*”,$D$2:$E$6,2,FALSE) trova correttamente i $956 dalla cella E5.
Fate molta attenzione nel rivedere i risultati della ricerca del carattere jolly. E se cercaste sia “apple” che “crabapple”? La ricerca per crabapple sarebbe corretta, ma poiché VLOOKUP restituisce la prima corrispondenza nella tabella di ricerca, il VLOOKUP per *apple* restituirebbe il valore per crabapple se viene trovato prima di apple nella tabella di ricerca.
Trovare e sommare tutte le corrispondenze
Come ho lavorato attraverso l’esempio al seminario Excel, qualcun altro ha chiesto della situazione in cui ci potrebbero essere più corrispondenze e vorresti trovare e sommare tutti i risultati corrispondenti.
Siccome il carattere jolly *apple* ha funzionato così bene con VLOOKUP, ho creato una serie di dati dove potremmo provare a vedere se anche SUMIFS permetterebbe i caratteri jolly. Nella funzione SUMIFS mostrata sotto, la formula dice di sommare i valori nella colonna E se il valore corrispondente nella colonna D contiene *Apple*. Anche questa formula funziona.
IMPROVARE LA GESTIONE DI WILDCARD
Si è sorpresi di sapere che VLOOKUP può gestire i caratteri jolly? Avete mai fatto un VLOOKUP dove il valore di ricerca potrebbe contenere un asterisco o un punto interrogativo come parte del testo normale e non inteso per essere usato come carattere jolly?
Se la risposta a una di queste domande è sì, allora probabilmente avrebbe senso che Microsoft offrisse una nuova versione migliorata di VLOOKUP che ignori i caratteri jolly per default. Ci potrebbe essere un argomento opzionale extra alla fine di questa nuova funzione che vi permetterebbe di dire a Excel di usare i caratteri jolly. Se lasciate questo argomento spento, Excel non userà alcun carattere jolly. Potreste facilmente cercare “142*154” o “Perché?” o “e*Trade” senza dovervi preoccupare che un valore come “Electrical Trade” appaia come una falsa corrispondenza.
FASTER VLOOKUPS ARE COMING
Microsoft ha testato una nuova versione più veloce di VLOOKUP nel canale Insider Monthly delle build di Office 365 negli ultimi mesi. La funzione è spesso 10 volte più veloce del vecchio VLOOKUP, in particolare quando ci sono migliaia di lookup contro la stessa tabella.
La nuova logica dovrebbe essere distribuita a tutti gli abbonati di Office 365 entro la fine del 2019. Se i vostri VLOOKUP richiedono attualmente meno di un secondo, potreste non notare il cambiamento. Ma se avete un foglio di lavoro massiccio che richiede 40 secondi per il calcolo, aspettatevi di vedere quel tempo di ricalcolo scendere a circa quattro secondi o meno.
Se avete un foglio di lavoro massiccio che richiede 40 secondi per il calcolo, aspettatevi di vedere quel tempo di ricalcolo scendere a circa quattro secondi o meno.