Avatar billede mp67533 Nybegynder
31. maj 2008 - 12:12 Der er 4 kommentarer og
1 løsning

Udarbejdelse beslutningsmodel til automatisk prioritering

Jeg er ved at udarbejde en række beslutningsmodeller, som skal udarbejdes automatisk på baggrund af noget importeret data. Det jeg mangler er en mekanisme til at foretage en prioritering mellem nogle alternativer. Jeg skal bruge de X bedste alternativer og der er Y alternativer. Dataen omkring dem er fordelt således at de forskellige alternativer, at de er blevet prioriteret i en række fra 1 til x - dataen er summeret i forhold til hvad det enkelte alternativ har fået af prioritet 1 til prioritet x.

Jeg ønsker så at der foretages en sortering således at der indledningsvist skal ses på prioritet 1 - her ses om et alternativ har opnået et antal første prioriteringer der overstiger en fordelingsnøgle.

Herved skal der foretages en sekvensiel optælling hvor der først ses på 1. prioritet, så 2. osv. ind til x. prioriteten. Det er vigtigt at der først ses på prioritet, dernæst på fordelingsnøglen og mellem x pladsen og x+1 så skal der ses på næste prioritet...

Ved godt det lyder meget forvirrende - og vil meget gerne supplere med uddybende oplysninger eller sende mit dokument. Det må gerne laves via en VBA som manuelt skal aktiveres
Avatar billede mp67533 Nybegynder
31. maj 2008 - 12:20 #1
Jeg har forsøgt mig med at lave en kode, hvor jeg så at sige "indkoder" ved hvilken prioritet det enkelte opnår en vurdering over fordelingsnøglen - og så spytter dem ud i en række. Problemet er blot, at den ikke sammenligner de forskellige tal for i tilfælde af stemmelighed mellem alternativerne så skal der ses på næste prioritet! Det er således vigtigt at jeg får at vide hvilken række følge alternativerne prioriteres i - og ikke blot hvilke x alterntiver jeg skal vælge.

---

For i = 1 To antal_alternativer(x)
y = 0
    Fordelingsnøgle = Range("A2").Value
    For x = 1 To pladser
    stemmer(i, x) = Range("A2").Offset(i, x).Value
            y = y + stemmer(i, x)
        If Not y < FT Then
            t_navn(i) = Range("a2").Offset(i, 0).Value
            t_plads(i) = x
            t_stemmer(i) = y
            x = pladser
        End If
    Next x
Next i

For i = 1 To kandidat_antal(1)
    Range("A20").Offset(i, 0).Select
        With ActiveCell
            .Value = t_navn(i)
            .Offset(0, 1).Value = t_plads(i)
            .Offset(0, 2).Value = t_stemmer(i)
        End With
Next i
Avatar billede mp67533 Nybegynder
31. maj 2008 - 12:22 #2
og så retter jeg lige i forhold til at variablerne hedder det samme ;)

For i = 1 To antal_alternativer(x)
y = 0
    Fordelingsnøgle = Range("A2").Value
    For x = 1 To pladser
    stemmer(i, x) = Range("A2").Offset(i, x).Value
            y = y + stemmer(i, x)
        If Not y < Fordelingsnøgle Then
            t_navn(i) = Range("a2").Offset(i, 0).Value
            t_plads(i) = x
            t_stemmer(i) = y
            x = pladser
        End If
    Next x
Next i

For i = 1 To antal_alternativer(i)
    Range("A20").Offset(i, 0).Select
        With ActiveCell
            .Value = t_navn(i)
            .Offset(0, 1).Value = t_plads(i)
            .Offset(0, 2).Value = t_stemmer(i)
        End With
Next i
Avatar billede mp67533 Nybegynder
31. maj 2008 - 14:31 #3
Er kommet lidt tættere på via denne kode:

k_stemmer = Range("A21:H30")

For x = 1 To pladser
    For i = 1 To antal_kandidater
        If brugt_dummy(i) = 0 Then
            If Not k_stemmer(i, x + 1) < FT Then
                plads(t) = k_stemmer(i, 1)
                valgt(t) = x
                brugt_dummy(i) = 1
                t = t + 1
                If t - 1 = pladser + 1 Then
                    For t_test = 1 To pladser
                        If valgt(t_test) = valgt(pladser + 1) Then
                            brugt_dummy(t_test) = 0
                            t = t - 1
                        End If
                    Next t_test

                End If
            End If
        End If
    Next i
Next x

Der er dog stadigvæk nogle problemer når den skal vurdere Xpladsen med X+1, X+2 osv. har et eksemp hvor der er lighed mellem 7 & 8 pladsen alternativ 1 og 5 i prioritet 4. Der skal den så se på prioritet 5 hvor der nu er lighed mellem alternativ 1, 5 og 10. I prioritet 6 er der ikke længere lighed da alterntivt 1 har flest - derfor skal den indkode Alternativ 1 som Plads (7) og Valgt (7) skal være 6....
Avatar billede excelent Ekspert
31. maj 2008 - 19:33 #4
Prøv send en eks.fil som illustrerer problemet
pm@madsen.tdcadsl.dk
Avatar billede mp67533 Nybegynder
08. juli 2009 - 19:13 #5
never mind
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