Excel-formel: Tæl på hinanden følgende månedlige ordrer -

Indholdsfortegnelse

Generisk formel

(=MAX(FREQUENCY(IF(rng>0,COLUMN(rng)),IF(rng=0,COLUMN(rng)))))

Resumé

For at tælle på hinanden følgende månedlige ordrer kan du bruge en matrixformel baseret på FREKVENS-funktionen med hjælp fra COLUMN og MAX.

I det viste eksempel er formlen i I5:

(=MAX(FREQUENCY(IF(C5:H5>0,COLUMN(C5:H5)),IF(C5:H5=0,COLUMN(C5:H5)))))

Bemærk: dette er en matrixformel og skal indtastes med Control + Shift + Enter.

Forklaring

Dette er en vanskelig formel at forstå, så spænd op!

De er nøglen til formlen er at vide, at FREKVENS samler tal i "skraldespande" på en bestemt måde. Hver kasse repræsenterer en øvre grænse og genererer et antal af alle tal i datasættet, der er mindre end eller lig med den øvre grænse og større end det forrige kuffertnummer. Tricket er derefter at oprette data_array ved at bruge den betingelse, du vil teste for (ordretælling større end nul i dette tilfælde), og bins_array ved hjælp af den modsatte betingelse.

For at oprette data_array bin bruger vi følgende:

IF(C5:H5>0,COLUMN(C5:H5))

Vi tester ordretælling i hver måned og returnerer kolonnenummeret, hvor ordretællingen er 0, hvis den er positiv. Den resulterende matrix ser sådan ud:

(3, FALSE, FALSE, 6,7,8)

Bemærk, at kun kolonner, hvor rækkefølgen tæller> 0, gør det til dette array.

Bins-arrayet genereres med dette:

IF(C5:H5=0,COLUMN(C5:H5))

Dette placerer kolonnetal for ordretællinger = 0 i en matrix, der ender sådan:

(FALSK, 4,5, FALSK, FALSK, FALSK)

Kun kolonner, hvor rækkefølgen tæller = 0, gør det til denne matrix, hvor de pr. Standard FREKVENS opførsel bliver de funktionelle skraldespande, der stemmer overens med ikke-nul ordrer. Gevinster oversættes til FALSE og indsamler ikke nogen numre fra dataarrayet, da FALSE-værdier ignoreres.

Med data array og bin arrays ovenfor returnerer frekvens et array af tællinger pr. Bin i en array som denne:

(1; 0; 3)

Nu vikler vi blot MAX-funktionen rundt om det array, der returneres af FREQUENCY. MAX returnerer derefter det højeste tal i arrayet som det endelige resultat.

Andre på hinanden følgende værdier

For at tælle sammenhængende forekomster af andre værdier skal du bare justere logikken efter behov efter det samme mønster: den første betingelsestest for den ting, du vil tælle, den anden betingelse tester det modsatte.

Gode ​​links

Tæl på hinanden følgende celler med specifik tekst (MrExcel)

Interessante artikler...