Articles

Excel: Wildcards în VLOOKUP și SUMIFS

În cadrul unui seminar Power Excel recent pentru un capitol IMA®, un participant a întrebat dacă există o modalitate de a utiliza VLOOKUP pentru a potrivi un număr care este încorporat într-o celulă mai lungă. Ea încerca să potrivească cecurile dintr-un registru de cecuri cu o listă de tranzacții compensate de la banca sa. Dificultatea: Numărul cecului era încorporat în interiorul unui câmp de cod de tranzacție.

Câmpul pe care trebuia să-l caute conținea un număr variabil de caractere ca prefix, urmat de numărul cecului, apoi se termina cu și mai multe caractere. Majoritatea oamenilor nu-și dau seama că VLOOKUP va suporta wildcards. De fapt, echipa Excel de la Microsoft este de părere că wildcards ajung mai frecvent în VLOOKUP-uri din greșeală decât de către persoanele care le folosesc în mod intenționat. Din moment ce majoritatea oamenilor nu știu că VLOOKUP va suporta wildcards, se pare că este mai probabil ca oamenii să efectueze un VLOOKUP în care valoarea lor de căutare se întâmplă să conțină un caracter care nu era destinat să reprezinte un wildcard.

Utilizarea wildcard-urilor

Sunt wildcards standard un asterisc (*) pentru a însemna orice număr de caractere și un semn de întrebare (?) pentru a însemna un singur caracter. Ce se întâmplă dacă trebuie să căutați de fapt un asterisc sau un semn de întrebare? Folosiți ~* pentru a căuta un asterisc sau ~? pentru a căuta un semn de întrebare. Utilizați ~~ pentru a căuta un tilde.

Utilizarea acestor trei caractere este deosebit de dificilă dacă aveți sute de VLOOKUP-uri și valorile conțin deja caractere joker. Încercarea de a converti valorile din mers cu ajutorul funcțiilor SUBSTITUTE imbricate devine greoaie. Imaginați-vă =VLOOKUP(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, „~”,”~~”), „*”,”~*”),”?”,”~?”). Ar fi de fapt mai bine dacă Microsoft ar oferi o opțiune care să dezactiveze comportamentul wildcard pentru o anumită foaie de calcul sau registru de lucru.

Înapoi la problema inițială. Ar trebui să căutați *apple* pentru a găsi cuvântul „apple” în interiorul oricărui text din prima coloană a tabelului de căutare. Dar, deoarece celula A2 din figura 1 conține deja „măr”, formula începe cu =VLOOKUP(„*”&A2&”*”. În acest caz, utilizați caracterul de concatenare (&) pentru a înfășura valoarea din A2 cu un asterisc de fiecare parte. Alternativ, ați putea folosi =VLOOKUP(CONCATENATE(„*”,A2, „*”) pentru a îngloba cuvântul „măr” în asteriscuri.

Formula =VLOOKUP(„*”&A2&”*”,$D$2:$E$6,2,FALSE) găsește corect valoarea $956 din celula E5.

Să fiți foarte atenți atunci când analizați rezultatele căutării cu wildcard. Ce s-ar întâmpla dacă ați căuta atât „apple”, cât și „crabapple”? Căutarea pentru „crabapple” ar fi corectă, dar din moment ce VLOOKUP returnează prima potrivire din tabelul de căutări, VLOOKUP pentru *apple* ar returna valoarea pentru crabapple dacă este găsit înaintea lui apple în tabelul de căutări.

Căutarea și însumarea tuturor corespondențelor

În timp ce lucram la exemplul de la seminarul Excel, altcineva m-a întrebat despre situația în care ar putea exista mai multe corespondențe și ați dori să găsiți și să însumați toate rezultatele care se potrivesc.

Din moment ce wildcardul *apple* a funcționat atât de bine cu VLOOKUP, am creat un set de date în care am putea testa dacă SUMIFS ar permite și wildcardurile. În funcția SUMIFS prezentată mai jos, formula spune să se adune valorile din coloana E dacă valoarea corespunzătoare din coloana D conține *Măr*. Această formulă funcționează la fel de bine.

IMPROVING WILDCARD HANDLING

Sunteți surprins să aflați că VLOOKUP poate gestiona wildcards? Ați făcut vreodată un VLOOKUP în care valoarea de căutare ar putea conține un asterisc sau un semn de întrebare ca parte a textului normal și nu este destinat să fie utilizat ca wildcard?

Dacă răspunsul la oricare dintre aceste întrebări este da, atunci probabil că ar avea sens pentru dumneavoastră ca Microsoft să ofere o versiune nouă, îmbunătățită a VLOOKUP care să ignore wildcard-urile în mod implicit. Ar putea exista un argument opțional suplimentar la sfârșitul acestei noi funcții, care v-ar permite să îi spuneți lui Excel să folosească wildcards. Dacă ați omite acest argument, atunci Excel nu ar folosi niciun wildcard. Ați putea căuta cu ușurință „142*154” sau „De ce?” sau „e*Trade” fără să vă faceți griji că o valoare precum „Comerț electric” apare ca o potrivire falsă.

VLOOKUPS MAI RAPID SE AȘTEAPTĂ

Microsoft a testat o versiune nouă, mai rapidă a VLOOKUP în canalul Insider Monthly al versiunilor Office 365 în ultimele câteva luni. Funcția este adesea de 10 ori mai rapidă decât vechiul VLOOKUP, în special atunci când există mii de căutări față de același tabel.

Noua logică ar trebui să fie implementată pentru toți abonații Office 365 până la sfârșitul anului 2019. Dacă VLOOKUP-urile dvs. durează în prezent mai puțin de o secundă, este posibil să nu observați schimbarea. Dar dacă aveți o foaie de lucru masivă care durează 40 de secunde pentru a calcula, așteptați-vă să vedeți că timpul de recalculare scade la aproximativ patru secunde sau mai puțin.

.