Gå till innehåll

Indexmatch med två kolumnrubriker


Gå till lösning Löst av 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

Länk till kommentar
Dela på andra webbplatser

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.

Länk till kommentar
Dela på andra webbplatser

  • Lösning

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
Länk till kommentar
Dela på andra webbplatser

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
 

Länk till kommentar
Dela på andra webbplatser

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?😁

Länk till kommentar
Dela på andra webbplatser

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! 

 

Redigerad av Deppodi
Länk till kommentar
Dela på andra webbplatser

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

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

×
×
  • Skapa nytt...