Sökruta för filtrerade listor i Excel
Ladda ner övningsfilen: Filtrerad Ordertabell.xlsx
Filtrera via sökruta
Har du någonsin önskat att det skulle gå att ha ett sökruta för fritextsökning i Excel? Då har din önskan gått i uppfyllelse i och med den nya funktionen FILTER [FILTER] i Excel.
Med funktionen FILTER [FILTER] kan du filtrera ut och visa en mindre del av en större lista eller Exceltabell, på en annan plats. Originalet och det filtrerade resultatet behöver inte finnas på samma kalkylblad och inte ens i samma arbetsbok.
I detta exempel vill vi kunna filtrera en tabell (det skulle likaväl kunna vara en vanlig lista) på olika säljares namn genom att fylla i ett sökord i en sökruta.
Önskning nummer två. Dessutom vill vi inte behöva fylla i hela namnen, utan det ska räcka att bara fylla i några bokstäver i början av namnen.
I bilden ovan har vi endast fyllt i ”to” och båda namnen Tomas och Tora visas i det filtrerade resultatet.
Nu ska du få reda på hur!
Exceltabell
Först har vi förberett var den filtrerade listan ska visas och gjort om en lista till en Exceltabell. Exceltabellen har fått namnet Ordertabell.
Tips!
Det går att använda funktionen FILTER [FILTER] utan att använda Exceltabeller men det blir mycket lättare att läsa formler som har namngivna områden än att hänvisa till cellreferenser.
Via menyfliken Utvecklare
Den första önskan var att ha en sökruta, så nästa steg är att slå på visningen av menyfliken Utvecklare [Developer].
- Högerklicka på valfri menyflik och välj Anpassa menyfliken [Customize the Ribbon].
- Bocka för att du vill se menyfliken Utvecklare [Developer] i dialogrutan och avsluta med OK.
Tips!
Du behöver inte fylla i ditt sökvillkor i en sökruta för att kunna använda funktionen FILTER [FILTER]. Det går bra att använda en vanlig cell också.
Skapa sökruta
Börja med att skapa en sökruta.
- Gå till menyfliken Utvecklare [Developer].
- Välj Infoga [Insert] och sedan Textruta [Text Box].
- Rita upp var sökrutan ska placeras.
Koppla sökruta till en cell
Sedan behöver sökrutan kopplas och länkas till en cell. Det som skrivs in i sökrutan kommer sparas i den länkade cellen. Den länkade cellen kommer senare att användas som filtervillkor.
Gör så här:
- Högerklicka i Textruta [Text Box] och välj Egenskaper [Properties].
- Ange i fältet Linked Cell, i vilken cell sökordet ska sparas. I detta exempel väljs cellen A3.
Designläget
När alternativet Designläget [Design Mode] är aktiverat på menyfliken Utvecklare [Developer] kan du:
- Flytta och ändra storleken på Textrutan [Text Box].
- Att högerklicka och välja Egenskaper [Properties] för att byta ut den länkade cellen om du har behov av det.
Men det går inte att skriva något i Textrutan [Text Box].
- Men om du stänger av Designläget [Design Mode] genom att klicka till på knappen en gång.
- Så kan du skriva och fylla i ett sökord i sökrutan.
Sökvillkoret sparas och visas i den länkade cellen A3.
Tips!
Sedan när allt är klart och fungerar kan du, tillfälligt, slå på Designläget [Design Mode] igen och placera sökrutan ovan på den länkade cellen så att den cellen döljs. Stäng sedan av Designläget [Design Mode] för att kunna använda sökrutan på menyfliken Utvecklare [Developer] .
Funktionen FILTER
Nu är det dags att använda funktionen FILTER [FLTER] för att filtrera tabellen (eller ett område) med det angivna sökvillkoret.
- Börja med att stå i den cell där det filtrerade resultatet ska visas. I detta exempel cellen A6.
- Fyll sedan i början på formeln:
=FILTER(Ordertabell;
I detta exempel används namnet Ordertabell på Exceltabellen, i stället för att fylla i cellreferensen F2:I74, för området som ska filtreras.
Tips!
Funktionen FILTER [FLTER] är en så kallad dynamisk funktion som kan ”spilla” ut sitt resultat utöver flera celler.
Ange filtervillkor
Nästa argument som behöver fyllas i är det filtervillkor som ska uppfyllas. I detta exempel ska bara rader som innehåller säljaren Eva visas. Villkoret är inte känsligt för stora och små bokstäver, som standard.
- Komplettera formeln med villkoret att området med säljarnas namn ska vara lika med sökvillkoret som finns i cellen A3:
=FILTER(Ordertabell;Ordertabell[Säljare]=A3)
I detta exempel används namnet på kolumnen Säljare, inom hakparenteser, i Exceltabellen Ordertabell. I stället för att fylla cellreferensen G2:G74 som villkorsområde.
- Prova att byta ut namnet i sökrutan för att se att filtreringen fungerar.
Tips!
Komplettera gärna formeln med vad som ska visas om ett felaktigt namn anges i sökrutan. Till exempel: =FILTER(Ordertabell;Ordertabell[Säljare]=A3;”Inga säljare hittades”)
Söka på början av ord
Men vi har ett önskemål kvar och det var att det skulle gå att endast fylla i början av namnen.
Det går att lösa genom att lägga till och använda funktionerna VÄNSTER [LEFT] och LÄNGD [LEN].
Med funktionen LÄNGD [LEN] går det att räkna hur många tecken som är i fyllda i sökvillkoret som finns i cellen A3 i detta exempel.
Sedan går det med funktionen VÄNSTER [LEFT] att endast välja att söka på så många bokstäver i kolumnen med säljarnamn.
- Komplettera och använd denna formel:
=FILTER(Ordertabell;VÄNSTER(Ordertabell[Säljare];LÄNGD(A3))=A3;”Inga säljare hittades”)
=FILTER(Ordertabell;LEFT(Ordertabell[Säljare];LEN(A3))=A3;”Inga säljare hittades”)
Nu när allt fungerar så kan du flytta och placera sökrutan så den täcker cellen A3 med sökvillkoret och sedan använda en snygg sökruta i Excel som filtrerar en lista eller tabell på en valfri plats i din arbetsbok.