Avatar billede Morten Nybegynder
02. august 2007 - 00:25 Der er 6 kommentarer og
2 løsninger

Matrix opslag

Hey

For nogle år siden fik jeg hjælp til understående funktion:

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

Det var bak som lavede den til mig, nu vil jeg høre om nogen kan hjælpe med at omskrive den sådan at opslaget kan laves på tekst, sådan at der ledes efter en tekst.

Ovenstående funktion returnerer nærmeste større - det skal den naturligvis ikke da det jo er tekst...

-så kort og godt i celle a1 står der tekst1 og i celle a2 står der tekst2 nu skal jeg så finde værdien i skæringspunktet:

Matrix:

        tekst1  tekst3  tekst5
tekst2    2000    4000    6000
tekst4    1000    3000    5000
tekst6    2500    2600    2700

resultatet skulle så gerne være 2000

Håber nogen kan hjælpe...
Avatar billede gider_ikke_mere Nybegynder
02. august 2007 - 04:19 #1
Det må være sådan du mener:

Function MatrixOpslag(Area As Range, Horisontal As Variant, Vertikal As Variant)
  Dim i As Long, x As Long, y As Long
  Set Area = Area
  For i = 1 To Area.Rows.Count
    If Area(i, 1) = Horisontal Then
    x = i
    End If
  Next
  For i = 1 To Area.Columns.Count
    If Area(1, i) = Vertikal Then
    y = i
    End If
  Next
  SpecialOpslag = Area(x, y)
End Function
Avatar billede excelent Ekspert
02. august 2007 - 07:36 #2
Det kan alternativt klares med en matrix formel

=INDEKS(B6:E9;SAMMENLIGN(A2;A6:A9;0);SAMMENLIGN(A1;B5:E5;0))

B6:E9 er område med tal
A6:A9 er kolonne med tekst2, tekst4.. Osv
B5:E5 er række med tekst1, tekst3.. Osv
ret/udvid efter behov
Avatar billede luffeladefoged Praktikant
02. august 2007 - 09:11 #3
En anden (mulig?) løsning - kan være tung at vedligeholde, men kan være praktisk i mange tilfælde hvor et navn giver mere mening end en cellereference:
Name column B tekst1, col C tekst3, etc. Row2 navngives tekst2, row3 tekst4, etc. Herefter vil formlen "+tekst1 tekst2" give resultatet 2000. Rækkefølgen er ligegyldig, der skal blot være et mellemrum i formlen mellem de navneangivelser.
Avatar billede excelent Ekspert
17. august 2007 - 18:27 #4
hvordan går det ?
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 10:47 #5
Lidt respons!
Avatar billede Morten Nybegynder
22. august 2007 - 11:20 #6
projektet er droppet - smid svar så deler jeg pointene
Avatar billede excelent Ekspert
22. august 2007 - 11:26 #7
svar
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 11:26 #8
Ok.
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