
Generieke formule
(=MAX(IF(range=criteria,values)))
Samenvatting
Om een maximale waarde te krijgen op basis van criteria, kunt u de MAX-functie samen met de ALS-functie in een matrixformule gebruiken. In het weergegeven voorbeeld is de formule in cel G6:
(=MAX(IF(names=F6,times)))
Waarbij namen het benoemde bereik B6: B17 is, en tijden het benoemde bereik D6: D17.
Opmerkingen: dit is een matrixformule en moet worden ingevoerd met Control + Shift + Enter. Latere versies van Excel hebben een MAXIFS-functie, zie onderstaande opmerking.
Uitleg
De ALS-functie wordt eerst geëvalueerd. De logische test is een uitdrukking die alle namen test:
IF(names=F6 // logical test
Het resultaat is een reeks TRUE / FALSE-waarden als volgt:
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE)
TRUE-waarden komen overeen met rijen waarvan de naam "Hannah" is. Voor alle andere namen is de waarde FALSE. De "waarde indien waar" voor IF is de genoemde reeks tijden , die de volledige set tijden bevat. Er wordt geen "waarde indien onwaar" opgegeven:
IF(names=F6,times)
Het uiteindelijke resultaat van IF is een array als deze:
(0.000868055555555556;FALSE;FALSE;0.000902777777777778;FALSE;FALSE;0.000914351851851852;FALSE;FALSE;0.000833333333333333;FALSE;FALSE)
Opmerking: Excel-tijden zijn fractionele waarden, wat de lange decimalen verklaart.
De ALS-functie werkt als een filter. Alleen tijdwaarden die aan TRUE zijn gekoppeld, komen door het filter, andere waarden worden vervangen door FALSE.
De IF-functie levert deze array rechtstreeks aan de MAX-functie, die automatisch FALSE-waarden negeert en de maximale tijd in de array retourneert.
Met MAXIFS
De MAXIFS-functie, beschikbaar in Excel O365 en Excel 2019, is ontworpen om een maximale waarde te retourneren op basis van een of meer criteria zonder dat een matrixformule nodig is. Met MAXIFS is de formule in G6:
=MAXIFS(times,names,F6)