Avatar billede loxx-- Nybegynder
15. november 2004 - 17:29 Der er 51 kommentarer og
1 løsning

Cirkulær reference

Jeg har en kolonne:

A1  Salg (1000)
A2  Renter af kassekredit (=2%*A5)
A3  I alt (salg-renter)

A5  Kassekredit (=A3)

Kan man få denne formel til at fungere, så den beregner rente af kassekreditten, og forhøjer kassekreditten med renten uden at den så igen beregner rente (uendelighedsproblem)
Avatar billede loxx-- Nybegynder
15. november 2004 - 17:29 #1
Det virkede i det gamle SuperCalc
Avatar billede jkrons Professor
15. november 2004 - 18:24 #2
Funktioner - Indstillinger. Fanebladet Beregning. Sæt flueben i Gentagelse. Sæt antal gentagelser til 1. Og marker manuel beregning. Så foretages der først beregning, når du trykker F9 i regnearket.
Avatar billede loxx-- Nybegynder
15. november 2004 - 18:26 #3
ja, men der skal foretages flere beregninger i regnearket... og det skal kun gøres en gang uanset hvor mange gange man trykker på beregn
Avatar billede loxx-- Nybegynder
15. november 2004 - 18:26 #4
og hvis man gør som du siger beregner den hver gang der trykkes F9
Avatar billede jkrons Professor
15. november 2004 - 18:29 #5
Ja, det er rigtigt. Ved mauel beregning skal du indtaste alle tal først, og så trykke på F9. Alternativet er automatisk beregning, men så genberegnes  kassekreditten, hver gang du ændrer et tal i regnearket, uanset om det har noget med kreditten at gøtre eller ej.
Avatar billede loxx-- Nybegynder
15. november 2004 - 18:32 #6
Ja... men hvis man så har glemt en formel eller noget skal man til at op i funktioner og hele møllen igennem igen.. kan man ikke specifere en bestemt celle til kun at beregne sig 1 gang.
Avatar billede jkrons Professor
15. november 2004 - 18:43 #7
Nej ikke umiddelbart.

Måske kan man gøre noget med en makro, men den vil du så skulle afspille, når der er behov for det, eller også skal afspilningen "trigges" ved indtastning i en bestemt celle.
Avatar billede jkrons Professor
15. november 2004 - 18:49 #8
Denne kode genberegner kassekreditten, hver gang du æbndrer i salget:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Range("a1") Then
        Range("a5").Value = Range("a3").Value
    End If
End Sub

Koden skal ligge i arkets kodemodul.
Avatar billede loxx-- Nybegynder
15. november 2004 - 18:55 #9
Hvordan skal det "startes"
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:00 #10
virker stadig ikke
Avatar billede jkrons Professor
15. november 2004 - 19:06 #11
Det skulle gerne starte af sig selv. Højreklik på arkfanen, vælg Vis programkode, og kopier koden til vinduet. Luk derefter igen.
Avatar billede sjap Praktikant
15. november 2004 - 19:09 #12
Kan du ikke bare ændre formlen i A3 til

A3  =A1*(1-2%)
Avatar billede sjap Praktikant
15. november 2004 - 19:12 #13
Glem det. Jeg fangede ikke lige ideen med kassekreditten. :0(
Avatar billede jkrons Professor
15. november 2004 - 19:13 #14
sjap-> Det er jo ikke renter af salget, men af den nuværende kassekredit. Altså A5, så uanset hvordan det gøres, skal A5 indgåp i en cirkulær reference, når A5 skal opdateres på grundlag af det, der allerede står i cellen.
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:24 #15
det funker stadig ikke... den kommer stadig frem og brokker sig over cirkulær reference, og hvis man slår det fra (med det første forslag du kom med) kan man stadig trykke F9 flere gange og den bliver ved med at beregne.
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:26 #16
Kan man ikke gøre sådan at den kun beregner renten 1 gang ?
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:26 #17
og kun lægger den til 1 gang
Avatar billede jkrons Professor
15. november 2004 - 19:28 #18
Nej, man kan ikke ændre så en celle kun beregnes en gang. Den beregnes hver gang, man beder om en beregning, uanset om dette sker manuelt eller automatisk. Med mindre du ikke beregner den i arket, men i en makro, som du så kun afspiller efter behov.

Men selv her kommer det nok til at knibe, da din problemstilling jo forudsætter den cirkulære reference.
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:29 #19
lorteprogram
Avatar billede jkrons Professor
15. november 2004 - 19:31 #20
Hvis din opgave ikke kan løses af programmet, behøver det jo ikek være det, der er noget galt med. Måske skal du bare finde et bedre værktøj.
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:34 #21
det er sq da for ringe at excel ikke engang kan finde ud af det, når det gamle supercalc kunne... det burde da være muligt at låse en celle til kun at blive beregnet 1 gang (i dette tilfælde renten)
Avatar billede jkrons Professor
15. november 2004 - 19:36 #22
Det burde også være muligt at tømme en sø med en si, men når det ikke kan alligevel, er det jo ikke siens skyld :-)

