Excel-kaava: Hanki ensimmäinen ottelu -solu sisältää -

Sisällysluettelo

Yleinen kaava

(=INDEX(things,MATCH(TRUE,ISNUMBER(SEARCH(things,A1)),0)))

Yhteenveto

Voit tarkistaa solun jostakin useista asioista ja palauttaa luettelosta ensimmäisen löydetyn vastaavuuden käyttämällä INDEX / MATCH-kaavaa, joka etsii haun käyttämällä SEARCH- tai FIND-hakua. Esitetyssä esimerkissä kaava kohdassa C5 on:

(=INDEX(things,MATCH(TRUE,ISNUMBER(SEARCH(things,B5)),0)))

missä "asiat" on nimetty alue E5: E9.

Huomaa: tämä on matriisikaava ja se on syötettävä painamalla Control + Vaihto + Enter.

Selitys

Tässä esimerkissä meillä on luettelo väreistä nimellisellä alueella nimeltä "asiat" (E5: E9). Haluamme tarkistaa sarakkeen B tekstin, onko siinä mitään näistä väreistä. Jos näin on, haluamme palauttaa ensimmäisen löydetyn värin nimen.

Sisältäpäin toimien tämä kaava käyttää ISNUMBER-funktiota ja SEARCH-funktiota etsimään B5: n tekstistä kutakin väriä, joka on lueteltu seuraavissa asioissa:

ISNUMBER(SEARCH(things,B5)

Tämä lauseke perustuu kaavaan (selitetty yksityiskohtaisesti tässä), joka tarkistaa solun yksittäisen alimerkinnän suhteen. Jos solu sisältää alimerkkijonon, lauseke palauttaa TOSI. Jos ei, lauseke palauttaa FALSE.

Kun annamme tälle HAKUlle luettelon asioista (yhden asian sijaan) antaa meille takaisin joukon tuloksia. Jokainen löydetty väri luo numeerisen sijainnin, ja värit, joita ei löydy, aiheuttavat virheen:

(#VALUE!;#VALUE!;20;#VALUE!;#VALUE!)

ISNUMBER-funktio muuntaa tulokset sitten TOSI / EPÄTOSI-arvoiksi. Mistä tahansa numerosta tulee TOSI, ja virheestä (ei löydy) tulee EPÄTOSI. Tuloksena on tällainen taulukko:

(FALSE;FALSE;TRUE;FALSE;FALSE)

Tämä taulukko palautetaan MATCH-funktioon taulukon argumenttina. Hakuhinta on TOSI ja hakutyyppi asetetaan nollaksi tarkan haun pakottamiseksi. Kun vastaava väri on, MATCH palauttaa ensimmäisen löydetyn TOSI-sijainnin. Tämä arvo syötetään INDEX-funktioon rivinumerona, nimetty alue "asiat" annetaan matriisina. Kun on vähintään yksi osuma, INDEX palauttaa värin kyseiseen kohtaan. Kun vastaavuutta ei löydy, tämä kaava palauttaa # N / A -virheen.

Kovakoodatuilla arvoilla

Jos et halua määrittää ulkoista nimettyä aluetta, kuten "asiat", tässä esimerkissä, voit koodata arvot kaavaan kovasti "matriisivakioina" seuraavasti:

(=INDEX(("red","green","blue"),MATCH(TRUE,ISNUMBER(SEARCH(("red","green","blue"),B5)),0)))

Hanki ensimmäinen ottelu solussa

Kieli tässä on melko hämmentävää, mutta yllä oleva kaava palauttaa ensimmäisen haun, joka löytyy etsittävistä asioista. Jos haluat sen sijaan palauttaa testattavan solun ensimmäisen vastaavuuden, voit kokeilla seuraavaa kaavaa:

=INDEX(things,MATCH(AGGREGATE(15,6,SEARCH(things,A1),1),SEARCH(things,A1),0))

Tässä kaavan versiossa MATCH-toiminto on määritetty etsimään tämän koodinpätkän tulosta:

AGGREGATE(15,6,SEARCH(things,A1),1) // get min value

joka käyttää KOKOONPANO-funktiota saadakseen pienimmän arvon haun palauttamissa tuloksissa. Tarvitsemme AGGREGATE täällä, koska saapuva taulukko sisältää todennäköisesti virheitä (HAKU palauttaa, kun asioita ei löydy), ja tarvitsemme toiminnon, joka jättää nämä virheet huomiotta ja antaa meille kuitenkin pienimmän numeerisen arvon.

AGGREGATE: n tulos palautetaan suoraan MATCH: iin hakuarvona yhdessä SEARCHin palauttaman ryhmän kanssa. Lopputulos on solusta löytynyt ensimmäinen ottelu, ei ensimmäinen asialuettelosta löytynyt ottelu.

Mielenkiintoisia artikkeleita...