
Generieke formule
=AND(A1=criteria,B1<=SMALL(IF(criteria,values),3))
Samenvatting
Om de 3 kleinste waarden te markeren die aan specifieke criteria voldoen, kunt u een matrixformule gebruiken die is gebaseerd op de functies EN en KLEIN. In het getoonde voorbeeld is de formule die wordt gebruikt voor voorwaardelijke opmaak:
=AND($B5=$E$5,$C5<=SMALL(IF(color=$E$5,amount),3))
Waarbij "kleur" het benoemde bereik is B5: B12 en "hoeveelheid" het benoemde bereik C5: C12 is.
Uitleg
Binnen de AND-functie zijn er twee logische criteria. De eerste is eenvoudig en zorgt ervoor dat alleen cellen die overeenkomen met de kleur in E5 worden gemarkeerd:
$B3=$E$5
De tweede test is complexer:
$C3<=SMALL(IF(color=$E$5,amount),3)
Hier filteren we hoeveelheden om ervoor te zorgen dat alleen waarden die zijn gekoppeld aan de kleur in E5 (blauw) behouden blijven. Het filteren gebeurt als volgt met de IF-functie:
IF(color=$E$5,amount)
De resulterende array ziet er als volgt uit:
(FALSE;100;FALSE;200;FALSE;300;FALSE;400;FALSE;500)
Merk op dat de waarde uit de bedragkolom alleen overleeft als de kleur "blauw" is. Andere bedragen zijn nu FALSE.
Vervolgens gaat deze array naar de SMALL-functie met ak-waarde van 3, en SMALL retourneert de "3e kleinste" waarde, 300. De logica voor de tweede logische test wordt gereduceerd tot:
$C3<=300
Wanneer beide logische voorwaarden WAAR worden geretourneerd, wordt de voorwaardelijke opmaak geactiveerd en worden cellen gemarkeerd.
Opmerking: dit is een matrixformule, maar vereist geen control + shift + enter.