Avatar billede juahm Nybegynder
08. oktober 2007 - 15:20 Der er 11 kommentarer

Finde den laveste værdi af farvede celler.

Jeg har et binomial træ (option pricing) som kan se således ud.

            65
        50  60
    40  45  47
35  30  25  20

I excel er der blevet brugt betinget formatering til at farvelægge bestemte celler i træet med rød farve (eksempelvis de to sidste nederste tal i træet). Herefter skal den laveste værdi blandt de røde celler enten findes eller markeres med en anden farve.
Avatar billede jlemming Nybegynder
08. oktober 2007 - 15:39 #1
Er det kun i den nederste række, den skal kigge på røde tal. hvordan er dit træ indtastet(række/kolonne) samt hvor stor er det?
Avatar billede jlemming Nybegynder
08. oktober 2007 - 15:55 #2
må det være VBA løsning ?
Avatar billede juahm Nybegynder
08. oktober 2007 - 16:11 #3
Træet er i mit regneark på 8 perioder dvs. dobbelt så stort som det ovenstående (et simplificeret eksempel), desuden kan de røde tal ligge i hele træet. Det må gerne være en VBA løsning.
Avatar billede kabbak Professor
08. oktober 2007 - 18:57 #4
Function MindsteFarvede(r As Range) As Double
    Dim Tal() As Double, I As Integer
    I = 0
    For Each rr In r
        If rr.FormatConditions.Count > 0 Then
            ReDim Preserve Tal(I)
            Tal(I) = rr.Value
            I = I + 1
        End If
    Next
    MindsteFarvede = WorksheetFunction.Min(Tal)
End Function
Avatar billede kabbak Professor
08. oktober 2007 - 18:58 #5
nb. den retunerer den mindste farvedes værdi
Avatar billede juahm Nybegynder
09. oktober 2007 - 13:18 #6
Jeg kan ikke få den til fungere rigtigt.
Jeg har lavet en makro som kører funktionen.

Public Sub Findmindst()
    Dim r As Range
    Set r = Selection
    Dim d As Double

    d = MindsteFarvede(r)
   
    MsgBox "Mindste værdi " & d
End Sub

Public Function MindsteFarvede(r As Range) As Double
    Dim Tal() As Double, I As Integer
    I = 0
    For Each rr In r
        If rr.FormatConditions.Count > 0 Then
            ReDim Preserve Tal(I)
            Tal(I) = rr.Value
            I = I + 1
        End If
    Next
    MindsteFarvede = WorksheetFunction.Min(Tal)
End Function
Avatar billede juahm Nybegynder
09. oktober 2007 - 13:19 #7
Avatar billede juahm Nybegynder
09. oktober 2007 - 13:21 #8
Der er celler med en nulværdi, som ikke er farvede alligevel returnerer funktionen værdien 0, hvis der et 0 i træet.
Avatar billede kabbak Professor
09. oktober 2007 - 16:25 #9
hvad er kriteriet i de farvede celler.??
det skal nok bygges ind i funktionen.

Jeg har sat et kriterie mere på her


Public Function MindsteFarvede(r As Range) As Double
    Dim Tal() As Double, I As Integer
    I = 0
    For Each rr In r
        If rr.FormatConditions.Count > 0 And rr > 0Then
            ReDim Preserve Tal(I)
            Tal(I) = rr.Value
            I = I + 1
        End If
    Next
    MindsteFarvede = WorksheetFunction.Min(Tal)
End Function
Avatar billede juahm Nybegynder
10. oktober 2007 - 11:58 #10
Den reviderede udgave af koden medtager stadig andre celler end røde. 

Som du kan se på billederne er der i træet to celler med tal i hvert node, det øverste tal repræsenterer Stock Price og det nederste Option Price. Det er kun Option Price der er formateret. Meningen er, at den laveste røde Option Price skal findes,  og derefter skal den tilhørende Stock Price farves blå eller vises på anden måde.

Option Price cellerne er formateret således:

1.    Celler = 0 skal ikke formateres (stop hvis sand)
2.    Celler der ikke er mellem 0 og x-y skal ikke formateres (stop hvis sand)
3.    Celler  > 0 skal formateres rødt
4.    Celler >= x-y skal formateres rødt
Tak for hjælpen.
Avatar billede juahm Nybegynder
10. oktober 2007 - 12:02 #11
Det jeg mener med at cellerne ikke er formateret, er at de ikke har nogen farve, måske er det problemet. jeg har forsøgt lidt med Interior.ColorIndex = 3, men den kan ikke opfatte den røde farve.
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