Avatar billede some-one Nybegynder
19. april 2009 - 15:12 Der er 18 kommentarer og
1 løsning

Søger Excel genier som er frisk på en udfordring med procenter og afrunding

Hej.
Jeg er slet ikke skarp i Excel (læs: rutineret begynder), og har en hel del (læs: mange!) linier som skal rettes i værdi. Det kunne jo gøres manuelt, men da jeg skal nå andet end dette i år, så skal computeren gøre det for mig :)

Jeg har disse linier (eksempel): (a2 - a11)
12
15
40
76
102
55
53
847
5
17

Disse tal skal "rettes" til således at:
1) Alle værdier (a2-a11) bliver ganget med en procentsats som f.eks. 20%.
2) Værdi 0 - (til og med) 10 skal ændres til: 12
3) Værdi 11 - (til og med) 20 skal ændres til: 20
4) Værdi 21 - (til og med) 40 skal ændres til: 40
5) Værdi 41 - (til og med) 60 skal ændres til: 60
6) Værdi 61 - (til og med) 80 skal rettes til: 80
7) Værdi 81 - (til og med) 100 skal rettes til: 100

Dvs. ovenstående liste med tal kommer til at hedde:
Oprindelig værdi: 12+20%=14,4 - afrundet: 15 som er facit
Oprindelig værdi: 15+20%=18 - afrundet: 20 som er facit
Oprindelig værdi: 40+20%=48 - afrundet: 60 som er facit
Oprindelig værdi: 76+20%=91,2 - afrundet: 100 som er facit
Oprindelig værdi: 102+20%=122,4 - afrundet: 140 som er facit
Oprindelig værdi: 55+20%=66 - afrundet: 80 som er facit
Oprindelig værdi: 53+20%=63,6 - afrundet: 80 som er facit
Oprindelig værdi: 847+20%=1016,4 - afrundet: 1020 som er facit
Oprindelig værdi: 5+20%=6 - afrundet: 12 som er facit
Oprindelig værdi: 17+20%=20,4 - afrundet: 40 som er facit

Tilsidst står jeg så tilbage med en række tal (se ovenfor) som stillet op på række hedder:
15
20
60
100
140
80
80
1020
12
40

Derved har jeg så fået en pæn række tal hvilket er målet.

PS. Det er kun op til 10 at tallet skal hedde hedde 12, for ellers skal alle facit ende på hhv. 0, 20, 40, 60, 80, således at mine facit hedder:
10,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,360,380,400 osv.
Havde der nu været en værdi som hed 802 skulle denne altså rundes op til 820 og ikke 810! 10 som facit er kun 0 - 10 og ikke f.eks. 105, 802 eller andet. Disse skal rundes op til x20 (120, 820 m.v.)

Håber der er nogen som er friske på en udfordring!
Avatar billede vejmand Juniormester
19. april 2009 - 16:39 #1
Start med at skrive 120% i C1 (Formateret som %)
Skriv følgende i B1:
=HVIS(A1<=10;12;HVIS(A1<=12;AFRUND.LOFT((A1*C$1);15);AFRUND.LOFT((A1*C$1);20)))

Kopier formlen ned i B kolonnen.

