Office 2007 - Excel Tips 2007 - 2013

Tip 075

075/207 Lessen 

Gegevens filteren d.m.v. formule

Op vraag van Rudy De Grauwe heb ik de volgende tip geschreven.

Rudy wil een boodschappenlijst samenstellen door items aan te vinken(1), en deze items als een aaneengesloten reeks weergeven in een ander kolom(2).

Als we kijken naar onderstaand voorbeeld moeten  de cellen in kolom B filteren op het criteria WAAR en de corresponderende rij van kolom C tonen op een andere locatie.
We gaan in deze tip filteren door gebruik te maken van een formule.

We brengen eerst de selectievakjes aan in kolom A en koppelen deze aan de cellen van kolom B, Zie Excel tip 022 .

We typen in cel E2 de formule:
=ALS(RIJEN(E$2:E2)>AANTAL.ALS($B$2:$B$25;WAAR);””;INDEX($C$2:$C$25;
KLEINSTE(ALS($B$2:$B$25=WAAR;RIJ($B$2:$B$25)-RIJ($B$2)+1);RIJEN($B$2:B2))))

En drukken CTRL+SHIFT+ENTER

De formule verandert nu in een matrixformule:

{=ALS(RIJEN(E$2:E2)>AANTAL.ALS($B$2:$B$25;WAAR);””;INDEX($C$2:$C$25;
KLEINSTE(ALS($B$2:$B$25=WAAR;RIJ($B$2:$B$25)-RIJ($B$2)+1);RIJEN($B$2:B2))))}

We kopiëren de formule naar beneden tot en met cel E25

Het eerste gedeelte van de formule:
=ALS(RIJEN(E$2:E2)>AANTAL.ALS($B$2:$B$25;WAAR);””;

ALS het aantal RIJEN van het celgebied E2 tot en met E2 (=1 ) groter is dan het AANTAL keer dat de waarde WAAR voorkomt (in ons voorbeeld is dit 3) in het celgebied B2 tot en met B25 geef dan niets

De functie ALS geeft een waarde weer wanneer aan een voorwaarde wordt voldaan, en een andere waarde wanneer aan deze voorwaarde niet wordt voldaan.
De functie RIJEN geeft als resultaat het aantal rijen in een verwijzing.
De functie AANTAL.ALS telt het aantal cellen in een bereik dat voldoet aan een enkel criterium.

Wanneer we één of meerdere vakjes in kolom A aanvinken (maakt niet uit welk) dan is het aantal rijen van het celgebied E2 tot en met E2 ( =1 ) kleiner of gelijk aan het aantal keer dat de waarde WAAR voorkomt
( =>1 )in het celgebied B2 tot en met B25 en wordt dus niet aan de ALS voorwaarde voldaan en komt het tweede gedeelte van de formule in aanmerking,

INDEX($C$2:$C$25;KLEINSTE(ALS($B$2:$B$25=WAAR;RIJ($B$2:$B$25)-RIJ($B$2)+1);RIJEN($B$2:B2)
De functie =INDEX geeft als resultaat een waarde of de verwijzing naar een waarde vanuit een tabel of bereik.

De syntaxis van de functie INDEX heeft de volgende parameter:
INDEX(matrix, rij_getal, [kolom_getal]).

Parameter :1 Matrix   =vereist. Een cellenbereik of een matrixconstante.

Als matrix slechts één rij of kolom bevat, is het bijbehorende argument rij_getal of kolom_getal optioneel.
Als matrix meerdere rijen en kolommen bevat en alleen rij_getal of kolom_getal wordt gebruikt, geeft INDEX als resultaat een matrix van de gehele rij of kolom in matrix.

Parameter 2: rij_getal   =vereist. Selecteert de rij in matrix waaruit een waarde moet worden opgehaald. Als u rij_getal weglaat, is kolom_getal een verplicht argument.

Parameter 3: kolom_getal   =optioneel. Selecteert de kolom in matrix waaruit een waarde moet worden opgehaald. Als u kolom_getal weglaat, is rij_getal een verplicht argument.

INDEX($C$2:$C$25;= het cellenbereik waaruit we de gegevens moeten ophalen.
voor de tweede parameter van index, rij getal gebruiken we de formule:
KLEINSTE(ALS($B$2:$B$25=WAAR;RIJ($B$2:$B$25)-RIJ($B$2)+1);RIJEN($B$2:B2)

De functie =KLEINSTE bepaalt de op k-1 na kleinste waarde in een gegevensbereik. Gebruik deze functie om waarden met een bepaalde relatieve positie in een gegevensverzameling op te halen.

De functie =KLEINSTE heeft 2 parameters

Parameter 1:matrix  =vereist. Een matrix of een bereik met numerieke gegevens waarin u de op k-1 na kleinste waarde wilt bepalen.

Parameter 2: k  =vereist. De positie (geteld vanaf de kleinste waarde) in de matrix of het cellenbereik met gegevens.

Ook hier moeten we net zoals beschreven in Excel tip 068 deel 2 een numerieke waarde toekennen aan de cellen B2 tot en met B25 die de waarde WAAR bevatten.

Wanneer we bv. een vinkje plaatsen bij bloem, melk en olie en we bekijken voor cel E2 de parameter matrix van de functie KLEINSTE, dus het gedeelteALS($B$2:$B$25=WAAR;RIJ($B$2:$B$25)RIJ($B$2)+1)

Dan geeft dit als resultaat:
ONWAAR;2;ONWAAR;4;ONWAAR;6;ONWAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR;
ONWAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR;
ONWAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR}

De parameter K van de functie KLEINSTE geeft dan als resultaat: 1

Dus voor cel E2 nemen we uit de index C2 tot en met C25 de 1stekleinste waarde(=2)  = cel C3, voor cel E3 nemen we uit de index C2 tot en met C25 de 2de kleinste waarde(=4)  = cel C5, voor cel E4 nemen we uit de index C2 tot en met C25 de 3de kleinste waarde (=6) = cel C7.

Tip: maak het werkblad visueel aantrekkelijker door kolom B te verbergen: Cursus Excel 2007 Les 16 , selecteer de cellen E1 tot en met E25 en definieer een afdrukgebied: Cursus Excel 2007 Les 80.

Ter informatie: swotster.com denkt aan zijn cursisten, denk ook aan swotster.com

Formidabel U hebt Tip 075 voltooid START VOLGENDE LES