27. maj 2008 - 21:53Der er
9 kommentarer og 1 løsning
Hvordan laver man et loft på en multiplikation i en formel i Exce
Hej
Jeg står med et problem som gerne skulle kunne løses vil jeg mene, men jeg har ikke selv været i stand til at finde løsningen dog :-)
Jeg skal lave en multiplikation af et vilkårligt tal(der skal kunne indgå decimaler også), med et andet tal INDTIL den når et loft som er speciferet. Og så ovenikøbet skal den skrive i en anden celle hvor mange gange den multiplicerede.
F.eks. kan loftet være 10, tallet den multiplicerer er 0.1 og tallet den multiplicerer med er 2.
Så skal den gøre således: 0.1*2 = 0.2 0.2*2 = 0.4 0.4 *2 = 0.8 0.8*2 = 1.6 1.6*2 = 3.2 3.2*2 = 6.4. Den stopper der fordi loftet er sat til 10; da det næste stykke ville være 6.4*2 = 12.8, som er over loftet. 6.4 ville være det ene resultat, og det andet ville være 6 fordi den skulle multiplicere 6 gange. Derefter udskriver den tallet 6.4 og tallet 6 i 2 separate celler, som skal kunne specificeres selvfølgelig.
Hvis jeg forstår dit spørgsmå, så skal vi løse det matematisk :)
I det eksempel du skriver op, forsøger du at løse
10 > 0,1 * 2 ^ x
Hvor du vil have x så stor som mulig, men som heltal.
Det gøres, flytte lidt rund på udtrykket.
Vi starter med at dele med 0,1 på begge sider. Det giver os: 10 / 0,1 > 2 ^ x
Så tager vi den naturlige logaritmen på begge sider. Det giver os Ln ( 10 / 0,1 ) > Ln (2) * x
Ved at dele med Ln(2) på begge sider giver det os: Ln ( 10 / 0,1 ) / Ln (2) > x
Hvis vi i stedet sætte det lig med x, og så runder resultatet ned, vil det give os resultatat 6
Når vi så skal finde de 6,4 er det blot at indsætte det vi lige har fundet i 0,1 * 2 ^ x, hvor x så er 6, giver det de 6,4
Dette kan omskrives til formler på følgende måde. I a1 har du tallet, der skal multipliceres (0,1 i dit eksempel) I b1 har du tallet, der skal multiplicere med (2 i dit eksempel) I c1 har du tallet, der er loftet (10 i dit eksempel)
I d1 skriver du =RUND.NED(LN(C1/A1)/LN(B1);0) I e1 skriver du =A1*B1^D1
Jeg vil mene at ovenstående løser din problemstiling :)
Har lige et sidste spørgsmål hvis det er iorden; i Excel, jeg har en celle, a1 med et vilkårligt tal.
I celle b1 der vil jeg så gerne have at den skal lave et additions resultat, på den måde at den plusser a1 og lægger dem TIL(oveni) b1. Det vil sige, at hvis der står 5 i a1 og 10 i b1, så skal den lægge 5 oveni 10, så resultatet bliver 15. Og dernæst hvis jeg ændrer tallet i a1 til f.eks. 10, så skal den addere 10 OVENI de 15, som vi fik tidligere, så resultatet bliver 25. Det er meget simpelt i hovedet, den skal simpelthen bare plusse et tal fra en celle, og bare lægge til og lægge til hver gang jeg ændrer tallet i celle a1 :-) Det er simpelt i hovedet, men ikke simpelt for mig at få ind i en formel ;-)
Håber du kan hjælpe mig igen Christian, tak for hjælpen allerede! :-)
Det vil jeg ikke men at du kan lave uden brug af makro. Der skal være et eller andet som for makroen til at "starte". Hvis vi siger at du som du skriver har det tal du "indtaster" i a1, og du har dit "resultat", så er her to metoder du kan bruge.
Den første kode, "opdaterer" b1 med værdien fra a1, ved at du dobbeltklikker på b1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsNumeric(Cells(1, 1).Value) And IsNumeric(Cells(1, 2).Value) Then If IsNumeric(Cells(1, 1).Value) Then Cells(1, 2).Value = Cells(1, 2).Value + Cells(1, 1).Value End If End If End Sub
Den anden kode, "opdaterer" b1 med værdien fra a1, ved at du ændre værdien i a1 og trykker enter. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 1 And Target.Column = 1 Then If IsNumeric(Cells(1, 1).Value) And IsNumeric(Cells(1, 2).Value) Then Cells(1, 2).Value = Cells(1, 2).Value + Cells(1, 1).Value End If End If End Sub
Hej igen. Jeg fik dog en fejl da jeg prøvede at køre den; den siger således: Compile Error: Ambiguous name detected: Worksheet_Change Ved du hvad det kan være? Tak :-)
Nå grunden til at den ikke virker i min excel(Excel 2007) er vist pga. det er den nyeste version, og de koder du har skrevet har ikke relevans til 2007 (ifølge hvad de siger på experts exchange) Jeg dropper den bare, det er okay :-) Men tak for hjælpen!! Du skal have mange tak!
Synes godt om
Ny brugerNybegynder
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.