Håber det er sådan du ønsker det.  :-)
Avatar billede vejmand Juniormester
20. april 2009 - 19:38 #2
Har du afprøvet mit forslag?
Avatar billede ulykken-smed Juniormester
20. april 2009 - 19:46 #3
Kan vopslag ikke bruges til at løse problemet
Avatar billede vejmand Juniormester
20. april 2009 - 19:58 #4
ulykken-smed >> Kan du uddybe den lidt?
Avatar billede ulykken-smed Juniormester
20. april 2009 - 20:02 #5
Jeg prøvede lige at lave en lille tabel med vopslag , og hvad jeg kunne se så fandt den selv den værdi så lå over, og så kan man bare skrive den oprundet værdi neden under
Avatar billede vejmand Juniormester
20. april 2009 - 20:08 #6
Okay, jeg må desværre sige at jeg ikke forstår det, men det er jo heller ikke mig som skal bruge det.  :-)
Avatar billede ulykken-smed Juniormester
20. april 2009 - 20:25 #7
Nu har jeg lige prøvet igen, og kan da godt se at det virker da ikke helt rigtig, så det dur ikke med vopslag :-(
Avatar billede some-one Nybegynder
21. april 2009 - 22:00 #8
Sorry for delay :)
Jeg har lige prøvet det, og det lader til at det er PRÆCIST hvad jeg mangler!
Der er dog et par detaljer i dit script, og da jeg ikke selv kan finde hoved og hale i det, så håber jeg, at du vil rette det til.
Here goes:

Værdi: (= hvis man skriver tallet, så scriptet skal kode det til hvad jeg ønsker)
11+12 bliver 15 og ikke 20 (som ønsket)
18+19+20 bliver 40 og ikke 20 (som ønsket)
35+36+37+38+39+40 bliver 60 og ikke 40 (som ønsket)
53 til og med 60 bliver 80 og ikke 60 (som ønsket)
70 til og med 86 bliver 100 og ikke 80 (som ønsket)
og endeligt: 87 til og med 100 bliver 120 og ikke 100. (som ønsket)
Ovenstående er i hvertfald hvad jeg oplever i Excel.

Men altså bortset fra at der vidst er en lille fejl et sted, så er det præcist hvad jeg ønsker at det skal ka ku!

Hvis du selv vil have lidt tal og teste med, så kan jeg lige spare dig for at skrive tallene 1 - 100 :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

De bedste hilsner herfra!
Avatar billede vejmand Juniormester
22. april 2009 - 01:11 #9
Jeg forstår desværre ikke hvad det er du ønsker som resultat?

Du har denne række øverst i dit oprindelige spørgsmål:
12
15
40
76
102
55
53
847
5
17

Som jeg forstår det, skal de blive til det du har skrevet nederst:

15
20
60
100
140
80
80
1020
12
40

Det gør de, hvis du bruger min formel.

Men jeg har nok ikke helt forstået hvad du ønsker?
Avatar billede some-one Nybegynder
22. april 2009 - 21:34 #10
Jeg ønsker at uanset om der står 20, 543, 564343, 432423423, 86, 144 eller noget helt andet så skal den runde op til nærmeste 20.

Dvs. 18 = (skal runde op til) 20
543 = 560
564343 = 564360
432423423 = 432423440
86 = 100
144 = 160


Man kan sige... uanset hvilket tal der er tale om (talspekter 1-10 er noget andet) så skal tallet ende på 20, 40, 60, 80 eller 00.

Og jeg ønsker desuden at scriptet kan håndtere 7000 tal på én gang. Ved ikke om der er nogen begrænsninger nogen steder, men jeg får altså ikke helt de rigtige tal når jeg sætter 1 - 100 ind. Ovenstående tal var blot eksempler.
Avatar billede some-one Nybegynder
22. april 2009 - 21:34 #11
7000 tal = 7000 linier
Avatar billede vejmand Juniormester
23. april 2009 - 08:24 #12
Jamen, hvad blev der så af de 20% du skrev om????

Jeg forstår ikke helt disse linier i det oprindelige spørgsmål:

1) Alle værdier (a2-a11) bliver ganget med en procentsats som f.eks. 20%.
2) Værdi 0 - (til og med) 10 skal ændres til: 12

Oprindelig værdi: 12+20%=14,4 - afrundet: 15 som er facit

Spørgsmålet er meget forvirrende, det er helt sikkert ingen problem at lave det, jeg skal bare vide hvad det er du ønsker.
Avatar billede some-one Nybegynder
23. april 2009 - 20:01 #13
Okay. Sorry :) Prøver igen :)

