Menu

Odwołanie cykliczne w Excelu: jak je znaleźć i naprawić

Odwołanie cykliczne to formuła, która odwołuje się do własnej komórki, bezpośrednio albo przez inne formuły, jak =SUMA(B2:B7) wpisane w B7. Excel ostrzega, pokazuje 0 i wymienia komórkę w Formuły > Sprawdzanie błędów > Odwołania cykliczne.

Każdy arkusz na tej stronie działa na żywo: zmień liczbę albo formułę, a się przeliczy.

Odwołanie cykliczne to formuła, która odwołuje się do własnej komórki, bezpośrednio albo przez inne formuły. Wpisanie =SUMA(B2:B7) (po angielsku SUM) w B7 tworzy takie odwołanie: suma obejmuje samą siebie. Excel pokazuje ostrzeżenie, wstawia w komórkę 0 i wymienia ją w Formuły > Sprawdzanie błędów > Odwołania cykliczne. Naprawa polega na zmianie zakresu tak, żeby kończył się przed komórką formuły, tutaj =SUMA(B2:B6).

B7:  =SUM(B2:B7)    circular: B7 is inside its own range, Excel shows 0
B7:  =SUM(B2:B6)    fixed: the range stops above the total

Tabela pokazuje formuły po angielsku, ale możesz w niej wpisywać formuły także po polsku, ze średnikami.

Suma, która kończy się nad sobą
B7
AB
1MonthSales
2Jan120
3Feb95
4Mar140
5Apr110
6May130
7Total595
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =SUMA(B2:B6)

Kliknij B7: kolorowa ramka obejmuje B2:B6 i kończy się nad sumą. To najczęstsze ze wszystkich odwołań cyklicznych. Zwykle pojawia się, gdy tuż nad sumą wstawiono wiersz, a zakres SUMA rozszerzono ręcznie o jeden wiersz za daleko, albo gdy zakres przeciągnięto myszą na komórkę sumy.

Co Excel robi z odwołaniem cyklicznym

Gdy wpiszesz formułę, Excel pokaże komunikat, że co najmniej jedna formuła odwołuje się do własnej komórki bezpośrednio albo pośrednio i może być obliczana nieprawidłowo (w angielskim Excelu zaczyna się od "There are one or more circular references"). Kliknij OK, a formuła zostanie i pokaże 0 (albo ostatnią wartość, jaką miała). Potem:

  • Pasek stanu na dole okna pokazuje Odwołania cykliczne: B7 (adres jednej komórki z pętli), dopóki ten arkusz jest aktywny.
  • Excel nie powtarza komunikatu podczas dalszej pracy, więc odwołanie cykliczne może tkwić w skoroszycie niezauważone, a jedynym przypomnieniem jest pasek stanu.
  • Inne formuły zależne od tej komórki używają tego 0, więc dalsze sumy są złe bez żadnego błędu.

Ten sam skoroszyt w Arkuszach Google pokazuje #REF! z notatką "Circular dependency detected" (wykryto zależność cykliczną).

Jak znaleźć odwołania cykliczne w Excelu

  1. Przeczytaj pasek stanu. Podaje komórkę na aktywnym arkuszu. Jeśli widnieje tam tylko Odwołania cykliczne bez adresu, pętla jest na innym arkuszu.
  2. Przejdź do Formuły > Sprawdzanie błędów, kliknij małą strzałkę obok i wskaż Odwołania cykliczne. Podmenu wymienia komórki w pętlach. Kliknij jedną, żeby ją zaznaczyć.
  3. Przy zaznaczonej komórce użyj Formuły > Śledź poprzedniki, żeby narysować strzałki od komórek, które czyta. Idź za nimi, aż któraś wróci do początku. Usuń strzałki je czyści.
  4. Na Macu polecenia są w tym samym miejscu: karta Formuły, Sprawdzanie błędów, potem Odwołania cykliczne.

Napraw komórkę wskazaną na liście, a potem sprawdź listę ponownie: skoroszyt może mieć kilka pętli, a Excel wymienia następną, gdy pierwsza zniknie.

Pośrednie odwołania cykliczne

Pętlę przez dwie albo więcej komórek trudniej zauważyć, bo żadna formuła nie wspomina własnej komórki.

C2:  =B2*10%      tax on the net price in B2
B2:  =D2-C2       net price = total minus tax
D2:  =B2+C2       total = net plus tax

Każda formuła wygląda rozsądnie, ale B2 potrzebuje C2, C2 potrzebuje B2, a D2 obu. Jedna z trzech wartości musi być daną wejściową. Zdecyduj, którą liczbę naprawdę znasz, wpisz ją i oblicz z niej pozostałe:

Netto, podatek i suma bez pętli
C2
ABCD
1ItemNet priceTax (10%)Total
2Desk$240.00$24.00$264.00
3Chair$85.00$8.50$93.50
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =B2*10%

Ceny netto są wpisane, a podatek i suma wynikają z nich: biurko kosztuje 264.00,wtym264.00, w tym 24.00 podatku. Jeśli zamiast tego znasz sumę, cena netto to =D2/(1+10%): formuła jest rozwiązana względem niewiadomej, więc nic nie odwołuje się do siebie.

