Excel formula: Povprečje zadnjih 3 številskih vrednosti -

Splošna formula

(=AVERAGE(LOOKUP(LARGE(IF(ISNUMBER(data),ROW(data)),(1,2,3)),ROW(data), data)))

Povzetek

Če želite povprečiti zadnje 3 številske vrednosti v obsegu, lahko uporabite matrično formulo na podlagi kombinacije funkcij za podajanje zadnjih n številskih vrednosti v funkcijo AVERAGE. V prikazanem primeru je formula v D6:

(=AVERAGE(LOOKUP(LARGE(IF(ISNUMBER(data),ROW(data)),(1,2,3)), ROW(data), data)))

kjer je "podatki" imenovano območje B5: B13.

Opomba: to je matrična formula, ki jo je treba vnesti s tipko control + shift + enter.

Pojasnilo

Funkcija AVERAGE bo izračunala povprečje števil, predstavljenih v matriki, zato je skoraj vse delo v tej formuli ustvarjanje matrike zadnjih 3 številskih vrednosti v obsegu. Funkcija IF, ki deluje od znotraj navzven, se uporablja za "filtriranje" številskih vrednosti:

IF(ISNUMBER(data),ROW(data))

Funkcija ISNUMBER vrne TRUE za številske vrednosti in FALSE za druge vrednosti (vključno s praznimi mesti), funkcija ROW pa vrne številke vrstic, zato je rezultat te operacije številke vrstic polja, ki ustrezajo številskim vnosom:

(5;6;FALSE;8;9;10;FALSE;12;13)

Ta matrika gre v funkcijo LARGE s konstanto matrike (1,2,3) za k. LARGE samodejno prezre vrednosti FALSE in vrne matriko z največjimi 3 številkami, ki ustrezajo zadnjim 3 vrsticam s številskimi vrednostmi:

(13,12,10)

Ta matrika gre v funkcijo LOOKUP kot iskalna vrednost. Iskalno polje zagotavlja funkcija ROW, rezultatno polje pa je imenovani obseg "data":

LOOKUP((13,12,10), ROW(data), data))

LOOKUP nato vrne matriko, ki vsebuje ustrezne vrednosti v "podatkih", ki se podajo v AVERAGE:

=AVERAGE((100,92,90))

Obravnava manj vrednosti

Če število številskih vrednosti pade pod 3, bo ta formula vrnila napako #NUM, saj LARGE ne bo mogel vrniti 3 vrednosti, kot je zahtevano. Eden od načinov, kako to rešiti, je zamenjava trdo kodirane konstante matrike (1,2,3) z dinamično matriko, ustvarjeno z uporabo INDIRECT, kot je ta:

ROW(INDIRECT("1:"&MIN(3,COUNT(data))))

Tu se MIN uporablja za nastavitev zgornje meje polja na 3 ali dejanskega števila številskih vrednosti, kar koli je manjše.

Opomba: Ta pametni pristop sem naletel na chandoo.org v odgovoru Sajana na podobno vprašanje.

Zanimive Članki...