Excel vzorec: Definujte rozsah na základe hodnoty bunky -

Všeobecný vzorec

=SUM(firstcell:INDEX(data,rows,cols))

Zhrnutie

Ak chcete definovať rozsah na základe hodnoty v inej bunke, môžete použiť funkciu INDEX. V zobrazenom príklade je vzorec v J7:

=SUM(C5:INDEX(data,J5,J6))

kde „údaj“ je pomenovaný rozsah B5: G9.

Vysvetlenie

Tento vzorec sa spolieha na konkrétne správanie indexu INDEX - hoci sa zdá, že index INDEX vracia hodnotu na konkrétnom mieste, v skutočnosti vracia odkaz na dané miesto. Vo väčšine vzorcov by ste si rozdiel nevšimli - Excel jednoducho vyhodnotí referenciu a vráti hodnotu. Tento vzorec využíva túto funkciu na vytvorenie dynamického rozsahu na základe vstupu do hárka.

Vo funkcii súčtu je prvá referencia jednoducho prvou bunkou v rozsahu, ktorý pokrýva všetky možné bunky:

=SUM(C5:

Na získanie poslednej bunky používame INDEX. Tu dáme INDEXU pomenovaný rozsah „data“, čo je maximálny možný rozsah hodnôt, a tiež hodnoty z J5 (riadky) a J6 (stĺpce). INDEX nevráti rozsah, vráti iba jednu bunku na danom mieste, v príklade E9:

INDEX(data,J5,J6) // returns E9

Pôvodný vzorec sa redukuje na:

=SUM(C5:E9)

ktorý vráti 300, súčet všetkých hodnôt v C5: E9.

Vzorec v J8 je takmer rovnaký, ale na výpočet priemeru sa namiesto SUM používa PRIEMER. Keď používateľ zmení hodnoty v J5 alebo J6, rozsah sa aktualizuje a vrátia sa nové výsledky.

Alternatívne s offsetom

Podobné vzorce môžete vytvoriť pomocou funkcie OFFSET, ktorá je uvedená nižšie:

=SUM(OFFSET(C5,0,0,J5,J6)) // sum =AVERAGE(OFFSET(C5,0,0,J5,J6)) // average

Funkcia OFFSET je navrhnutá tak, aby vrátila rozsah, takže vzorcom je možno rozumieť jednoduchšie. OFFSET je však volatilná funkcia a pri použití vo väčších a zložitejších pracovných hárkoch môže spôsobiť problémy s výkonom.

Zaujímavé články...