1) Jeg har en lang række tal som skal ændres lidt. Dette har du nok forstået.
2) Alle tal skal der lægges en procentsats til. F.eks. 20%. Metoden som du har skrevet er rigtig god!
3) Alle tal skal derfor rundes op til nærmeste 20, således at uanset hvilket tal der er tale om så ender det på 00, 20, 40, 60 eller 80.

Eksempel => "Tallet 246"

a) 246 er det oprindelige tal. Altså tallet helt fra start - inden vi har ændret noget.
b) Nu lægger vi 20% til 246 og dette kunne f.eks. siges 1,20*246=295,2.
c) Nu har vi lagt 20% til vores tal, 246, og dette tal hedder derfor 295,2 nu.
d) Dette tal er dog ikke særligt "pænt", hvorfor der rundes op til nærmeste 20. I dette tilfælde "300" som er vores facit.

Håber dette er mere forståeligt :) Ellers må du endelig sige til
Avatar billede some-one Nybegynder
23. april 2009 - 20:04 #14
En tilføjelse: Hvis nu tallet er én af følgende: 1,2,3,4,5,6,7,8,9,10,11,12 så skal tallet være 15. Uden nogen procentsats og uden nogen yderligere oprunding.
Men dette skal ikke gælde for f.eks. 101. Dette tal (101) skal blive til 125 (efter min procentsats og efter oprunding til nærmeste 20) (se eksemplet i ovenstående kommentar)

Håber det giver mening
Avatar billede vejmand Juniormester
23. april 2009 - 20:40 #15
Du skriver: Hvis nu tallet er én af følgende: 1,2,3,4,5,6,7,8,9,10,11,12 så skal tallet være 15. Uden nogen procentsats og uden nogen yderligere oprunding.

Du skriver også: 11+12 bliver 15 og ikke 20 (som ønsket)


Hvordan hænger det sammen???

Men vi prøver igen:
=HVIS(A1<=12;15;AFRUND.LOFT((A1*C$1);20))

Denne formel ændrer tallene 1,2,3,4,5,6,7,8,9,10,11,12 til 15
(Som du lige har skrevet at du ønsker)
Alle andre tal tillægges 20% og rundes derefter op til nærmeste 20
(Som du også lige har skrevet at du ønsker)

Derfor bliver 17+18+19+20 til 40, da de jo er over 20 når de tillægges 20%
Og 34+35+36+37+38+39+40 bliver til 60, da de jo er over 40 når de tillægges 20%

Du bliver altså nødt til at bestemme dig for hvilket resultat du ønsker, ellers kan vi jo blive ved i al evighed.  :-)
Avatar billede vejmand Juniormester
23. april 2009 - 20:44 #16
Jeg forstår heller ikke denne her:
Men dette skal ikke gælde for f.eks. 101. Dette tal (101) skal blive til 125 (efter min procentsats og efter oprunding til nærmeste 20) (se eksemplet i ovenstående kommentar)


101 + 20% = 121,2
Oprundet til nærmeste 20 = 140

Det er altså meget forvirrende det du skriver.....
Avatar billede some-one Nybegynder
23. april 2009 - 21:15 #17
Beklager sgu mange gange, vejmand!
Men du er kommet i mål. Scriptet virker præcist som det skal med dit script i #15. Det er bare mig der ikke kan regne (derfor denne tråd :D - eller noget... hehe)

Det er præcist som det skal være nu, og jeg siger MANGE gange TAK! - og du får selvf. points.

Jeg skal nok huske på dig, næste gang Excel skal gøre noget smart.

Igen: Mange mange mange tak, Vejmand!

De bedste hilsner,
Michael J.
Avatar billede vejmand Juniormester
23. april 2009 - 21:59 #18
Velbekomme, og tak for point.
Så lykkedes det jo alligevel.  :-)
Avatar billede some-one Nybegynder
23. april 2009 - 22:02 #19
Jeps. Vildt lækkert :)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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