
Generieke formule
=INDEX(rng1,MODE(IF(rng2=criteria,MATCH(rng1,rng1,0))))
Samenvatting
Om de meest voorkomende tekst in een bereik te vinden op basis van door u opgegeven criteria, kunt u een matrixformule gebruiken op basis van verschillende Excel-functies INDEX, MATCH, MODE en IF. In het getoonde voorbeeld is de formule in G5:
=INDEX(supplier,MODE(IF(client=F5,MATCH(supplier,supplier,0))))
waarbij "leverancier" het benoemde bereik C5: C15 is en "klant" het benoemde bereik B5: B15 is.
Opmerking: dit is een matrixformule en moet worden ingevoerd met control + shift + enter.
Uitleg
We werken van binnen naar buiten en gebruiken de MATCH-functie om het tekstbereik tegen zichzelf te vergelijken, door MATCH hetzelfde bereik te geven voor opzoekwaarde en opzoekmatrix, met nul voor het zoektype:
MATCH(supplier,supplier,0)
Omdat de opzoekwaarde een array met 10 waarden is, retourneert MATCH een array van 10 resultaten:
(1;1;3;3;5;1;7;3;1;5;5)
Elk item in deze array vertegenwoordigt de eerste positie waarop een leveranciersnaam in de gegevens voorkomt. Deze array wordt ingevoerd in de IF-functie, die wordt gebruikt om alleen resultaten voor Client A te filteren:
IF(client=F5,(1;1;3;3;5;1;7;3;1;5;5))
IF retourneert de gefilterde array naar de functie MODE:
(1;FALSE;3;FALSE;5;1;FALSE;FALSE;1;5;FALSE)
Merk op dat alleen posities die zijn gekoppeld aan Client A in de array blijven. MODUS negeert FALSE-waarden en retourneert het meest voorkomende getal naar de functie INDEX als het rijnummer:
=INDEX(supplier,1)
Ten slotte geeft INDEX, met het benoemde bereik "leverancier" als array, "Brown" terug, de meest voorkomende leverancier voor Client A.