
Yleinen kaava
(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))
Yhteenveto
Jos haluat löytää alueen pisin merkkijono ehtojen avulla, voit käyttää taulukkoa, joka perustuu INDEX, MATCH, LEN ja MAX. Esitetyssä esimerkissä kaava kohdassa F6 on:
(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))
Missä "nimet" on nimetty alue C5: C14 ja "luokka" on nimetty alue B5: B14.
Huomaa: tämä on matriisikaava ja se on syötettävä näppäimillä + + shift + enter.
Selitys
Tämän kaavan ydin on MATCH-funktio, joka paikantaa pisimmän merkkijonon sijainnin toimitettujen kriteerien avulla:
MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)
Huomautus MATCH on määritetty suorittamaan tarkka haku toimittamalla nolla vastaavuustyypille. Haun arvo on:
LEN(names)*(class=F5)
LEN-funktio palauttaa joukon tuloksia (pituuksia), yhden kutakin luettelon nimeä varten, jossa class = "A" solusta F5:
(5;6;8;6;6;0;0;0;0;0)
Tämä suodattaa tehokkaasti kaiken luokan B, ja MAX-toiminto palauttaa sitten suurimman arvon 8.
Hakuryhmän muodostamiseksi käytämme samaa lähestymistapaa:
LEN(names)*(class=F5)
Ja saat saman tuloksen:
(5;6;8;6;6;0;0;0;0;0)
LEN- ja MAX-ajon jälkeen meillä on MATCH-kaava, jolla on nämä arvot:
MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))
Sitten MATCH palauttaa 8: n sijainnin luettelossa 3, joka syötetään INDEXiin seuraavasti:
=INDEX(names,3)
Lopuksi INDEX palauttaa velvollisuuden mukaisesti arvon nimien kolmannelle sijalle , joka on "Jonathan".