Der er opgaver som Excel løser fremragende, opgaver som det løser mindre fremragende, og opgaver som progtammet ikke kan løse. Og så er det vel ret ligegyldigt, hvad et forældet program fra en helt anden leverandør kan?

Ellers kan du jo bare bruge supercalc til netop denne opgave, og så Excel til det, det program er godt til.
Avatar billede loxx-- Nybegynder
15. november 2004 - 19:37 #23
du er vist en true microsoft fan :D
Avatar billede jkrons Professor
15. november 2004 - 19:39 #24
Nope. Jeg går bare ind for, at man skal bruge det bedste værktøj til opgaven, og hvis min skrutrækker ikke kan slå søm i på en ordentlig måde, bliver jeg ikke sur på skruetrækkeren, men tager en hammer :-)
Avatar billede sjap Praktikant
15. november 2004 - 19:43 #25
Hvis det ikke giver for meget støj, vil jeg lige blande mig og vende tilbage til udgangspunktet, for jeg har ret svært ved at forstå opgaven, da den virker ret ulogisk på mig (det er ikke ment som kritik!).

Måske er det bedst med et eksempel:

Salg: 1000

Der er ikke nogen kassekredit så renterne er 0 - eller hvad?
Dermed står der 1000 i Ialt og 1000 på kassekreditten. Er det korrekt forstået?
Avatar billede sjap Praktikant
15. november 2004 - 19:46 #26
Næste gang der indlæses noget i salg, skrives der f.eks. 5000. Så bliver regnestykket:

Salg: 5000
Renter: 20  (2% af 1000)
I alt: 4980

Kassekredit: 5980

Er det korrekt?
Avatar billede jkrons Professor
15. november 2004 - 19:47 #27
sjap-> Sådan har jeg forstået det. Men samtidigt skal du kunne ændre andre ting uden at renten genberegnes.
Avatar billede sjap Praktikant
15. november 2004 - 19:49 #28
Så kan jeg måske godt få det til at virke! (fanfare)  :0)
Avatar billede sjap Praktikant
15. november 2004 - 19:50 #29
Hvis ellers loxx-- stadig er interesseret?
Avatar billede jkrons Professor
15. november 2004 - 19:51 #30
Ellers er jeg. For jeg var sikker på at min makroløsnig ville virke :-)
Avatar billede sjap Praktikant
15. november 2004 - 20:00 #31
Jeg har ikke prøvet din løsning jkrons.

Men her er hvad der står i mit ark:

A1: 1000  (ikke noget nyt her)
A2: =2%*A5  (ikke noget nyt her heller)
A3: =HVIS(A1=0;0;A1-A2) (hvis sætningen er kun med for at jeg kan nulstille beregningerne)
A5: =A3+B4  (hov! +B4 er vist ny - hvad er nu det for noget)
B4: =HVIS(A1=0;0;A5)  (hvis sætningen er kun med for at jeg kan nulstille beregningerne)

celle B4 holder den forrige værdi af kassekreditten.

Det virker faktisk - lige indtil man gemmer. Programmet må ikke genberegne inden der gemmes, så bliver der regnet en gang for meget.
Avatar billede jkrons Professor
15. november 2004 - 20:14 #32
Det løser vel ikke problemet med de cirkulære referencer. A2 referer til A5, A3 referer til A2 og A5 referer til A3.
Avatar billede sjap Praktikant
15. november 2004 - 20:56 #33
Nej, du kan ikke undgå de cirkulære referencer. Som du tidligere foreslog så skal man blot sætte antal gentagelser til 1. Med automatisk beregning fungerer det til man gemmer (så er det lige, der laves en beregning for meget). Ellers fungerer det jo også fint med den manuelle beregning.
Avatar billede bak Forsker
15. november 2004 - 21:22 #34
Hvis arket ikke indeholder andre beregninger vil det bedste være at sætte beregning til automatisk og gentagelser til 1 og fjerne flueben i genberegn før der gemmes.
På denne måde sættes F9 ud af kraft.
Avatar billede bak Forsker
15. november 2004 - 21:26 #35
Sorry, det gør den selvfølgelig ikke. Havde noget der hang i bremsen :-)
Avatar billede jkrons Professor
16. november 2004 - 12:02 #36
bak-> Men problemet er, som jeg forstår det, at der er andre beregninger i regnearket, som skal kunne udføres uden at netop kassekreditten genberegnes. Og her hjælper F9 ikke, da den jo genberegner alle formler i arket, og det samme gælder automatisk beregning.

Det jeg "hører" er, at han gere vil kunne genberegne alle celler, bortset fra netop A2 og A5, og den eneste løsning på dnet, er som jeg ser det, at cellen ikke indeholder en formel, men kun et resultat, og at dette resultat så indsættes ved hjælp af en makro.
Avatar billede bak Forsker
16. november 2004 - 13:14 #37
Enig jkrons. Hvis det skal være sådan er en makro løsningen...
Avatar billede sjap Praktikant
16. november 2004 - 18:32 #38
Tjah, den må jeg (desværre) også tilslutte mig. Jeg havde ikke lige fanget, at der også skulle foretages andre beregninger.
Avatar billede katborg Praktikant
23. november 2004 - 00:03 #39
Man må kunne bruge lidt matematik her

