Odwołać się do komórki poprzedniego wiersza w tej samej tabeli w programie Excel?

14

Jak mogę odwołać się do komórki

  • Colorkolumnie
  • w poprzednim rzędzie
  • tego samego stołu,

z komórki tego samego stołu? Bez polegania na bezwzględnych numerach wierszy / kolumn w arkuszu, jeśli to możliwe.

Jak [[Color],-1]coś ...

SuperDuck
źródło

Odpowiedzi:

25

Jeśli chcesz użyć strukturalnego formatu odniesienia, spróbuj

=OFFSET([@Colour],-1,0)

Możesz to również zrobić bez użycia referencji strukturalnych. Na przykład w wierszu 2 tabeli (pierwszy wiersz danych) wpisz

=D1

... jeśli „Kolor” znajduje się w kolumnie D. (Dostosuj do swojej sytuacji). To ostatnie będzie znacznie szybsze w dużych zestawach danych, ponieważ Offset () jest niestabilny i będzie przeliczany za każdym razem, gdy zmieni się DOWOLNA komórka w skoroszycie. Może to znacznie wpłynąć na wydajność.

teylyn
źródło
2

Prawie zawsze tworzę osobną kolumnę w tabeli o nazwie „I” dla indeksu, który jest numerowany 1,2,3,4 ... Następnie, aby uzyskać poprzednią wartość, użyj INDEX([Colour],[@I]-1).

Możesz także numerować kolumnę zaczynając od 0 i odpowiednio dopasować formułę, ponieważ prawie zawsze masz dostęp do wiersza wcześniej.

Funkcja niestabilności OFFSETpowoduje awarię moich dużych skoroszytów, dlatego zalecam unikać za wszelką cenę.

użytkownik3575270
źródło
Jak budujesz indeks w tabeli, która cały czas otrzymuje nowe dane? Ręcznie? A może z formułą? Ten ostatni miałby złapać 22, prawda?
teylyn
@teylyn Zwykle robię to ręcznie. Jest to dla mnie zalecane, ponieważ podczas sortowania indeksy danych nie zmieniają się. Jestem pewien, że możesz być kreatywny, używając formuł w zależności od aplikacji, np. Użyj czegoś takiego=ROW()-2
user3575270,
1
Jeśli używasz formuły do ​​utworzenia indeksu, a następnie odwołaj się do tego indeksu w innej formule, możesz również zagnieździć formułę indeksu w drugiej formule.
teylyn
Możesz użyć ROW() - ROW([#Headers]) - 1.
Solomon Ucko
2

Wiem, że to stary post, ale tak jak teraz potrzebowałem czegoś podobnego, jestem pewien, że może to komuś pomóc później. Jeśli potrzebujesz zrobić sumę bieżącą na kolumnie tabeli, na przykład:

  • Kolumna 1 zawiera dane „dochodu” (wartości dodatnie i ujemne)
  • Kolumna 2 to „saldo” konta

Do każdego wiersza należy dodać poprzednie saldo (kolumna 2, poprzedni wiersz) i dochód (kolumna 1, bieżący wiersz), aby obliczyć bieżące saldo.

Jednym ze sposobów na to jest użycie tej formuły w kolumnie 2, opartej na odpowiedzi Teylyna:

=SUM([@Column1];OFFSET([@[Column2]];-1;0))

To obsłuży niektóre błędy występujące w pierwszym rzędzie

PUAR
źródło