Съдържание
Този кратък урок обяснява основите на кръговите препратки в Excel и защо трябва да се пазите от използването им. Ще научите също как да проверявате, намирате и премахвате кръговите препратки в работните листове на Excel, а ако нищо от горепосоченото не е възможно, как да активирате и използвате кръгови формули.
Опитали сте се да въведете някаква формула в листа на Excel, но по някаква причина тя не работи. Вместо това ви казва нещо за кръгова референция . Така ли се озовахте на тази страница? :)
Хиляди потребители ежедневно се сблъскват със същия проблем просто заради принуждаването на формула на Excel да изчисли собствената си клетка. Когато се опитате да направите това, Excel изхвърля следното съобщение за грешка:
"Внимавайте, открихме една или повече кръгови препратки във вашата работна книга, които могат да доведат до неправилно изчисление на вашата формула."
Казано по-просто, Excel се опитва да каже следното: "Хей, може да закъсам на кръговото кръстовище. Сигурни ли сте, че искате да продължа все пак?"
Както разбирате, кръговите препратки в Excel са неприятни и здравият разум казва да ги избягвате, когато е възможно. Въпреки това може да има някои редки случаи, когато кръговата препратка в Excel е единственото възможно решение за задачата, с която се сблъсквате.
Какво е кръгова препратка в Excel?
Ето едно много ясно и кратко определение за кръгова референция предоставени от Microsoft:
" Когато една формула на Excel препраща директно или индиректно към собствената си клетка, тя създава кръгова препратка. "
Например, ако изберете клетка A1 и въведете =A1
Въвеждането на всяка друга формула или изчисление, отнасящо се до А1, ще има същия ефект, напр. =A1*5
или =IF(A1=1, "OK")
.
Щом натиснете Enter, за да завършите такава формула, ще получите следното предупредително съобщение:
Защо Microsoft Excel ви предупреждава? Защото кръговите препратки в Excel могат да се повтарят безкрайно, създавайки безкраен цикъл, което значително забавя изчисленията в работната книга.
След като получите горното предупреждение, можете да щракнете върху Помощ за повече информация, или затворете прозореца със съобщението, като щракнете върху бутона OK или върху бутона с кръстчето. Когато затворите прозореца със съобщението, Excel показва нула (0) или последна изчислена стойност в клетката. да, в някои случаи формула с кръгова препратка може да завърши успешно, преди да се опита да се изчисли, и когато това се случи, Microsoft Excel връща стойността от последното успешно изчисление.
Забележка: В много случаи, когато въведете повече от една формула с кръгова препратка, Excel не показва предупредителното съобщение многократно.
Но защо някой би искал да създаде такава глупава формула, която не прави нищо друго, освен да създава ненужни проблеми? Точно така, никой здравомислещ потребител никога не би искал да въведе умишлено кръгова формула като горната. Въпреки това може да създадете кръгова препратка в листа на Excel случайно и ето един много често срещан сценарий.
Да предположим, че искате да съберете стойностите в колона А с обичайната формула SUM и при това по невнимание включите самата клетка за сумиране (B6 в този пример).
Ако кръговите препратки не са разрешени във вашия Excel (а те са изключени по подразбиране), ще видите съобщение за грешка, което обсъдихме преди малко. Ако итеративните изчисления са включени, тогава вашата кръгова формула ще върне 0, както на следващата снимка:
В някои случаи една или повече сини стрелки могат да се появят изведнъж в електронната таблица, така че може да си помислите, че Excel е полудял и ще се срине.
Всъщност тези стрелки не са нищо повече от Проследяване на прецеденти или Проследяване на зависими обекти , които показват кои клетки влияят или са повлияни от активната клетка. Ще обсъдим как можете да показвате и скривате тези стрелки малко по-късно.
Досега може би сте останали с впечатлението, че кръговите препратки в Excel са нещо безполезно и опасно, и може би се чудите защо Excel не ги е забранил напълно. Както вече споменахме, има някои много редки случаи, когато използването на кръгова препратка в Excel може да бъде оправдано, тъй като осигурява по-кратко и по-елегантно решение, ако не и единственото възможно.формула.
Използване на кръгова препратка в Excel - пример за формула
В един от предишните ни уроци обсъдихме как да вмъкнем днешната дата в Excel. И преобладаващата част от въпросите, публикувани в коментарите, бяха за това как да въведете времеви печат в Excel, без да се променя всеки път, когато работният лист се отваря отново или се преизчислява. Много се колебаех дали да отговоря на тези коментари, защото единственото решение, което знам, включва кръгови препратки, а те трябва да се третират внимателно. Както и да е, ето един много често срещан сценарий...
Да предположим, че в колона А имате списък с артикули, а в колона Б въвеждате състоянието на доставката. Да " в колона B, искате текущата дата и час да бъдат автоматично вмъкнати в същия ред в колона C като статичен неизменен времеви печат .
Използването на тривиална формула NOW() не е възможно, тъй като тази функция на Excel е променлива, което означава, че тя актуализира стойността си при всяко повторно отваряне или преизчисляване на работните листове. Възможно решение е използването на вложени функции IF с кръгова препратка във втората функция IF:
=IF(B2="да", IF(C2="" ,NOW(), C2), "")
Където B2 е статусът на доставката, а C2 е клетката, в която искате да се появи времеви печат.
В горната формула първата функция IF проверява клетка B2 за " Да " (или всеки друг текст, който предоставите на формулата), и ако посоченият текст е там, се изпълнява втората функция IF, в противен случай се връща празен низ. А втората функция IF е кръгова формула, която извлича текущия ден и час, ако C2 вече няма стойност в него, като по този начин запазва всички съществуващи времеви печати.
Забележка: За да работи тази кръгова формула на Excel, трябва да разрешите итеративни изчисления във вашия работен лист и точно това ще обсъдим по-нататък.
Как да разрешите/забраните кръговите препратки в Excel
Както беше отбелязано по-рано, итеративни изчисления обикновено са изключени в Excel по подразбиране (в този контекст итерацията е многократно преизчисляване, докато не бъде изпълнено определено цифрово условие). За да работят кръговите формули, трябва да разрешите итеративните изчисления в работната книга на Excel.
В Excel 2019 , Excel 2016 , Excel 2013 , и Excel 2010 , щракнете върху Файл > Опции , отидете на Формули и изберете Активиране на итеративно изчисление отметка в полето Опции за изчисление раздел.
В Excel 2007 щракнете върху Бутон на офиса > Опции на Excel > Формули > Област на итерация .
В Excel 2003 и по-ранни версии Итеративно изчисление опция се намира под Меню > Инструменти > Опции > Изчисление таб.
Когато включите итеративните изчисления, трябва да зададете следните две опции:
- Максимален брой итерации box - определя колко пъти формулата трябва да се преизчисли. Колкото по-голям е броят на итерациите, толкова повече време отнема изчислението.
- Максимална промяна поле - определя максималната промяна между резултатите от изчисленията. Колкото по-малко е числото, толкова по-точен резултат получавате и толкова повече време отнема на Excel да изчисли работния лист.
Настройките по подразбиране са 100 за Максимален брой итерации , и 0,001 за Максимална промяна Това означава, че Microsoft Excel ще спре да изчислява вашата кръгова формула след 100 итерации или след промяна под 0,001 между итерациите, което от двете настъпи първо.
Защо трябва да избягвате използването на кръгови препратки в Excel
Както вече знаете, използването на кръгови препратки в Excel е хлъзгав и непрепоръчителен подход. Освен проблемите с производителността и предупредителното съобщение, което се показва при всяко отваряне на работната книга (освен ако не са включени итеративни изчисления), кръговите препратки могат да доведат до редица други проблеми, които не са очевидни веднага.
Например, ако изберете клетка с кръгова препратка и след това случайно преминете в режим на редактиране на формула (чрез натискане на F2 или двукратно щракване върху клетката), а след това натиснете Enter, без да направите никакви промени във формулата, тя ще върне нула.
Ето един съвет от много уважавани експерти на Excel - старайте се да избягвате кръговите препратки в таблиците си, когато е възможно.
Как да намерите кръгови препратки в Excel
За да проверите работната си книга на Excel за кръгови препратки, изпълнете следните стъпки:
- Отидете в Формули щракнете върху стрелката до Проверка на грешки и посочете Циркулярни препратки Там се показва последно въведената кръгова референция.
- Щракнете върху клетката, посочена в Циркулярни препратки , и Excel ще ви прехвърли точно към тази клетка.
Щом направите това, лентата на състоянието ще ви уведоми, че в работната ви книга са открити кръгови препратки, и ще покаже адреса на една от тези клетки:
Ако в други листове са открити кръгови препратки, в лентата на състоянието се показва само " Циркулярни препратки " без адрес на клетката.
Забележка: Тази функция е деактивирана, когато е включена опцията Iterative Calculation (Итеративно изчисление), така че трябва да я изключите, преди да започнете да проверявате работната книга за кръгови препратки.
Как да премахнете кръговите препратки в Excel
За съжаление в Excel няма механизъм, който да ви позволи да премахнете всички кръгови формули в работна книга с едно щракване на бутона. За да се отървете от тях, ще трябва да проверите всяка кръгова препратка поотделно, като извършите горните стъпки, и след това или да премахнете дадена кръгова формула изцяло, или да я замените с една или повече прости формули.
Как да проследявате връзките между формулите и клетките
В случаите, когато кръговата препратка към Excel не е очевидна, Проследяване на прецеденти и Проследяване на зависими обекти функции могат да ви подскажат, като нарисуват една или повече линии, които показват кои клетки засягат или са засегнати от избраната клетка.
За да покажете стрелките за проследяване, отидете в Формули tab> Одит на формулите и щракнете върху една от опциите:
Проследяване на прецеденти - проследява клетките, които предоставят данни за дадена формула, т.е. чертае линии, указващи кои клетки влияят на избраната клетка.
Проследяване на зависими обекти - проследява клетките, които зависят от активната клетка, т.е. чертае линии, указващи кои клетки са засегнати от избраната клетка. С други думи, показва кои клетки съдържат формули, които се позовават на избраната клетка.
Можете също така да използвате следните бързи клавиши:
- Проследяване на прецеденти: Alt+T U T
- Проследяване на зависими обекти: Alt+T U D
За да скриете стрелките, щракнете върху Премахване на стрелките бутон, който се намира точно под Проследяване на зависими обекти .
В горния пример Проследяване на прецеденти стрелката показва кои клетки директно предоставят данни на B6. Както виждате, клетка B6 също е включена, което я прави кръгова препратка и води до връщане на нула във формулата. Разбира се, това е лесно да се поправи, просто заменете B6 с B5 в аргумента на SUM: =SUM(B2:B5)
Други кръгови препратки може да не са толкова очевидни и да изискват повече мислене и изчисления.
Това е начинът, по който се справяте с кръговите препратки в Excel. Надявам се, че този кратък урок е хвърлил малко светлина върху това "сляпо петно" и сега можете да направите допълнителни проучвания, за да научите повече. Благодаря ви, че прочетохте, и очаквам с нетърпение да ви видя в нашия блог следващата седмица!