Jump to content

Indexmatch med två kolumnrubriker


Go to solution Solved by MH_,

Recommended Posts

Hej!

 

Jag har ett dokument på jobbet som jag inte kan redigera, det är låst och jag har ingen möjlighet till att ändra rubrikerna. Kan någon hjälpa mig med en indexmatch formel? 

I min exempelfil så vill jag skriva =vlookup mot artikelnumret, från tabellen A1:M6, och kolumn index nummret är det jag vill försöka få fram automatiskt. 

I min fil så ser ni att jag försöker hitta värdet som finns i G4. Först försöker jag matcha mot kolumnerna "Pris/Specialpris/Superduperpris" och sen försöker jag matcha det mot "EUR/SEK/NOK/DKK". 

 

Hade jag fått välja själv så hade jag bytt namn på kolumnerna så att varje rubrik hade ett eget värde. Hade varit mycket lättare att hlookup på "Pris EUR" eller "Specialpris SEK". 

 

 

Indexmatch.xlsx

Link to comment
Share on other sites

Jag tror att det kommer att spricka på att INDEX-formeln alltid kommer att hitta första kolumnen med tex "SEK", dvs kolumn 3.

Du måste förmodligen bygga dynamiska areor/arrayer, tex om du letar efter "Specialpris" måste arean enbart omfatta den arean. Problemet blir då att du inte kan använda kolumn A att söka efter.

Link to comment
Share on other sites

  • Solution

Det klassiska sättet är att helt enkelt slå ihop söksträngen och text-strängarna i sökmatriserna med hjälp av &

=PASSA(B9&B10;A1:M1&A2:M2;0)

eller sammanfoga om du tycker att det är enklare

=PASSA(SAMMANFOGA(B9;B10);SAMMANFOGA(A1:M1&A2:M2);0)

Då får du inte träff förrän både Valuta och pristyp stämmer

 

Ett mer logiskt sätt är att skapa en 0/1 matris (sant=1, falskt =0)

=(A1:M1=B9)*(A2:M2=B10)

Det blir bara 1 när båda villkoren är sanna. Då kan du köra en PASSA där villkoret är att svaret skall vara 1

=PASSA(1;(A1:M1=B9)*(A2:M2=B10);0)

Och din LETARAD blir någonting i stil med:

=LETARAD(B8;A3:M6;PASSA(B9&B10;A1:M1&A2:M2;0);0)
eller
=LETARAD(B8;A3:M6;PASSA(1;(A1:M1=B9)*(A2:M2=B10);0);0)

Eller också kör du PASSA/Index hela vägen (OBS! PASSA-formeln för kolumn tittar bara i B-M kolumnerna eftersom Index-området startar i B)

=INDEX(B3:M6;PASSA(B8;A3:A6;0);PASSA(1;(B1:M1=B9)*(B2:M2=B10);0))

Enligt Excel-gurus det bästa sättet eftersom det är lite resurssnålare.  Men i praktiken inget du behöver bry dig om så länge filen håller sig inom rimliga gränser.

  • Like 1
Link to comment
Share on other sites

Jag tyckte jag kände igen de formler du har angett MH_. I mitt fall skulle jag avläsa i en tabell hur mycket
jag skulle vinna på stryktipset om jag t.ex hade 10 rätt och matchen var ogarderad eller halvgarderad.
Det du glömt att skriva i hastigheten är att formeln skall omges med {  } tecknen d.v.s 
tryckas in med Ctrl+Shift+Enter. Då fungerar dom.
I mitt fall använde jag INDEX/PASSA som då kändes enklast, men LETARAD är också ok och kortare.
MVH
LGS
 

Link to comment
Share on other sites

Nja. Det beror på.

I nyare Excel är matrisformler standard. Så Ctrl+Shift+Enter behovs inte.

Å andra sidan måste man ibland skriva @-tecken för att Excel skall fatta att det INTE är en matris.

Vem har lovat att det skall vara enkelt?😁

Link to comment
Share on other sites

Tack @MH_!! Så himla bra :wub: Det är med glädje att logga in här, hitta svaret, testa formlerna, se att det fungerar - skratta lite åt att det är så snyggt gjort - och samtidigt passa på att fylla på den egna ryggsäcken med mer excelkunskap. Mycket bra och som vanligt uppskattat! 

 

Edited by Deppodi
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...