Just nu i M3-nätverket
Jump to content

Söka och returnera värden i Resultatlista


Dingrot

Recommended Posts

Jag har en arbetsbok där jag på första bladet vill söka resultat på blad 2 från en tävling.

Man ska bara skriva in startnr så ska det komma upp med start i samma ruta som jag skrev. Förnamn och efternamn ska också läggas ihop i en ruta.

Hur fixar jag det här ?

Fil bifogas.

Resultatlista.xlsx

Link to comment
Share on other sites

Inte alls svårt :)

 

Enklaste formlerna blir det om du lägger in en kolumn på sök-bladet, en kolumn du sedan döljer, i vilken du skriver (jag antar att denna formel skrivs i kolumn B, rad 2)

=PASSA(A2;Tider!A:A;0)

I C, på rad 2, skriver du

=OMFEL(INDEX(Tider!B:B;B2) & " " & INDEX(Tider!C:C;B2);"")

 

Och på samma sätt i resten av kolumnerna.

 

Dock - du har Excel 2007. Nyttja detta. Gör om tabellerna på båda bladen till just tabeller, formatera dem som tabeller, och nyttja de namnen som då skapas i dina formler.

då kan formlerna bli så här fina

=PASSA([startnr];Tabell1[startnr];0)

=OMFEL(INDEX(Tabell1[[Förnamn ]];[sök]) & " " & INDEX(Tabell1[Efternamn];[sök]);"")

 

se bifogad fil.

Resultatlista.xlsx

Link to comment
Share on other sites

Namn kan du få fram med VTSÖK, tidigare LETARAD-funktion

 

=VTSÖK(StartNr;Tider;2;FALSK)&" "&VTSÖK(StartNr;Tider;3;FALSK)

 

dvs slår ihop för och efternamn ifrån dataområdet som jag namngivit till "Tider".

 

Samma funktion använder du för de övriga värden oxå, jag började med de två första kolumnerna så ser du skillnaden. bara att fortsätta om det är så du tänkte dig.

 

bifogar filen med ändringar

 

/M

Resultatlista_ny.xlsx

Link to comment
Share on other sites

Shape - :)

Jag var först :) :)

Och som jag brukar säga, om flera sökningar passar paret PASSA och INDEX bättre.

 

Och jag fattar INTE varför MS bytt namn på de två funktionerna. Okej, de är kortare nu...

Link to comment
Share on other sites

Namn kan du få fram med VTSÖK, tidigare LETARAD-funktion

 

=VTSÖK(StartNr;Tider;2;FALSK)&" "&VTSÖK(StartNr;Tider;3;FALSK)

 

dvs slår ihop för och efternamn ifrån dataområdet som jag namngivit till "Tider".

 

Samma funktion använder du för de övriga värden oxå, jag började med de två första kolumnerna så ser du skillnaden. bara att fortsätta om det är så du tänkte dig.

 

bifogar filen med ändringar

 

/M

 

Ja ok, men om jag slår in den enda löpare som finns nu. -14- så kommer inget upp

Link to comment
Share on other sites

Ja ok, men om jag slår in den enda löpare som finns nu. -14- så kommer inget upp

 

Ta en titt på min fil istället...

Link to comment
Share on other sites

Ja ok, men om jag slår in den enda löpare som finns nu. -14- så kommer inget upp

 

konstigt, funkar fint på min dator.

 

Kör på det som funkar, finns många sätt att komma i mål... Säkert olika versioner på xl som gör att det inte klickar. håller med Monshi, värdelöst att börja ändra på vedertagna sanningar.

 

 

/M

Link to comment
Share on other sites

konstigt, funkar fint på min dator.

 

Kör på det som funkar, finns många sätt att komma i mål... Säkert olika versioner på xl som gör att det inte klickar. håller med Monshi, värdelöst att börja ändra på vedertagna sanningar.

 

 

/M

Redigerat:

Detta funkar och är enklare att hantera för användarna.

Men iofs - vad vinner vi med MONSHI:s förslag

Link to comment
Share on other sites

Redigerat:

Detta funkar och är enklare att hantera för användarna.

Men iofs - vad vinner vi med MONSHI:s förslag

 

Enkelhet. En sökning och sedan enkla hämtningar. Iofs enbart viktigt vid stora tabeller då sökningar är bland det mest krävande funktionerna i Excel. Då går det snabbare att söka en gång per istället för tiotalet.

Samt enklare att underhålla och felsöka formler.

 

Om fel värde returneras kan du titta på resultatet från Passa och se vilken rad som den hittat och Index-satsen är enkel att förstå och redigera samt passar mycket bra Excel 2007/2010s tabellformat.

 

men med det sagt, Vtsök/Letarad utför uppgiften bra den med.

 

