Formuła programu Excel: Zdefiniuj zakres na podstawie wartości komórki -

Formuła ogólna

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

Podsumowanie

Aby zdefiniować zakres na podstawie wartości w innej komórce, możesz użyć funkcji INDEKS. W pokazanym przykładzie formuła w J7 to:

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

gdzie „dane” to nazwany zakres B5: G9.

Wyjaśnienie

Ta formuła opiera się na określonym zachowaniu INDEKSU - chociaż wydaje się, że INDEKS zwraca wartość w określonej lokalizacji, to w rzeczywistości zwraca odwołanie do tej lokalizacji. W większości formuł nie zauważysz różnicy - program Excel po prostu ocenia odwołanie i zwraca wartość. Ta formuła wykorzystuje tę funkcję do tworzenia zakresu dynamicznego na podstawie danych wejściowych z arkusza.

Wewnątrz funkcji sumy pierwsze odwołanie to po prostu pierwsza komórka w zakresie obejmującym wszystkie możliwe komórki:

=SUM(C5:

Aby uzyskać ostatnią komórkę, używamy INDEKSU. Tutaj dajemy INDEKSOWI nazwany zakres „dane”, czyli maksymalny możliwy zakres wartości, a także wartości z J5 (wiersze) i J6 (kolumny). INDEKS nie zwraca zakresu, zwraca tylko jedną komórkę w tej lokalizacji, E9 w przykładzie:

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

Oryginalna formuła została zredukowana do:

=SUM(C5:E9)

co zwraca 300, czyli sumę wszystkich wartości w C5: E9.

Formuła w J8 jest prawie taka sama, ale używa ŚREDNIA zamiast SUMY do obliczenia średniej. Gdy użytkownik zmieni wartości w J5 lub J6, zakres jest aktualizowany i zwracane są nowe wyniki.

Alternatywa z OFFSETEM

Możesz zbudować podobne formuły za pomocą funkcji OFFSET, pokazanej poniżej:

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

Funkcja OFFSET zwraca zakres, więc formuły mogą być łatwiejsze do zrozumienia. Jednak OFFSET jest funkcją ulotną i może powodować problemy z wydajnością, gdy jest używany w większych, bardziej złożonych arkuszach.

Interesujące artykuły...