Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Čuvanje prethodnih vrednosti za medjusume [Circular reference]

[es] :: Office :: Excel :: Čuvanje prethodnih vrednosti za medjusume [Circular reference]

[ Pregleda: 3850 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ferguson
Nikolic Vladimir
Beograd

Član broj: 67927
Poruke: 191
147.91.239.*

ICQ: 164532115


+1 Profil

icon Čuvanje prethodnih vrednosti za medjusume [Circular reference]07.07.2008. u 08:09 - pre 192 meseci
Imam vise promenljivih koje se menjaju u odredjenom trenutku. One se sabiraju sa jednom kolonom i daju konacnu vrednost.

E sada, problem je jer svaki put kada se one promene i vrednost ukupne sume se promeni, ali meni je potrebno da se one sabiraju stalno.

Primer:

Kolona A su promenljive
Kolona B je broj sa kojim se sabiraju
Kolona C je rezultat

A______B______C
10____5_______15
13____6_______18

Kod mene je problem jer kada unesem nove promenljive, meni kolona B treba da uzme vrednost kolone C i time dobijam sumu tih promenljivih.

Primer:

A______B______C
2____15_______17
7____18_______25
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1319

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Čuvanje prethodnih vrednosti za medjusume [Circular reference]09.07.2008. u 12:20 - pre 192 meseci
Za ovakve potrebe verovatno je najbolje rešenje u pisanju namenskog potprograma ili namenske f-je -što ćeš teško dobiti za džabe, ali, možda ti se i posreći. =)

Interesantno je, međutim, rešenje koje ne bi uključilo korišćenja makroa. Zbog same postavke problema formulama bi se referencirale ćelije unakrsno i ovo bi, u normalnim okolnostima, dovelo do greške poznate kao "Cirkularno referenciranje" (CR). To je otprilike kao kad kuca krene da juri svoj rep, :) odnosno, imamo niz referenciranja (uzimanja vrednosti) različitih ćelija koje zatvaraju pun krug (A čita od B, koje čita od C.. koje čita od A). Greška je "opasna" na regularnim programima utoliko što ume gadno da zablokira računar, tzv "mrtve petlje" ili dead-lock. Kako god da ih zovemo, kada ih otkrijemo, obično su indikator greške u sintaksi.

Manje je poznato da se isključivanjem ovog "alarma" u Excelu mogu postići interesantni efekti cirkularnim referenciranjem unutar f-ja radnog lista. (Npr, rekurzija, povratna sprega, sve su to moćni koncepti koji imaju veze sa CR.)

Za više detalja otvori att.



kolona 1/4: Pomoćna kolona u kojoj se brojevi menjaju kao klackalica. Služi za promenu dva susedna para a validan je uvek par u liniji sa br.1 (pom.brojevi), što je istaknuto oblikovanjem. //Siguran sam da ovo može i elegantnije. =)
Ovi parovi čine: Međusumu i Sumu -koja u sledećoj iteraciji postaje međusuma, itd. Kao u nizu: AB, BC, CD..

kolona 2/4: Unos k(i) = broj koji se unosi.

kolona 3/4: Σ{k(i-1)} = Međusuma.

kolona 4/4: Σ{k(i)} = Suma svih unetih brojeva.




Napomena:

Da bi se resetovale izračunate vrednosti: prvo treba obrisati ćeliju Unos, i pokrenuti ReplaceAll sa unetim simbolom '=' u oba polja (za 'Find what' i 'Replace with').

F9 (Calculate): forsira iteraciju.
(Isto se događa i kada se dokument snimi ili načini kakva izmena.)
U ovom slučaju, kada, zbog cirkularnog referenciranja, svakim proračunom menjamo polazne parametre, ovo više smeta nego što pomaže.

Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
Prikačeni fajlovi
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Čuvanje prethodnih vrednosti za medjusume [Circular reference]09.07.2008. u 22:21 - pre 192 meseci
Evo i jednostavnog makroa koji ce isprazniti kolonu A, a u kolonu B upisati poslednje sabrane vrednosti.

Code:

Sub ZameniKolone()
    Range("C1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A1").Select
End Sub


Pozdrav
 
Odgovor na temu

[es] :: Office :: Excel :: Čuvanje prethodnih vrednosti za medjusume [Circular reference]

[ Pregleda: 3850 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.