Procent sumy, która obejmuje samą siebie

Kolumna udziałów w sumie staje się cykliczna, gdy suma dodaje także kolumnę udziałów albo gdy wiersz sumy leży w zakresie, przez który dzielą udziały.

Udział w sumie
C2
ABC
1RegionSalesShare
2North42042%
3South31031%
4East18018%
5West909%
6Online00%
7Total1000100%
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =B2/$B$7

Każdy udział dzieli przez B7, a B7 dodaje tylko B2:B6. Online nic nie sprzedał, więc jego udział to 0%, a C7 sumuje udziały do 100%. Gdyby B7 była =SUMA(B2:B7) albo =SUMA(B2:C6), każdy udział zależałby od siebie. $ w $B$7 utrzymuje sumę na miejscu, gdy formuła jest kopiowana w dół; zobacz stronę o procentach.

Saldo narastające, które wskazuje własny wiersz

Suma narastająca dodaje każdą nową kwotę do salda z wiersza powyżej. Wskazanie salda z tego samego wiersza to pętla.

C3:  =C3+B3    circular
C3:  =C2+B3    previous balance plus this row's amount
Saldo narastające
C3
ABC
1DateAmountBalance
22026-03-01500500
32026-03-04-120380
42026-03-09-80300
52026-03-15250550
62026-03-22-60490
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =C2+B3

Pierwsze saldo to po prostu pierwsza kwota; każdy następny wiersz dodaje swoją kwotę do wiersza powyżej. Saldo kończy się na 490. Kliknij C4, a kolorowe ramki pokażą C3 i B4, nigdy samą C4.

Prowizja od zysku po prowizji

Niektóre odwołania cykliczne to nie literówki, tylko obliczenie, które naprawdę zależy od własnego wyniku: prowizja w wysokości 10% zysku, gdzie zysk to to, co zostaje po wypłacie prowizji.

B5 (commission):  =B6*B4         10% of profit
B6 (profit):      =B2-B3-B5      revenue minus cost minus commission

Włączenie obliczeń iteracyjnych (Plik > Opcje > Formuły > Włącz obliczenia iteracyjne, a na Macu Excel > Preferencje > Obliczanie) pozwala Excelowi powtarzać pętlę, aż liczby się ustabilizują. Tutaj to działa, ale ukrywa też każdą przypadkową pętlę w skoroszycie, a niektóre pętle nigdy się nie stabilizują. Lepiej rozwiązać równanie. Jeśli prowizja to stawka razy (przychód minus koszt minus prowizja), to prowizja równa się (przychód minus koszt) razy stawka, podzielone przez (1 + stawka).

Prowizja bez pętli
B5
AB
1ItemValue
2Revenue$50,000.00
3Cost$30,000.00
4Rate10%
5Commission
6Profit$20,000.00
7Rate of profit$2,000.00
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: Zapisz prowizję w B5 bez odwoływania się do B5 ani B6: to 10% zysku po prowizji, co daje (przychód minus koszt) razy stawka, podzielone przez 1 plus stawka.

Gdy B5 jest poprawna, B7 (10% zysku) równa się prowizji z B5: obie pokazują $1,818.18. Ta równość to warunek, do którego próbowała dojść wersja cykliczna.

Najczęściej zadawane pytania

Co to jest odwołanie cykliczne w Excelu?

Formuła, która do obliczenia potrzebuje własnego wyniku. Może odwoływać się do własnej komórki, jak =SUMA(B2:B7) w B7, albo dochodzić do niej przez inne komórki, jak A1 =B1+1 przy B1 =A1*2. Excel nie może dokończyć obliczenia, więc ostrzega i pokazuje 0 albo ostatnią wartość.

Jak znaleźć odwołanie cykliczne w Excelu?

Spójrz na pasek stanu na dole okna: widnieje tam Odwołania cykliczne i adres komórki. Albo przejdź do Formuły > Sprawdzanie błędów (strzałka obok) > Odwołania cykliczne, gdzie są wymienione komórki; kliknij jedną, żeby do niej przejść.

Dlaczego Excel mówi, że jest odwołanie cykliczne, a nie mogę go znaleźć?

Pasek stanu pokazuje odwołanie cykliczne tylko na aktywnym arkuszu, więc przełączaj arkusze i sprawdzaj na każdym Formuły > Sprawdzanie błędów > Odwołania cykliczne. Pętla może też biec przez zdefiniowaną nazwę albo komórkę na innym arkuszu, więc z wymienionej komórki użyj Śledź poprzedniki, żeby za nią pójść.

Czy włączyć obliczenia iteracyjne, żeby naprawić odwołanie cykliczne?

Tylko wtedy, gdy pętla jest zamierzona, na przykład w modelu, który zbiega do wartości. Plik > Opcje > Formuły > Włącz obliczenia iteracyjne sprawia, że Excel powtarza obliczenie do 100 razy zamiast ostrzegać. Przy przypadkowej pętli ukrywa to pomyłkę, a wynik może być zły.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