a” körkörös függőség észlelése ” hiba a Google Táblázatokban nagyon gyakori hiba, amely szinte bármilyen képlet használatakor előfordulhat. Amikor a Google táblázatában megjelenik a körkörös függőség észlelt hiba, ez azt jelenti, hogy a képlet egy olyan tartományra hivatkozik, amely magát a képletet tartalmazza, vagy más szavakkal, amikor a képlet bemenete a kimenettől függ.
a Google Táblázatokban észlelt körkörös függőségi hiba kijavításához hajtsa végre a táblázat alábbi módosításainak egyikét:
- helyezze át a képletet egy másik cellába, amely nem található azon tartomány (ok) ban, amelyre a képlet hivatkozik
- vagy állítsa be a képletben lévő hivatkozást úgy, hogy ne hivatkozzon olyan tartományra, amely magát a képletet tartalmazza
körkörös függőségi hibák akkor is előfordulhatnak, ha két képlet arra a tartományra hivatkozik, amelyben a másik képlet található, még akkor is, ha a képlet nem hivatkozik önmagára (azaz a saját helyére)). Ugyanúgy, ahogy egyetlen képlet bemenete nem függhet a saját kimenete által meghatározott adatoktól, két képlet nem függhet egyszerre egymás kimenetétől. Ez zavaró helyzetet okozhat, amikor egy rossz képlet két képlethibát okoz.
ebben a cikkben több különböző példát fogok áttekinteni arról, hogyan tapasztalhatja meg ezt a körkörös függőséget észlelt hibát a Google Táblázatokban, és megmutatom, hogyan lehet kijavítani a hibát minden helyzetben.
amikor kör alakú függőségi hiba lép fel a táblázatban, a képlethibát tartalmazó cellában egy kis piros háromszög jelenik meg a cella jobb felső sarkában, a cellaszövegben pedig a következő felirat jelenik meg: “#REF!”.
amikor a kurzort a hibával rendelkező cella fölé viszi, megjelenik egy doboz, amely a következő üzenetet jeleníti meg, az alábbi képen látható módon:
“körkörös függőség észlelve. Az iteratív számítással történő megoldáshoz lásd: Fájl>Táblázatbeállítások.”
a hiba kijavításához általában nem kell módosítania a táblázat beállításait, mivel a legtöbb esetben a hibát úgy oldja meg, hogy módosítja a képlethivatkozásokat és a képlet helyét.
ha a képlet azon a tartományon belül van, amelyre hivatkozik, ez azt jelenti, hogy a képlet bemenete “függ” a kimenettől, amelyet nem lehet kiszámítani, és hibát okoz.
itt van egy analógia, amely segít megmagyarázni a hibát. Ez olyan, mintha a következő matematikai feladatot kapnánk:
1.kérdés: osszuk el a 10-et az 1. kérdésre adott válaszsal.
ezt lehetetlen megoldani, mert a kimenet/válasz nem ismert, mielőtt a probléma ténylegesen megoldódott.
vagy két képlet esetében, amelyek egymás kimenetére/helyére utalnak, itt van egy másik analógia. Ez olyan, mintha a következő két matematikai problémát kapnánk:
1. kérdés: Mi a válasz a 2. kérdésre?
2. kérdés: Mi a válasz az 1. kérdésre?
ismét ez nem oldható meg. Az egyes kérdésekre adott válasz a másiktól függ, ami az elmédet körökben futtatja… ezért a “körkörös függőség”kifejezés.
ne hagyd, hogy ez összezavarodjon, mert ez a lényeg az, hogy ez a logika hibát okoz. Csak annyit kell tudni, hogy miért történik, és hogyan lehet kijavítani.
tehát menjünk át néhány tényleges példát a “körkörös függőség észlelése” hiba megoldására a Google táblázatában.
a körkörös függőség észlelt hibájának javítása
vessünk egy pillantást a körkörös függőség észlelt hibájának legegyszerűbb példájára.
az alábbi képen egy képlet látható, amely egyszerűen egyetlen cellára utal. A probléma azonban az, hogy az a cella, amelyre a képlet hivatkozik, az a cella, amelybe a képletet beírják (az A1 cellában lévő képlet az A1 cellára utal).
mint látható, ez körkörös függőségi hibát okozott.
a következő képlet hibát okoz, amikor az A1 cellába kerül:
=A1
a hiba kijavításához áthelyezhetjük a képletet egy másik cellába, vagy megváltoztathatjuk a képletben lévő hivatkozást úgy, hogy egy másik cellára utaljon.
ebben az esetben megváltoztatjuk a cella hivatkozását a B1 cellára.
mint az alábbi képen látható, ez a Beállítás kijavította a körkörös függőségi hibát.
a következő képlet módosult, és megoldja a hibát:
=B1
most az A1 cella megjeleníti a B1 cellában található szöveget.
a körkörös függőség javítása
összegzésekor gyakori helyzet, amikor a “körkörös függőség észlelése” hibát tapasztalhatja, amikor a Google Táblázatokban összegez. Ez leggyakrabban akkor fordul elő, amikor az Összegképlet ugyanabban az oszlopban van, amelyre hivatkozik, és amikor a képlethivatkozás rögzíti az egész oszlopot.
az alábbi kép egy egyszerű ÖSSZEGKÉPLETET mutat, amely megpróbálja összegezni az A1-től A5-ig terjedő cellákban lévő számokat.
de mint látható, az Összegképlet a teljes oszlopra vonatkozik (A). Mivel az ÖSSZEGKÉPLETET az A oszlop (A6) cellájába írja be, ez körkörös függőséget észlelt hibát okoz.
a következő képlet hibát okoz, ha bárhol beírja az A oszlopba:
=SUM (A1:A)
a hiba kijavításához a képletben lévő hivatkozást úgy állítjuk be, hogy csak a fölötte lévő cellák értékeit összegezze.
Tehát ahelyett, hogy megpróbálnánk összegezni a teljes oszlopot, kijelölünk egy végződő sort a referenciában (egy sor, amely az Összegképlet felett van).
ehhez egyszerűen változtassa meg az összegtartományt A1:A5-re.
ez javítja a körkörös függőségi hibát, amint az az alábbi képen látható.
a következő képlet módosult, és megoldja a hibát:
=SUM (A1:A5)
most a fenti képen látható Összegképlet sikeresen összegzi az A1-től A5-ig terjedő cellákat. (1+2+3+4+5=15)
körkörös függőség rögzítése
szűréskor az utolsó példában a képlethivatkozás sorait kellett módosítanunk a körkörös függőségi hiba kijavításához, de vessünk egy pillantást egy példára, ahol a hivatkozás oszlopait módosítjuk a hiba megoldásához.
ebben a példában tegyük fel, hogy van egy listánk az iskolai kellékekről és azok árairól egy táblázatban, és az adatokat egy képlettel szeretnénk szűrni, hogy megjelenjen az 1 dollárnál drágább elemek listája.
mint az alábbi képen látható, a SZŰRŐKÉPLET “körkörös függőséget észlelt” hibával rendelkezik. Ezt a forrástartományra való hivatkozás okozza, amely egy oszlop túl széles (figyelembe véve a szűrő képletének helyét).
ha a képlet az A2:D tartományra vonatkozik, amely a D oszlopot tartalmazza, akkor a képlet nem helyezhető el a D oszlopba.
a következő képlet hibát okoz a D2 cellába történő bevitelkor:
=szűrő (A2:D, C2:C>1)
a fenti képen látható hiba kijavításához módosítsa a forrásadatokra vonatkozó tartományt A2:D-ről A2:C-re.
a beállítás elvégzése után a hiba kijavításra kerül, és a SZŰRŐKÉPLET megfelelően működik.
a következő képlet módosult, és megoldja a hibát:
=szűrő(A2: C, C2:C>1)
most az iskolai kellékeket szűrik, hogy megjelenítsék az 1 dollárt meghaladó tételek listáját.
ezt a tartalmat eredetileg készítette és írta SpreadsheetClass.com
a körkörös függőség rögzítése az IF/then utasítás
most vessünk egy pillantást egy összetettebb példára, amely bárkivel megtörténhet, aki képleteket használ a táblázataiban. Ebben a példában két különböző képlet van, amelyek kölcsönhatásba lépnek, és mivel az egyiket helytelenül állították be, mindkettő hibát jelenít meg, mivel mindegyik egymásra utal (függ).
(ennek további magyarázatáért lásd a cikk tetejét)
ha az alábbi képen látható hibához hasonló hiba történik, néha nehéz meghatározni, hogy melyik képletben van a hiba, az általa okozott kettős hiba miatt. Mint minden hibaelhárítási forgatókönyvben… a legjobb dolog az, ha az elejétől kezdjük, és nyomon követjük az adatokat/rendszert, amíg meg nem találjuk a hibát.
tehát itt van a példa forgatókönyve: az A oszlop egy 1-es és 0-as feladat befejezését jelzi. a B oszlop képletei az A oszlop adataira hivatkoztak, és az “Igen” vagy “nem” szöveget jelenítették meg, attól függően, hogy az A oszlop minden cellája 1-es vagy 0-as számmal rendelkezik-e. Ezután a C oszlop a B oszlop celláira hivatkozik, és megjeleníti a “teljes” vagy “nem teljes” szavakat, attól függően, hogy a B oszlop minden cellája igent vagy nemet mond-e.
röviden: ha az A3 cella tartalmazza az 1-es számot, akkor a B3 cellának “igen”, a C3 cellának pedig “teljes”szót kell mondania.
de a probléma az, hogy a képlet a B3 cellában… ahelyett, hogy az A oszlopban az 1-es és 0-asokra hivatkozna, a lap készítője hibát követett el, és a C oszlopra hivatkozott (ami viszont visszautal rá). Ez körkörös függőségi hibát hoz létre mindkét képletben, annak ellenére, hogy technikailag csak az egyik képletet állították be helytelenül.
ez a fajta keveredés gyakori, ha sok képletet használ a munkalapokban, és különösen akkor, ha egész nap készít és fáradt.
ennek a képletnek a kijavításához, amely mindkét kör alakú függőségi hibát kijavítja, kövesse a kép alatt felsorolt utasításokat.
a következő képlet hibát okoz a B3 cellába történő bevitelkor, a C3 cellában lévő másik képlet miatt, amely a B3 cellára utal:
=IF(C3=”teljes”,”Igen”, “Nem”)
ebben az esetben a hiba kijavításához nem csupán a képletben szereplő hivatkozás megváltoztatása, mert az egész képletet hibásan írták. Tehát ne feledje, hogy a B oszlopban szereplő képleteknek minden sorban/cellában meg kell jeleníteniük az “Igen” szót, ha az A oszlop szomszédos celláiban 1-es szám van (és a “nem” szót, ha a szomszédos cellában 0 van).
a B3 cellában a képlet korrigált logikája a következő: Ha az A3 cella értéke 1, akkor jelenítse meg az “Igen” szót, ha nem, akkor jelenítse meg a “nem”szót.
a következő képlet módosult, és megoldja a hibát:
=IF(A3=1,”Igen”,”Nem”)
most mindkét képlet megfelelően működik, és mindkét körkörös függőségi hibát egyszerre javították ki egy képlet kijavításával.
most a B oszlop az a oszlopra, majd a B oszlop a C oszlopra utal, ahogy annak lennie kell. A képletek már nem függenek egyszerre egymás kimenetétől.
javítsa ki a körkörös függőségi hibát, amikor egy másik fülre hivatkozik
a “körkörös függőség észlelése” hiba egy másik nagyon gyakori módja, amikor a képlet egy másik lapjára hivatkozik, és elfelejtette belefoglalni a lap nevét a hivatkozásba.
az alábbi adatok a ruházati cikkek listáját és méretüket mutatják egy táblázatban. Az adatokat egy másik lapon lévő képlet segítségével szeretnénk szűrni, hogy csak a “közepes”méretű elemeket jelenítsük meg.
az alábbi képen egy SZŰRŐKÉPLET látható, amelyet az A2 cellába kell beírni, egy másik lapon, mint amely a fent látható forrásadatokat tartalmazza.
a probléma az, hogy a lap neve kimaradt a képlet beírásakor.
mivel a forrástartomány A2: B, és a képlet az A2 cellában van, ez azt jelenti, hogy a képlet önmagára vonatkozik. Vagy más szavakkal, az a cella, amelybe a képlet be van írva, azon a tartományon belül van, amelyre a képlet hivatkozik. Ez körkörös függőségi hibát okoz.
a következő képlet hibát okoz az A2 cellába történő bevitelkor:
=szűrő (A2:B, B2:B= “Közepes”)
a hiba kijavításához egyszerűen adja hozzá a lap nevét a szűrő képletében szereplő hivatkozásokhoz.
a forrástartományra való hivatkozás ‘Another Tab’lesz!A2: B (Aposztrófokat kell hozzáadni a fül neve hivatkozás előtt és után, ha van szóköz a fül nevében).
a következő képletet módosítottuk és megoldottuk a hibát:
= filter (‘Another Tab’!A2: B, ‘Újabb Fül’!B2: B= “Közepes”)