Excel-kaava: XLOOKUP monimutkaisilla useilla ehdoilla -

Sisällysluettelo

Yhteenveto

Voit hakea tietoja useista monimutkaisista ehdoista käyttämällä XLOOKUP-funktiota useilla lausekkeilla, jotka perustuvat loogiseen logiikkaan. Esitetyssä esimerkissä kaava G5: ssä on:

=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16)

XLOOKUPin oletusasetuksilla vastaavuustilalle (tarkka) ja hakutilalle (ensimmäisestä viimeiseen) kaava vastaa ensimmäistä tietuetta, jossa:

tili alkaa "x": llä JA alue on "itä", ja kuukausi EI OLE huhtikuu.

mikä on näytetyn esimerkin neljäs tietue (rivi 8).

Selitys

Normaalisti XLOOKUP-toiminto on määritetty etsimään arvoa laskentataulukossa olevasta hakutaulukosta. Kuitenkin, kun arvon vastaavuuden kriteerit muuttuvat monimutkaisemmiksi, voit loogisen logiikan avulla luoda etsintäryhmän lennossa, joka koostuu vain 1: stä ja 0: sta, ja etsi sitten arvo 1. Tätä lähestymistapaa käytetään tässä esimerkissä:

=XLOOKUP(1,boolean_array,result_array)

Tässä esimerkissä vaaditut kriteerit ovat:

tili alkaa "x": llä JA alue on "itä", ja kuukausi EI OLE huhtikuu.

Kullekin edellä olevalle kolmelle erilliselle kriteerille käytämme erillistä loogista lauseketta. Ensimmäinen lauseke käyttää VASEN-funktiota testatakseen, aloitetaanko tilin tunnuksella "x":

LEFT(B5:B16)="x" // account begins with "x"

Koska tarkistamme kaksitoista arvoa, tuloksena on taulukko, jossa on kaksitoista arvoa:

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

Toinen lauseke testaa, onko alue "itä", käyttämällä operaattoria, joka on sama kuin (=)

C5:C16="east" // region is east

Kuten aiemmin, saamme toisen taulukon, jolla on kaksitoista TOSI EPÄTOSI-arvoa:

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

Kolmas lauseke on suljettava pois huhtikuusta. Helpoin tapa tehdä tämä on testata huhtikuu suoraan MONTH-toiminnolla:

MONTH(D5:D16)=4 // month is April

Käytä sitten EI-toimintoa kääntääksesi tuloksen:

NOT(MONTH(D5:D16)=4) // month is not April

joka luo taulukon, joka kuvaa oikein "ei huhtikuu":

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

Seuraavaksi kaikki kolme taulukkoa kerrotaan yhdessä, ja matemaattinen operaatio pakottaa TOSI- ja EPÄTOSI-arvot arvoksi 1 ja 0:

(1;0;1;1;1;0;0;0;1;1;0;1)* (0;0;1;1;1;0;1;0;0;1;0;1)* (0;0;0;1;1;1;1;1;1;1;1;1)

Boolen aritmeikassa kertolasku toimii kuten looginen funktio AND, joten lopputulos on yksi tällainen taulukko:

(0;0;0;1;1;0;0;0;0;1;0;1)

Kaava voidaan nyt kirjoittaa uudestaan ​​seuraavasti:

=XLOOKUP(1,(0;0;0;1;1;0;0;0;0;1;0;1),B5:E16)

Kun hakuarvo on 1 ja vastaavuustilan (tarkka) ja hakutilan (ensimmäisestä viimeiseen) oletusasetukset, XLOOKUP vastaa ensimmäistä 1 (neljäs sijainti) ja palauttaa vastaavan rivin tulosryhmässä, joka on B8: E8.

Viimeinen ottelu

Asettamalla valinnaisen hakutilan argumentiksi -1 voit etsiä "viimeisen vastaavuuden" samoilla ehdoilla kuin tämä:

=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16,,,-1)

Mielenkiintoisia artikkeleita...