Excel-formule: XLOOKUP met booleaanse OR-logica -

Generieke formule

=XLOOKUP(1,boolean_expression,data)

Samenvatting

Om XLOOKUP te configureren met booleaanse OR-logica, gebruikt u een opzoekwaarde van 1 met een logische uitdrukking op basis van optelling. In het getoonde voorbeeld is de formule in G5:

=XLOOKUP(1,(data(Color)="red")+(data(Color)="pink"),data)

waarbij "data" de naam is van de Excel-tabel aan de linkerkant.

Uitleg

De opzoekwaarde wordt opgegeven als 1, om redenen die hieronder duidelijk worden. Voor de lookup-array gebruiken we een uitdrukking op basis van booleaanse logica:

(data(Color)="red")+(data(Color)="pink")

In de wereld van de booleaanse algebra komt EN-logica overeen met vermenigvuldigen (*) en komt OR-logica overeen met optellen (+). Omdat we OR-logica willen, gebruiken we in dit geval optellen. Let op Excel is niet hoofdlettergevoelig, dus we hoeven de kleuren niet in hoofdletters te schrijven.

Nadat de uitdrukking is geëvalueerd, hebben we twee arrays van TRUE en FALSE waarden zoals deze:

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

Merk op dat in de eerste array TRUE waarden overeenkomen met "rood". In de tweede array komen TRUE-waarden overeen met "roze".

De wiskundige bewerking van het bij elkaar optellen van deze arrays converteert de TRUE en FALSE waarden naar 1s en 0s, en resulteert in een nieuwe array die alleen uit 1s en 0s bestaat:

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

Merk op dat de enen in deze array overeenkomen met rijen waarvan de kleur "rood" of "roze" is.

We kunnen de formule nu herschrijven als:

=XLOOKUP(1,(0;0;1;0;1;0;0;0;0;1),data)

De eerste 1 in de opzoekmatrix komt overeen met rij drie van de gegevens, waar de kleur "rood" is. Omdat XLOOKUP standaard de eerste overeenkomst retourneert, en aangezien de volledige tabel "gegevens" wordt geleverd als de retourmatrix, retourneert XLOOKUP de derde rij als een eindresultaat.

Interessante artikelen...