19. april 2009 - 15:12Der 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!
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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
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 :)
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.
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
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)
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. :-)
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.....
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.
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.