
Het gebruikte voorbeeld
In een Excel-bestand staat onderstaande Excel-tabel. De tabel heeft de naam tb_Orders.

Hoe werkt FILTER?
Even een opfrisser voor de mensen die het niet meer precies weten (of FILTER nog niet kennen). Je kunt ook de eerdere blog over FILTER bekijken.
Deze functie kan gebruik maken van een tabel en daaruit een selectie maken die ergens anders komt te staan. Vergelijk het met de filterknoppen: je filtert op land NL en de daarbij gevonden gegevens kopieer je en plak je ergens anders.
Maar het grote verschil tussen filterknoppen gebruiken-kopiëren-plakken en de functie FILTER is dat de laatste een connectie blijft houden met de basisgegevens. Wijzigt er iets, dan wordt het resultaat automatisch bijgewerkt.
Neem dat voorbeeld van producten uit land NL.
Met de functie FILTER ziet dat er zo uit: =FILTER(tb_Orders;tb_Orders[Land]=”NL”)
Het 1e argument verwijst naar de tabelnaam (tb_Orders)
Het 2e argument geeft je filtervoorwaarde: de kolom land (tb_Orders[Land]( moet gelijk zijn aan de tekst NL.
Het resultaat zie je vanaf cel H5.

Je moet er nog wel zelf de veldnamen boven zetten en de opmaak van het resultaat opmaken. Doe dat op de gebruikelijke manier.
Als je dat hebt gedaan kan het er dus bijvoorbeeld zo uitzien.

Hoe maak je dat interactief?
Stel dat je als land België wilt hebben, dan zou je in deze situatie de formule FILTER moeten aanpassen in: =FILTER(tb_Orders;tb_Orders[Land]=”BE”).
Als je voor het kiezen van het land een cel maakt met een keuzelijst dan wordt dat eenvoudiger.
In de blog over de interactie heb ik uitgelegd hoe je dat doet met gegevensvalidatie. Als je die tip nog eens wilt bekijken.
Je past de formule van FILTER dan aan en verwijst naar die keuzecel (hier I1).
Daarna kun je via die keuzelijst een ander land kiezen en de lijst past zich steeds aan.
Filteren met meer voorwaarden (EN)
Stel nu dat je op 2 voorwaarden wilt filteren, bijvoorbeeld alleen NL en maandnummer 3.
Dan wordt de functie FILTER iets ingewikkelder. In het voorbeeld NL met maand 3 moet er dus aan 2 voorwaarden voldaan worden: in de kolom Land moet NL staan én in de kolom Maandnr moet een 3 staan.
FILTER ziet er dan zo uit:
=FILTER(tb_Orders;(voorwaarde 1)*(voorwaarde2))
Met andere woorden: je moet elke voorwaarde dan tussen ( ) zetten met een * ertussen.
Je mag ook meer dan 2 voorwaarden opnemen waaraan allemaal voldaan moet worden: zet ze allemaal tussen de ( ) met een * ertussen. Vergeet niet het haakje sluiten ) aan het einde van de functie!
Voor dat maandnummer heb ik ook een keuzelijst gemaakt in I2. Het wordt dus hier:
=FILTER(tb_Orders;(tb_Orders[Land]=I1)*(tb_Orders[Maandnr]=I2))

Filteren met meer voorwaarden (OF)
En wat als je met of-voorwaarden wilt werken? Je wilt bijvoorbeeld alle orders zien van de verkopers Jansen en Dekker. Met andere woorden in de kolom Verkoper moet dan Jansen staan óf Dekker om in de lijst te komen. Dan heb je te maken met OF-criteria. Hiervoor gebruik je niet een * maar een +
Werken via een keuzelijst wordt dan wat lastiger, want zo’n lijst kun je niet kiezen voor meer items. Je zou het zo kunnen oplossen met 2 keuzelijsten.

Deel van de tabel als resultaat?
Stel je wilt alleen de namen van de verkopers hebben met de orderbedragen van maand 1.
Dan pas je gewoon het 1e argument aan: je wilt dan niet de hele tabel als resultaat hebben, maar een deel.
Er staat dan dat je als ‘matrix’ de kolommen Verkoper tot en met Orderbedrag wilt hebben.
=FILTER(tb_Orders[[Verkoper]:[Orderbedrag]];tb_Orders[Maandnr]=3)
Je ziet: de voorwaarde waarop je wilt filteren hoeft dus helemaal niet in het resultaat voor te komen.

Resultaatkolommen staan niet naast elkaar
Voorwaarde voor het tonen van een deel van de tabel op deze manier is wel, dat de kolommen die je wilt zien in het resultaat naast elkaar moeten staan!
Wil je bijvoorbeeld Verkoper en Order_id zien, dan wordt het lastiger omdat je er dan een tweede functie bij moet opnemen.
Voor de liefhebbers: die functie is KIES.KOLOMMEN.
Bij =KIES.KOLOMMEN(tb_Orders;2;6) krijg je als resultaat dit (de 2e en 6e kolom van de tabel tb_Orders):
Het resultaat van KIES.KOLOMMEN gebruik je dan als 1e argument van de functie FILTER. Dus wil je die kolommen zien met als voorwaarde maand=1, dan ziet het er zo uit.

Saskia Jacobsen is directeur-eigenaar van Toels-PC en helpt bedrijven en vooral hun gebruikers om slimmer met de apps op hun pc te werken.


Geef een reactie