Avatar billede martpe Nybegynder
25. januar 2006 - 10:14 Der er 9 kommentarer og
1 løsning

Opslag matrix

Følgende matrix:

KolA  KolB  KolC      KolD
10    11    12        AB
13    14    16        DC
15    17    18        FE

Jeg ønsker at slå et tal op i de 3 første rækker og kolonner - fx 11 - og få den til hørende værdi i kolonne D, altså AB.

Ønsket resultat: Søg "10" = AB
                Søg "16" = DC
                Søg "17" = FE

Håber der er hjælp at hente!
Avatar billede kabbak Professor
25. januar 2006 - 15:07 #1
=SLÅ.OP(G1;A1:C3;D1:D3)
hvor du har skrevet tallet den skal finde i G1
Avatar billede martpe Nybegynder
25. januar 2006 - 15:34 #2
Af en eller anden grund kan jeg ikke få det til at virke (også lige umiddelbart den formel jeg selv havde forsøgt...) - virker kun på søgninger i kolonne A, men ikke når jeg søger i efter en værdi, som kun er i kolonne B eller C...  nogle steder i matrixen har jeg tomme celler - kan det være derfor?
Avatar billede martpe Nybegynder
25. januar 2006 - 15:43 #3
Ok, har leget lidt med den. Hvis jeg kun har tal i matrix, så er der ingen problemer men så snart der ikke kun er tal men også tekst i nogle celler, så kan den kun slå rigtigt op i kolonneA... den slår dog tekst og tal ganske fint op i første kolonne..
Avatar billede kabbak Professor
25. januar 2006 - 16:38 #4
DU kan ikke blande dem

KolA  KolB  KolC      KolD
a    b      c      AB
13    14    16        DC
d    e      f      FE

sådan kan det gøres, mem altid i stigende orden
Avatar billede martpe Nybegynder
25. januar 2006 - 16:57 #5
ok, ærgeligt... især når det ark, der skal søges i har blandet tal over værdier over det hele. Jeg må prøve at finde en anden mulig indgangsvinkel til problemet men tak for hjælpen alligevel!
Avatar billede rosco Novice
25. januar 2006 - 20:38 #6
Hvad med at konvertere alle celler til tekstformat.
Avatar billede kabbak Professor
25. januar 2006 - 20:58 #7
her er en brugerdefineret


Public Function MatrixOpslag(Find, SøgeMatrix, ResultatMatrix)
op = SøgeMatrix
res = ResultatMatrix
Col = SøgeMatrix.Columns.Count
For i = 1 To UBound(op)
For x = 1 To Col
If op(i, x) = Find Then
MatrixOpslag = res(i, 1)
GoTo Slut
End If
Next
Next
Slut:
End Function
Avatar billede martpe Nybegynder
26. januar 2006 - 09:55 #8
Ihærdig forsøg, men desværre tror jeg at det er her min manglende erfaring med VBA kommer til udtryk. Er der noget der skal defineres, den kan vel ikke køre som makro? og der er vel en celle, der skal hedder noget ala =..?..()?

Har dog en mulighed for at opstille alle opslagsværdier i kolonneA, men igen er de både tal og tekst... kan det den vej rund lade sig gøre? (jeg er villig til at smide 50 point oveni for løsning, hvis du lige hjælper mig med hvordan det så gøre ;o)


KolA - søgeværdier                KolonneB - res.

Y60                                    For
50                                    Pet
Z40                                    Dkk
30                                    Sbs
30A                                    GHR
40B                                    fir

Håber at jeg kan finde en løsning... eller rettere at én kan hjælpe mig...
Avatar billede martpe Nybegynder
26. januar 2006 - 10:46 #9
Har selv fundet løsningen... opstiller søgeværdier i kolA og bruger nedstående:

=INDEKS(B6:B34;SAMMENLIGN(B3;A6:A34;0)), hvor b3 er den ønskede søgeværdi. Dog bil jeg gerne give mine 30 point til Kabbak (så send et svar) for i forsøget af alle dine forslag har jeg sgu lært en del... tak for hjælpen
Avatar billede kabbak Professor
26. januar 2006 - 11:27 #10
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