08. februar 2001 - 14:27Der er
7 kommentarer og 2 løsninger
Excel p..!
Lige et enkelt spørgsmål vedr. et opslag i excel...
Vi er ved at lave nogle køsimuleringer og har fået nogle akk. sandsynligheder og en rækketidsintervaller - dette er stillet op i to kolonner.
Nu er problemet sådan at vi gerne have opslået en generet sandsynlighed mellem 0-1 (20 forskellige tal) i denne matrix af akk. sandsynligheder og tidsintervaller.
Vi har prøvet med LOPSLAG men det giver kun den værdi tættest på den akk. sandsynlighed og vi skal jo bruge den øverste grænse for den akk. sandsynlighed!
Det kan endvidere siges at det ikke kan lade sig gøre vha. if sætninger, da disse bliver for lange og for uoverskuelige!!!
I behøver slet ingen opslag for at løse problemet.
Da der er en matematisk sammenhæng mellem de to kolonner sandsynlighed og minutter kan problemet også løses matematisk.
I jeres opstilling er minutter(x) kendt og deraf beregnes sandsynlighed(y) således: y = 1 - EXP(-1/3 * x)
Den modsatte funktion af exponentialfunktionen er den naturlige logaritme (LN). Hvis man i stedet skulle prøve at isolere minutter(x) fås følgende funktion: x = LN(1 - y) * -3
De -3 er den reciprokke værdi af -1/3, altså 1/(-1/3).
Hvis vi indsætter 0,588793603320414 som er den første sandsynlighed på jeres liste fås: Minutter(x) = LN(1 - 0,588793603320414) * -3 fås Minutter(x) = 2,66598002650434
Meget matemarisk, men sæt formlen ind i regnearket og problemet er løst.
Følgende VBA funktion kan bruges til at findes nærmeste større værdi i enhver tabel der er sorteret stigende:
Function PopSlag(x As Range, P As Range, Kolonne) Dim Testops As Variant On Error Resume Next Testops = WorksheetFunction.Match(x, P.Columns(1), 0) If Err = 0 Then PopSlag = P(Testops, Kolonne) Else Testops = WorksheetFunction.Match(x, P.Columns(1), 1) PopSlag = P(Testops + 1, Kolonne) End If End Function
Lignende kan selvfølgelig også strikkes sammen i regnearket, idet der kun benyttes regnearksfunktioner
Enklere er det vel at sortere sandsynlighedstabellen faldende og så bruge )=sammenligning(,,-1) til at finde den ønskede række:
=INDEKS(p_x;SAMMENLIGN(opslag;x;-1)), hvor p_x er sandsynlighederne x er de tilsvarende tider
Nerøs\' er mest korrekt i min sammenhæng, men jeg skal senere bruge janvogt\'s m/afrundingen indbygget...
Tak igen! Jeg har fordelt point lidt efter formodet arbejdsindsats!!!
/Hiks
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.