Avatar billede idani Praktikant
10. august 2012 - 09:22 Der er 6 kommentarer og
1 løsning

Lookup på en bestemt kombination over 2 celler

Jeg arbejder Excel 2007.

I forbindelse med nogle beregninger som skal fortages månedsvis har jeg en liste med vikarer og barslende.
Både vikarer og barslende kan optræde flere gange både i samme og forskellige kombinationer.

Opsætningen er som følger

A1: overskrift Vikar
B1: overskrift Barslende
A2-AXX: Cpr nr Vikar
B2-BXX: Cpr nr Barslende.

Jeg har behov for at kunne finde nogle data ud fra den kombinationen mellem værdierne i Ax & Bx.

Jeg kan ikke lige gennemskue hvilken formel - og hvordan jeg lige gør det??
Forslag

Hiseln
Ida
Avatar billede mireigi Novice
10. august 2012 - 10:49 #1
Kan du give nogle eksempler på data du gerne vil lave opslaget ud fra, og hvad det skal slå op i?
Avatar billede idani Praktikant
10. august 2012 - 11:05 #2
Ark1.

Kolonne A: Vikar Cpr nr
Kolonne B: Barslende Cpr nr

Ark2.
Kolonne A: Vikar cpr nr
Kolonne B: Barslende cpr nr
Kolonne C: Vikar Start Dato
Kolonne D: Vikar slut Dato

--------------------------------------------------

da refusionen afhænger af den dato hvor vikare starter, dog tidligst dagen for orlovens begyndelse, så er det vigtigt for mig at kunne slå kombinationen af vikar & barslende i Ark 1 op i Ark2 - sådan at jeg kan få returneret vikarens start dato

Hilsen
Ida
Avatar billede mireigi Novice
10. august 2012 - 15:54 #3
Den er lidt kringlet, men her er den:
=LOPSLAG(B2;INDIREKTE(SAMMENKÆDNING("'Ark2'!B";2+SAMMENLIGN(A2;'Ark2'!A2:A4;-1)-1;":C";2+SAMMENLIGN(A2;'Ark2'!A2:A4;1)-1));2;1)


Den kræver dog at datene på ark 2 er sorteret først efter Vikar CPR nr og efterfølgende af Barslende CPR nr.
Avatar billede idani Praktikant
13. august 2012 - 09:45 #4
Hej Mireigi

Super godt - takker for hjælpen.

Jeg har lidt flere steder hvor jeg kan se at INDIREKTE formlen kan hjælpe mig gevaldig.

Dog har jeg svært ved at gennemskue hvordan den benyttes.
Jeg har googlet lidt rundt, men syntes ikke det er helt klart - kunne jeg evt lokke dig til at sætte et par ord på ?

Og så må du meget gerne smide et svar også - sådan at du kan få point for det

hilsen
ida
Avatar billede mireigi Novice
13. august 2012 - 14:39 #5
Velbekomme.

Jeg kan se at du har oprettet et spørgsmål om netop INDIREKTE, hvorfor jeg henviser til min forklaring deri.
http://www.eksperten.dk/spm/967330

Tilfældet her er noget mere avanceret end den normale brug af INDIREKTE, da den her bruges sammen med andre formler, til at fastslå et område, hvorfra der skal hentes et del-område.

Denne slags funktionalitet findes ikke i Excel, hvorfor jeg har "snydt" en løsning.

SAMMENKÆDNING kombinerer flere tekste strenge til én samlet.
SAMMENLIGN finder den lodrette placering af en værdi i et område.
INDIREKTE laver en dynamisk reference ud fra en tekst streng.

I løsningen bruger jeg SAMMENLIGN til at finde den lodrette position på det første og sidste Vikar CPR nr, hvor disse er ens.

SAMMENLIGN(A2;'Ark2'!A2:A4;-1)
Finder værdien i A2, i området A2:A4 på Ark2, og returner den lodrette placering af første (-1) forekomst.

SAMMENLIGN(A2;'Ark2'!A2:A4;1)
Finder værdien i A2, i området A2:A4 på Ark2,og returner den lodrette placering af sidste (1) forekomst.

Da dataene på Ark2 er sorteret efter først Vikar CPR nr og derefter Barslende CPR nr, er alle CPR numre i begge grupper, samlet i stigende orden.

Derfor er alle relevante Barslende CPR numre for det ønskede Vikar CPR nr samlet mellem første og sidste lodrette position, som vi fandt ovenfor.

I kolonne B står Barslende Vikar CPR nr, men startdatoen står i kolonne C. Derfor skal vi lave et opslag i kolonne B, og finde værdien i kolonne C på samme række. Dertil bruger vi LOPSLAG

Værdierne i området starter på række 2, hvorfor vi tager højde for dette også. For at finde start og slut række, ligger vi den lodrette position til startrækken (2).

For at sikre at vi rammer den rigtige række, trækker vi 1 fra den lodrette placering vi fandt med SAMMENLIGN, da denne vil give placering 1, for første lodrette position, og ellers forskubbe rækken med 1.

Da vi starter på kolonne B, og skal have værdien i kolonne C, vil første kolonne i LOPSLAG være B, mens anden vil være C. Derfor angiver vi at det er kolonne 2 vi ønsker resultatet fra.

Til sidste angiver vi at der skal findes et præcist match. Dvs store og små bogstaver samt tegn for tegn sammenligning. Dette gøres ved at skrive 1 eller SANDT.

Beregner vi formlen, får vi følgende:
=LOPSLAG(findVærdi;findIOmråde;ResultatKolonne,Præcis?)

=LOPSLAG(B2;INDIREKTE(SAMMENKÆDNING("'Ark2'!B";2+SAMMENLIGN(A2;'Ark2'!A2:A4;-1)-1;":C";2+SAMMENLIGN(A2;'Ark2'!A2:A4;1)-1));2;1)

=LOPSLAG(B2;INDIREKTE("'Ark2'!B" & 2 + minLodPos - 1 & ":C" & 2 + maxLodPos - 1);2;1)

minLodPos = 1
maxLodPos = 2

=LOPSLAG(B2;INDIREKTE("'Ark2'!B" & 2 + 1 - 1 & ":C" & 2 + 2 - 1);2;1)

=LOPSLAG(B2;INDIREKTE("'Ark2'!B" & 2 & ":C" & 3);2;1)

=LOPSLAG(B2;INDIREKTE("'Ark2'!B2:C3");2;1)

=LOPSLAG(B2;'Ark2'!B2:C3;2;1)


Det er som sagt meget kompliceret og tager timer, hvis ikke uger at finde rundt i den jungle det hurtigt kan blive. Det er dog et meget stærkt værktøj, når man kan finde ud af at kombinere det.

Heldigvis skulle du kun bruge opslag på 2 værdier for at finde en tredje. Du kan sikkert selv forestille dig, hvor kompliceret det var blevet med 3 værdier for at finde en fjerde :)
Avatar billede idani Praktikant
15. august 2012 - 13:27 #6
Hej Mireigi

Tak for en super god forklaring, jeg vil absolut lege videre med funktionen - den er ret cool ;o)
Kunne jeg ikke få dig til at smide et svar - sådan at du kan få dine point ;o)

/Ida
Avatar billede mireigi Novice
15. august 2012 - 15:11 #7
Velbekomme :)

Godt at du kan bruge det.
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