Ivartfall, ta en titt på tabellfunktionerna i Excel 2007/2010.

Link to comment
Share on other sites

Enkelhet. En sökning och sedan enkla hämtningar. Iofs enbart viktigt vid stora tabeller då sökningar är bland det mest krävande funktionerna i Excel. Då går det snabbare att söka en gång per istället för tiotalet.

Samt enklare att underhålla och felsöka formler.

 

Om fel värde returneras kan du titta på resultatet från Passa och se vilken rad som den hittat och Index-satsen är enkel att förstå och redigera samt passar mycket bra Excel 2007/2010s tabellformat.

 

men med det sagt, Vtsök/Letarad utför uppgiften bra den med.

 

Ivartfall, ta en titt på tabellfunktionerna i Excel 2007/2010.

 

Tack för tipsen !

Jag ska kolla detta - så får vi se hur stora resultatlistorna blir.

Link to comment
Share on other sites

I samband med detta kom jag på ett likande problem :

Går det att använda tex Leta Rad och få resultat i samma kolumn som sökkolumn ?

Dock med sökterm annan än resultatterm i samma kolumn (förkortning).

Data finns på annat blad också här - ca 50 poster.

Går det att modifiera den enkla formel som kom till användning ovan ?

Link to comment
Share on other sites

=LETARAD($A$2;Blad2!$A:$D;Kolumn();Falskt)

där kolumn() ger dig kolumnnumret formeln står i. Möjligt att du behöver lägga till/dra bort något värde från den.

 

Men åter, här är INDEX lättare.

 

Se mitt exempel. I B-kolumnen räknar jag ut vilken rad som ska hämtas. I D2 skriver jag

=INDEX(Tabell1[Delsträcka 1];$B2)

och sedan är det bara att kopiera ut den till höger. I D3 blir det då

=INDEX(Tabell1[Delsträcka 2];$B2)

automatiskt.

 

Om vi tar Excel 2002 format på formeln istället blir det

=INDEX(Tider!D:D;$B2)

i cell D2. Kopierat ett steg åt höger och formeln blir automatiskt

 

=INDEX(Tider!E:E;$B2)

 

ack så enkelt, så enkelt.

 

notera $-tecknet, hur det fungerar...

 

och ja, i exemplet har jag hanterat fel med OMFEL vilket man bör göra.

Om Excel 2002 då hade jag istället för

=OMFEL(INDEX(Tabell1[Delsträcka 1];$B2);"")

varit tvungen att skriva

=OM(ÄRFEL($B2);"";INDEX(...))

 

Om vi i Excel 2002 använt LETARAD, då hade vi fått skriva

=OM(ÄRFEL(LETARAD(...);"";LETARAD(...))

varvid vi åter har bevisat att paret PASSA+INDEX är överlägset :)

Link to comment
Share on other sites

=LETARAD($A$2;Blad2!$A:$D;Kolumn();Falskt)

där kolumn() ger dig kolumnnumret formeln står i. Möjligt att du behöver lägga till/dra bort något värde från den.

 

Det här är från mitt andra exempel:

Det är ju normal syntax för LETARAD . Det funkar ju som formel - men mitt mål :

Jag får det inte att funka med inmatningscell = resultatcell - eller ?

Kanske blir "rundgång" ;-)

Ska man ha en dold cell för formeln som refrerar till inmatningscell och samtidigt pekar på samma som utmatningscell ?

 

Föresten testade ditt förslag jag och det blev mycket riktigt data från fel rad - men det gick att fixa sa du ? Och en enklare inmatning - jag gillar inte listpilarna.

Link to comment
Share on other sites

data från fel rad? Inte i mitt exempel. det hela beror på hur du ställer upp formlerna.

fallgropen med PASSA-INDEX är att de måste referera till samma mängd celler.

PASSA returnerar ett relativt index för den rad den först hittar det eftersöks. Dvs söker passa efter talet 1 i vektorn (2, 1 , 3) returneras talet 2 oavsett om denna vektor står i cellerna A1:A3 eller A5:A7.

 

Om vi ska vara noga med syntaxen refererar Tabell1[Delsträcka 1] enbart till tabellens dataområdet, dvs inte till hela D-kolumnen.

 

 

Pilarna - de går att ta bort, precis som jag gjort på bladet Tider. Öppna ribbon Start, klicka i din tabell, välj i ribbon-menyn Sotera och filtrera -> Filter

och du kan där slå av/på filterpilarna.

 

Du har fått många alternativ nu hur du kan göra. Lek runt lite med dessa. Jag rekommenderar, som sagt, att om det är Excel 2007/2010 du ska använda ska du se till att använda tabellfunktionerna. Och använder du dessa faller det sig naturligt att använda de namn som generas då formlerna blir lätta att förstå.

 

Förstår du formlerna, hur de fungerar?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...