Avatar billede peto Nybegynder
10. november 2008 - 22:50 Der er 18 kommentarer og
1 løsning

optimér en gættet værdi

Hej
Jeg skal i starten af et større regnestykke angive en længde (målt i milimeter)og efter en masse udregninger finder jeg så ud af om den gættede værdi er nok til at overholde maksimal værdien. Jeg vil gerne så tæt som muligt på maksimal værdien for at få den bedste udnyttelse. Hvordan laver jeg selve beregningen så excel automatisk optimere på mit gæt. Håber det er til at forstå.
et simpel eksempel kunne være følgende:
L = 100(gæt)
formlen lyder: L*4/25*0,04<5. (meget mere simplet end det jeg regner på)
Nu kunne jeg begynde at gætte indtil jeg kommer lige under 5. men det var da sjovere at excel selv gjorde det.
mvh Peto
Avatar billede jkrons Professor
10. november 2008 - 23:25 #1
Prøv Målsøgning.

L = A1.

Din formel i B1: =A1*4/25*0,04

Marker B1. Vælg Funktioner - Målsøgning. I ruden Angiv celle, står allerede B1. I ruden Til værid, skriver du fx 4,999999999. I ruden Ved ændring af celle skriver du A1. klik på OK.
Avatar billede peto Nybegynder
11. november 2008 - 07:00 #2
hej jkrons
Det er en mulighed jeg kendte, derfor skrev jeg at det ville være rart om der findes en løsning der kunne gøre det automatisk, så jeg ikke hver gang skal køre målsøgning. men tak for svaret.
Hører gerne andre muligheder
Peto
Avatar billede jkrons Professor
11. november 2008 - 08:06 #3
Jeg er ikke helt klar over, hvad du mener med "automatisk", men en mulighed kunne være at lægge en makro på Worksheet_Change hændelsen. Nedenståedne forudsætter stadig, at værdien, der skal findes står i A1 og formlen i B1. I C1 skal du indtaste den værdi, som du ønsker at nå i B1. Koden skal lægges i arkets kodemodul:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c1")) Is Nothing Then
        Range("B1").GoalSeek Goal:=Range("C1"), ChangingCell:=Range("A1")
    End If
End Sub

Hvis det du mener er, om Excel kan gøre det med en formel, er svaret nej, da der er tale om en ligning, og Excel kan ikke løse ligninger med formler.
Avatar billede excelent Ekspert
11. november 2008 - 19:16 #4
Indsæt formel, marker celle, tast F2 og afslut med CTRL+SHIFT+ENTER

I ovenstående eks. er resultat : L=781 og største tal <= 5 er 4,9984

=INDEKS(RÆKKE(1:65500);SAMMENLIGN(MAKS(HVIS(RÆKKE(1:65500)*4/25*0,04<=5;RÆKKE(1:65500)*4/25*0,04));RÆKKE(1:65500)*4/25*0,04);0)
Avatar billede excelent Ekspert
11. november 2008 - 19:19 #5
hvis det ellers er heltal vi skal finde
Avatar billede peto Nybegynder
11. november 2008 - 19:50 #6
hej excelent
Ja det er et heltal vi skal finde!

Nu er jeg ikke lige en haj til excel, så det kan godt være at jeg ikke helt forstår dit forslag. kan din formel håntere at værdien 5 er variabel? Der indgår omkring 50 formler inden jeg når fra "L" til sammenligningen med værdien "5", håber du forstår.

mvh Peto
Avatar billede peto Nybegynder
11. november 2008 - 19:51 #7
Hej jkrons

Prøver lige din kode, men når det nok først engang i morgen, da fruen arbejder.
mvh Peto
Avatar billede excelent Ekspert
11. november 2008 - 19:54 #8
Her er 5 skiftet ud med værdien i celle A1
hvis det er det du mener

=INDEKS(RÆKKE(1:65500);SAMMENLIGN(MAKS(HVIS(RÆKKE(1:65500)*4/25*0,04<=A1;RÆKKE(1:65500)*4/25*0,04));RÆKKE(1:65500)*4/25*0,04);0)
Avatar billede peto Nybegynder
11. november 2008 - 20:06 #9
hej excelent
prøvede lige at sætte den i excel B4 og fik #I/T, er der en årsag til det?
A1 var = 5
Avatar billede peto Nybegynder
11. november 2008 - 20:12 #10
hej excelent
det var vist mig der ikke helt forstod det. virker ok
skal have det afprøvet i en større sammenhæng
mvh Peto
Avatar billede peto Nybegynder
12. november 2008 - 20:32 #11
hej Jkrons
Det er min debut med VBA, så det er måske godt med lidt ekstra forklaring
jeg har indsat:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c1")) Is Nothing Then
        Range("B1").GoalSeek Goal:=Range("C1"), ChangingCell:=Range("A1")
    End If
End Sub
ved at gå i makrio visual basic og derinde vælge modul, derefter gem og luk.
Er det korrekt? og hvad skal der ske i excel udover formel og værdier i A1 og C1.
mvh
Peto
Avatar billede peto Nybegynder
12. november 2008 - 21:16 #12
Hej jkrons
Hvis man bliver ved, finder man en løsning, nu har jeg fået det til at virke og skal lige have det prøvet af.
Vender tilbage
mvh Peto
Avatar billede jkrons Professor
12. november 2008 - 23:10 #13
Hvis du har lagt koden det rigtige sted (højreklik på arkfanen og vælg Vis kode), skulle det gerne være sådan, at når du taster noget i C1, ændrer den værdien i A1 og resultatet i B1.
Avatar billede peto Nybegynder
13. november 2008 - 17:20 #14
Jeg har fået den til at virke, nu skal jeg lige have den flettet ind i en større beregning. men det burde jo nok virke, da koden vel er sammenlignlig med målsøgning
Avatar billede jkrons Professor
13. november 2008 - 18:57 #15
Det er den helt præcist :-)
Avatar billede peto Nybegynder
13. november 2008 - 21:20 #16
Så fik jeg lige det sidste på plads og pointene er dine jkrons. Det er rigtig godt :-)
jeg siger tak til jer der deltog.
Jeg lukker tråden.
Avatar billede peto Nybegynder
13. november 2008 - 21:47 #17
Så fik jeg lige det sidste på plads og pointene er dine jkrons. Det er rigtig godt :-)
jeg siger tak til jer der deltog.
Jeg lukker tråden.
Avatar billede peto Nybegynder
13. november 2008 - 21:49 #18
hej Jkrons
hvordan lukker jeg lige, så du får point
Avatar billede jkrons Professor
13. november 2008 - 22:13 #19
Jeg svarer, og du accepterer :-)
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