Med FILTER-funktionen kan du filtrera ett dataområde baserat på de villkor du anger.
I följande exempel använde vi formeln =FILTER(A5:D20,C5:C20=H2,"") för att returnera alla poster för Apple, som vi markerat i cell H2, och vi angav att en tom sträng ("") ska returneras om det inte finns några äpplen.
FILTER-funktionen filtrerar en matris baserat på en boolesk (sann/falsk) matris.
=FILTER(array,include,[if_empty])
argument |
Beskrivning |
matris Krävs |
Matrisen eller området som ska filtreras |
include (inkludera) Krävs |
En boolesk matris som har samma höjd och bredd som matrisen |
[if_empty] ([om_tom]) Valfritt |
Värdet som ska returneras om alla värden i den inkluderade matrisen är tomma (filtret returnerar ingenting) |
Meddelanden:
-
En matris kan ses som en rad med värden, som en kolumn med värden eller som en kombination av rader och kolumner med värden. I exemplet ovan är området A5:D20 källmatrisen för vår FILTER-formel.
-
FILTER-funktionen returnerar en matris som kommer att spilla om det är det slutliga resultatet av en formel. Det innebär att Excel dynamiskt kommer att skapa rätt storlek på matrisområdet när du trycker på RETUR. Om dina understödjande data finns i en Excel-tabell ändras storleken på matrisen automatiskt när du lägger till eller tar bort data från matrisområdet om du använder strukturerade referenser. Mer information finns i den här artikeln om beteenden för matriser och spill.
-
Om din datauppsättning riskerar att returnera ett tomt värde använder du det tredje argumentet ([om_tom]). I annat fall får du felet #KALK! eftersom Excel inte har stöd för tomma matriser för närvarande.
-
Om något av innehåller argument är ett fel (#N/A, #VALUE osv.) eller kan inte konverteras till ett booleskt värde returnerar funktionen FILTER ett fel.
-
Excel har begränsat stöd för dynamiska matriser mellan arbetsböcker och detta scenario stöds endast när båda arbetsböckerna är öppna. Om du stänger källarbetsboken får du ett #REF!-felmeddelande för länkade dynamiska matrisformler när de uppdateras.
Exempel
Använda FILTER för att returnera flera villkor
I det här fallet använder vi multiplikationsoperatorn (*) för att returnera alla värden i vårt matrisområde (A5:D20) som innehåller äpplen OCH som hör till regionen öst: =FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),"").
Använda FILTER för att returnera flera villkor och sortera
I det här fallet använder vi den tidigare FILTER-funktionen med SORTERA-funktionen för att returnera alla värden i vårt matrisområde (A5:D20) som innehåller äpplen OCH som hör till regionen öst. Sedan sorteras enheterna i fallande ordning: =SORTERA(FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),""),4,-1)
I det här fallet använder vi FILTER-funktionen med additionsoperatorn (+) för att returnera alla värden i vårt matrisområde (A5:D20) som innehåller äpplen ELLER som hör till regionen öst. Sedan sorteras enheterna i fallande ordning: =SORTERA(FILTER(A5:D20,(C5:C20=H1)+(A5:A20=H2),""),4,-1).
Lägg märke till att det inte krävs absoluta referenser för någon av funktionerna eftersom de bara finns i en cell och spiller ut resultatet till intilliggande celler.
Behöver du mer hjälp?
Du kan alltid fråga en expert i Excel Tech Community eller få support i Communities.