Hvis du skriver rente '2%' i B2, kan du indsætte denne formel i 'A2'

=A1*(B2/(1+B2))

eller

1000*(2%/(1+2%))
=
1000*(0,02/1,02)

På den måde får du beregnet renten uden at skulle bruge A5 og dermed få den cirkulære reference
Avatar billede katborg Praktikant
23. november 2004 - 09:36 #40
Hej igen

Man behøver såmænd ikke køre det så kompliceret med alle disse paranter

Rente kan regnes ud således 1000/1,02*,02, eller hvis renten er 4% 1000/1,04*,04
Avatar billede jkrons Professor
23. november 2004 - 15:09 #41
katborg-> Men så opskrives/nedskrives kassekreditten jo ikke med renten.
Avatar billede katborg Praktikant
23. november 2004 - 16:50 #42
Udfra loxx beskrivelse af sammenhænge mellem cellerne kan jeg da heller ikke læse at den skal det ??

A1 = 1000
A2 = A5*2%
A3 = A1 - A2

A5 = A3

Så vil A5 vist altid være = omsætning - renten
Ellers har loxx skrevet en ting med celle sammenhængen og ment noget andet ??
Avatar billede jkrons Professor
23. november 2004 - 16:52 #43
I A3 trækkes renten fra (A1-A2). Derefter sættes A5 = A3. Det må betyde at kassekreditten skal op- eller nedskrives med renten.
Avatar billede katborg Praktikant
23. november 2004 - 16:57 #44
Hvis han ment
A1 = 1000
A2 = A5*2%
A3 = A1 + A2

A5 = A3

Så skal A2 se således ud

=A1*(1+B2)*B2 (B2 = %)
Hvilket giver
A1 1000
A2  20,4
A3 1020,4

A5 1020,4
Avatar billede katborg Praktikant
23. november 2004 - 17:02 #45
>krons

Så bliver A5 da også korriget med Renten, hvis du sætter renten til 5%
      A3=A1-A2  A3 = A1+A2
A1 = 1000          1000 
A2 =  47,61905      52,5
A3 =  952,381      1052,5

A5 =  952,381      1052,5
Avatar billede jkrons Professor
23. november 2004 - 17:05 #46
Så vidt så godt. Men når du så fx retter A1 til 500, ændres A5 til 510,2. Her skulle det (som jeg læser opgaven) retteligt blive 1530,6. Altså de 1020,4, der står der i forvejen, + de nye 510,2.

Og for at dette kan lade sig gøre, kræves en cirkulær rreference.  Og har man den, kan man ikke nøjes med at låse en enkelt celle. Og så er vi der, hvor vi startede, at i Excel genberegner man altid alle formler eller slet ingen.
Avatar billede jkrons Professor
23. november 2004 - 17:06 #47
Altså A5, skal indeholde den akkumulerede værdi af beregningerne.
Avatar billede katborg Praktikant
23. november 2004 - 22:10 #48
Så skriver man vel bare 1.500 i a1 ? Eller 1.000+500.

Herefter er A5 = 1.530,6
Avatar billede katborg Praktikant
23. november 2004 - 22:58 #49
Jeg er nu ikke helt sikker på din fortolkning af opgaven ?

Ved 1. gennemløb sættes 1.000 i A1, KK =0, 0 i rente, KK herefter 1.000
Ved 2. gennemløb sættes 500 i A1, KK er 1.000 = 20 i rente KK herefter 1.520
Ved 3. gennemløb sættes 750 i A1, KK er 1.520 = 30,4 i rente KK herefter 2.300,4
Ved 4. gennemløb sættes 1250 i A1, KK er 2300,4 = 46 i rente KK herefter 3596,4

Så har man altså fået beregnet rente af de første 1.000 kr 3 gange, de 500 er rente beregnet 2 gange osv. - Det kan vist næppe være meningen

Hvad siger loxx til forslagene ?

Men hvis man skulle medtage den "gamle" saldo i beregning, må man kunne kombinere vores foreslag ved at lave en macro som indsætter A5 som værdi i en celle ved siden af, og tillæge denne værdi i A5. Man kan så køre macroen, indsætte en ny værdi i A1 og så har man en ny værdi i A5 i cirkulær ref.

Men... som tidligere revisor vil jeg meget! nødigt skulle revidere resultatet efter man har indsat 117 værdier i A1, for hvordan kan man dokumentere værdi ?
Avatar billede jkrons Professor
23. november 2004 - 23:12 #50
Tilsyneladende er der mange andre beregninger i arket, så jeg opfatter bare denne del som en slags saldokontrol. Og hvis du har en kassekredit, eller en anden konto, skal der vel skrives rente til af hele indeståendet hver gang.

loxx har tilsyneladende opgivet sin deltagelse i debatten, så egentlig er det fjollet at blive ved :-)
Avatar billede loxx-- Nybegynder
20. april 2005 - 19:40 #51
jkrons - dit bud gav mig løsningen.. smid et svar og du skal få points
Avatar billede jkrons Professor
20. april 2005 - 23:45 #52
Here goes :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester