15. november 2002 - 14:45Der er
15 kommentarer og 1 løsning
Opslag
Hej
Nu har jeg siddet og futtet rundt i alle spørgsmål vedr. opslag i Excel men har ikke fundet en løsning jeg kan bruge.
Jeg har nogle prislister hvor priserne fremkommer udfra en højde x bredde kunne være:
A1:E1 indeholder bredder A2:A5 indeholder højder
Jeg ønsker nu en funktion der kan slå prisen op udfra bredde x højde... og hvis bredden/højden ikke findes skal den tage den nærmeste STØRRE bredde/højde
Problemet med Index(sammenlign) er at listen skal være sorteret faldende for at dette fungerer og det kan ikke lade sig gøre i dette tilfælde....
'test lige denne funktion af. 'bruges sådan '=SpecialOpslag(hele området, Højden (nedad), bredden (henad))
Function SpecialOpslag(Area As Range, Højde As Double, Bred As Double) Dim dif As Double Dim i As Long, x As Long, y As Long, p As Integer dif = 100000 Set Area = Area For i = 1 To Area.Rows.Count If Area(i, 1) >= Højde And Area(i, 1) - Højde < dif Then dif = Area(i, 1) - Højde x = i End If Next dif = 100000 For i = 1 To Area.Columns.Count If Area(1, i) >= Bred And Area(1, i) - Bred < dif Then dif = Area(1, i) - Bred y = i End If Next SpecialOpslag = Area(x, y) End Function
Function SpecialOpslag(Area As Range, Højde As Double, Bred As Double) Dim dif As Double Dim i As Long, x As Long, y As Long dif = 100000 ' sætter en stor difference For i = 1 To Area.Rows.Count 'kører gennem alle celler i højre side 'Leder i disse celler efter den mindste værdi der er større end 'eller lig med højden If Area(i, 1) >= Højde And Area(i, 1) - Højde < dif Then dif = Area(i, 1) - Højde ' x angiver en rækken på en celle der opfylder betingelserne x = i End If Next
dif = 100000 'Kører gennem alle cellerne i øverste række For i = 1 To Area.Columns.Count 'Leder i disse celler efter den mindste værdi der er større end 'eller lig med bredden If Area(1, i) >= Bred And Area(1, i) - Bred < dif Then dif = Area(1, i) - Bred 'y angiver kolonnen på en celle der opfylser betingelserne y = i ' End If Next ' værdi ud for række x og kolonne y returneres SpecialOpslag = Area(x, y) End Function
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.