Excel-formule: langste winning streak -

Inhoudsopgave

Generieke formule

(=MAX(FREQUENCY(IF(result="w",id),IF(result="w",0,id))))

Samenvatting

Om de langste winning streak te berekenen, kunt u een matrixformule gebruiken op basis van de frequentiefunctie.

Opmerking: FREQUENCY moet worden ingevoerd als een matrixformule met Control + Shift + Enter

Uitleg

Dit is een lastige formule om te begrijpen, en het vereist dat u een numerieke id heeft voor elke overeenkomst en dat alle overeenkomsten op id worden gesorteerd.

De sleutel is om te begrijpen hoe FREQUENCY getallen verzamelt in "bakken". Elke bak vertegenwoordigt een bovengrens en genereert een telling van alle getallen in de gegevensset die kleiner zijn dan of gelijk zijn aan de bovengrens en groter zijn dan het vorige baknummer.

De kern van deze formule is dat het een nieuwe bak creëert aan het einde van elke winning streak met behulp van de id van het daaropvolgende verlies. Alle andere bakken worden gemaakt als nul. Het praktische effect is een telling van opeenvolgende overwinningen in elke bak.

Binnen frequentie wordt de data-array hiermee gegenereerd:

IF(result="w",id)

Dat maakt een array als volgt:

(1; FALSE; 3; 4; 5; FALSE; 7; 8; 9; 10; 11; FALSE; FALSE; FALSE)

Merk op dat alleen overwinningen in deze array terechtkomen.

De bins-array wordt gegenereerd met:

IF(result="w",0,id)

Dat maakt een array als volgt:

(0; 2; 0; 0; 0; 6; 0; 0; 0; 0; 0; 12; 13; 14)

Alleen de verliezen komen in deze array als niet-nulwaarden terecht, en ze worden de functionele bakken die winnen. Winsten worden vertaald als nullen, en verzamelen eigenlijk geen getallen uit de gegevensmatrix, aangezien FALSE-waarden worden genegeerd.

Met bovenstaande gegevensarray en bin-arrays retourneert frequentie een reeks tellingen per bin. Door de MAX-functie rond dit array-resultaat te wikkelen, krijgen we de hoogste telling, wat de langste winning streak is.

De MAX-functie retourneert vervolgens het maximale aantal.

Met een hulpkolom

Als je niet van fancy broekformules houdt waarvoor een paginagrote uitleg nodig is om het te begrijpen, kun je altijd een hulpkolom met een eenvoudige formule gebruiken en MAX op de resultaten toepassen. In dit geval kunt u een doorlopend aantal overwinningen maken met deze formule in D4, gekopieerd in de kolom:

=IF(C4="w",D3+1,0)

Goede links

Wat is de lengte van de langste winning streak (Chandoo)

Interessante artikelen...