Excel-kaava: Luokittele teksti avainsanoilla -

Sisällysluettelo

Yleinen kaava

(=INDEX(categories,MATCH(TRUE,ISNUMBER(SEARCH(keywords,text)),0)))

Yhteenveto

Voit luokitella tekstiä avainsanoilla, joissa on "sisältää" -haku, käyttämällä HAKU-toimintoa INDEXin ja MATCHin avulla. Esitetyssä esimerkissä kaava kohdassa C5 on:

(=INDEX(categories,MATCH(TRUE,ISNUMBER(SEARCH(keywords,B5)),0)))

missä avainsanat on nimetty alue E5: E14 ja kategoriat on nimetty alue F5: F14.

Huomaa: tämä on matriisikaava ja se on syötettävä näppäimillä + + shift + enter.

Selitys

Ytimessä tämä on INDEX- ja MATCH-toiminto.

MATCH-toiminnon sisällä käytämme SEARCH-funktiota hakemaan sarakkeen B soluja jokaiselle luetellulle avainsanalle nimettyjen alueiden avainsanoissa (E5: E14):

SEARCH(keywords,B5)

Koska etsimme useita kohteita (nimettyjen avainsanojen avainsanoissa ), saamme takaisin useita tällaisia ​​tuloksia:

(#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;24;#VALUE!;#VALUE!;#VALUE!)

Arvo! virhe tapahtuu, kun HAKU ei löydä tekstiä. Kun HAKU löytää vastaavuuden, se palauttaa luvun, joka vastaa tekstin sijaintia solun sisällä.

Jos haluat muuttaa nämä tulokset käyttökelpoisempaan muotoon, käytämme ISNUMBER-funktiota, joka muuntaa kaikki arvot TOSI / EPÄTOSI:

(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE)

Tämä matriisi menee MATCH-funktioon hakukerrana, kun hakuarvo on TOSI. MATCH palauttaa ensimmäisen TOSI-paikan, jonka se löytää matriisista (tässä tapauksessa 7), joka toimitetaan INDEX-funktiolle rivinumerona:

=INDEX(categories,7)

INDEX palauttaa luokkien seitsemännen kohteen "Auto" lopputuloksena.

XLOOKUP: n kanssa

XLOOKUP-toiminnolla tätä kaavaa voidaan yksinkertaistaa jonkin verran. XLOOKUP voi käyttää samaa logiikkaa, jota käytetään yllä olevan MATCH-toiminnon sisällä, joten vastaava kaava on:

=XLOOKUP(TRUE,ISNUMBER(SEARCH(keywords,B5)),categories)

XLOOKUP etsii taulukon ensimmäisen TOSIN ja palauttaa vastaavan arvon luokista .

Väärien osumien estäminen

Yksi ongelma tässä lähestymistavassa on, että saatat saada vääriä vastaavuuksia alaosista, jotka näkyvät pidempien sanojen sisällä. Esimerkiksi, jos yrität sovittaa sanan "dr", saatat löytää myös "Andrea", "drink", "dry" jne., Koska sanojen sisällä on "dr". Tämä tapahtuu, koska SEARCH tekee automaattisesti "sisältää" -vasteen.

Nopeasta hakkeroinnista voit lisätä tilaa hakusanojen (esim. "Dr" tai "dr") ympärille välttääksesi "dr": n tarttumisen toiseen sanaan. Mutta tämä epäonnistuu, jos "dr" ilmestyy ensimmäiseksi tai viimeiseksi soluun tai ilmestyy välimerkeillä jne.

Jos tarvitset tarkemman ratkaisun, yksi vaihtoehto on normalisoida ensin teksti auttaja-sarakkeessa ja lisätä myös etu- ja lopputila. Sitten voit etsiä kokonaisia ​​sanoja välilyönneillä.

Mielenkiintoisia artikkeleita...