Avatar billede anedi Ekspert
12. juni 2018 - 14:50 Der er 5 kommentarer og
2 løsninger

Løbende rounddown-funktion

Hej Eksperter

Jeg har en udfordring med en løbende beregning, hvor resultatet i hvert beregningsskridt skal nedrundes og bruges til næste beregning.

Grundlæggende har jeg et beløb der reguleres hvert år med en given procentsats. Resultatet hvert år nedrundes til nærmeste heltal, og det er det tal, der benyttes for næste års beregning.

Jeg har et grundbeløb, som er mit udgangspunkt, eksempelvis 500 DKK i år 2010.
Næste år (2011) stiger beløbet eksempelvis med 2,5%, som giver 512,5. Dette tal skal rundes ned til nærmeste heltal, så her bliver det 512.
I 2012 stiger beløbet eksempelvis 1,5%, som giver 519,7 (idet der regnes videre på 512), og her er det så 519, der er det tal jeg er interesseret i.

Min udfordring består i, at når jeg skal regne langt frem, bliver mine formler meget lange. Foreløbig ser mine formler ud a la dette:
=ROUNDDOWN(ROUNDDOWN(500*(1,025);0)*1,015);0)

Er der nogen der har et godt bud på en formel (matrix evt.), hvor jeg kan slippe af med alle ROUNDDOWN-mellemregningerne?

På forhånd tak for hjælpen.

Vh
Anedi
Avatar billede xl-Enthusiast Ekspert
12. juni 2018 - 16:08 #1
=SLÅ.OP(2;1/AFRUND.GULV(A1:A2*(1+B1:B2);1);AFRUND.GULV(A1:A2*(1+B1:B2);1))
Avatar billede kim1a Ekspert
12. juni 2018 - 16:09 #2
Kan du ikke lidt simpelt have rounddown i en tabel for sig. Altså
2010
500
2,5
512,5

2011
512 (din rounddown pegende fra de 512,5)
1,5
519,7

Eller er det for besværligt at stille op i det nuværende setup?
Avatar billede xl-Enthusiast Ekspert
12. juni 2018 - 16:10 #3
Åh - overså lige, at du bruger engelsk:

=LOOKUP(2;1/FLOOR(A1:A2*(1+B1:B2);1);FLOOR(A1:A2*(1+B1:B2);1))
Avatar billede xl-Enthusiast Ekspert
13. juni 2018 - 06:07 #4
Glem venligst (#1 og) #3.
Avatar billede xl-Enthusiast Ekspert
13. juni 2018 - 06:51 #5
Avatar billede acore Ekspert
13. juni 2018 - 08:20 #6
Du kan løse det med en lille VBA bruger-defineret funktion:

Function renteafrund(value As Double, r As Range) As Double
    renteafrund = value
    For Each rCell In r
        renteafrund = WorksheetFunction.RoundDown(renteafrund * rCell.value, 0)
    Next rCell
End Function

Den kan bruges som en almindelig funktion. Eksempel: Hvis du har dine satser (1,025 og 1,025) i A1:A2 skriver du:

=renteafrund(500;A1:A2)

som så giver resultatet. Hvis du har 10 satser skriver du bare A1:A10
Avatar billede anedi Ekspert
13. juni 2018 - 12:36 #7
Mange tak alle tre for gode idéer. VBA funktionen blev løsningen her.

Vh
Anedi
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

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