• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vervanging functie FILTER

Status
Niet open voor verdere reacties.

JJZijlstra

Gebruiker
Lid geworden
26 nov 2013
Berichten
283
Beste lezere(s),,

Algemene en korte vraag:

Is er een functie of een groep van functies in excel 2019 die hetzelfde resultaat laat zien als je de functie FILTER in excel 2021 gebruikt?

P.S. Ik bedoel dus niet om de functies in het lint te gebruiken, maar alleen door gebruikingmaking van de FORMULES uit de menubalk bovenin.

Groet,
Toby
 
Laatst bewerkt:
Die is/zijn er.
Als je ook nog wil weten hoe plaats je even een voorbeeldbestandje.
 
Hier het voorbeeldbestandje.

Groet,
Toby
 

Bijlagen

  • Excel - Index_Vergelijken meerdere criteria.xlsx
    9,8 KB · Weergaven: 62
Hierbij een optie (niet met VERGELIJKEN).
 

Bijlagen

  • Excel - Index_Vergelijken meerdere criteria (AC).xlsx
    12 KB · Weergaven: 50
Hartelijk dank voor uw antwoord. Dit is precies wat ik bedoelde.

Het is toch nog een behoorlijk ingewikkelde formule geworden.

Vraag me af hoe bouw je deze geleidelijk aan op, m.a.w. welke functie pak je eerst en welke functie de volgende?

Dit voor de overzichtelijkheid.


Groet,
Toby
 
Dit soort complexe functies lees je van binnen naar buiten:
Code:
=ALS.FOUT(INDEX(B:B;KLEINSTE(ALS($C$3:$C$1000=$J$5;RIJ($3:$1000);EXP(99));RIJ(I1)));"")

1e deel is: ALS($C$3:$C$1000=$J$5;RIJ($3:$1000);EXP(99))
Dit deel kijkt in het bereik C3:C1000 of er overeenkomst is met "appel", zo ja komt het RIJ-nummer in een lijst, anders een heel groot getal: EXP(99).

2e deel is: KLEINSTE(....;RIJ(I1))
Deze zoekt het kleinste getal (=1e rij met overeenkomst). Bij doortrekken van formule in de cellen eronder wordt I1 I2 etc. dus wordt het 2-na,3-na,4-na-kleinste getal gezocht, en daarmee de 2e, 3e, 4e rij met overeenkomsten.

3e deel is: ALS.FOUT(INDEX(B:B;...);"")
Deze zoekt in kolom B m.b.t. de lijst de bijbehorende waarde in kolom B op. Als er een groot getal is resulteert de INDEX in een foutmelding die de ALS.FOUT omzet in een "lege" cel. Anders krijg je de waarde uit kolom B.

Dit is in het kort hoe de formule werkt. Als je geen Excel 365 gebruikt moet je 'm afsluiten als matrixfunctie (= met control+shift+enter) zoals Excel weet dat er niet één uitkomst van de formule is, maar meerdere.

Je kan via menu formules > formules evalueren ook stapsgewijs volgen wat de formule doet. Bekijk maar eens.
 
Laatst bewerkt:
@AlexCEL,

Hartelijk dank voor de uitgebreide en uitstekende uitleg.

Ik zal mij hierin gaan verdiepen en hiermee gaan oefenen. Dit zal nog even wat tijd in beslag nemen.

Mocht ik later nog vragen hebben dan hoort u van mij.


Vriendelijke groet,
Toby
 
Hier ook nog een niet-matrix optie

Code:
=ALS.FOUT(INDEX(B$3:B$100;AGGREGAAT(15;6;(RIJ($B$3:$B$100)-2)/($C$3:$C$100=$J$5);RIJ(A1)));"")
 
@JVeer,

Zou u bovenstaande formule nog eens voor mij willen uitleggen.
Ik begrijp het deelteken / niet.
Van de functie Aggregaat weet ik dat je foutmeldingen kunt omzeilen.

Verder wel wat ingewikkeld om de formule te lezen.

Groet,
Toby
 
Linkerkant van het deelteken geeft de rijnummers terug. Rechterkant is de vergelijking waar enen en nullen de uitkomst is.

Als je een rijnummer deelt door 1 houd je dus het rijnummer over. Als je deelt door nul, krijg je een foutmelding. De foutmelding wordt genegeerd door aggregaat.

Heb de snelheid een tijdje terug vergeleken met de matrix variant. De aggregaat was merkbaar sneller met veel data
 
Laatst bewerkt:
Beste lezer,

Nog even terugkomend op de formule van AlexCEL, deze heb ik grondig bekeken en aan de hand hiervan zelf een klein bestandje gemaakt met de formule.
Exact bestudeerd en gecontroleerd en toch werkt het niet in het hier bijgevoegde bestandje.
Wat en waarom gaat het dan nog niet goed? Ik ben heel benieuwd!

Groet,
Toby
 

Bijlagen

  • test1.xlsx
    11,1 KB · Weergaven: 12
Een naam in kolom C is toch geen vergelijking met een getal in cel G1?

Code:
$C$1:$C$6=$G$1

Haal ook alle hiaten uit de formule.
 
Nu heb ik een aanpassing gedaan, maar het werkt nog steeds niet.
Bestandje opnieuw bijgevoegd.
Waar zit mijn denkfout?
 

Bijlagen

  • test1.xlsx
    11,2 KB · Weergaven: 20
Je denkfout zit in het tweede argument van de functie KLEINSTE.
En nog steeds hiaten in je formule.

Code:
=ALS.FOUT(INDEX(B:B;KLEINSTE(ALS($C$1:$C$6=$G$1;RIJ($1:$6);EXP(99));RIJ([COLOR=#ff0000]A1)[/COLOR]));"")
 
@HSV,

Hyaten in de formule deed ik expres om het overzicht te houden. Als het goed gewerkt had, had ik deze direct geschreven zoals het hoort.

De formule van jou heb ik met die van mij vergeleken en ik heb gezien dat in het laatste van de formule had staan: RIJ(I3) en dat moest RIJ(A1) zijn.
Ik had niet begrepen dat je terug moest verwijzen naar de bron i.p.v. de tabel met de opgezochte gegevens.
Bedankt tot zover.

Als ik verder nog vragen heb, kom ik bij je terug.

Vriendelijke groet,
Toby
 
Het gaat om het tweede argument van de functie KLEINSTE:)

Kleinste 1, kleinste 2, kleinste 3, enz.

Rij(ZZ1) doet het evengoed als Rij(A1).
 
Misschien is dit alles veel eenvoudiger op te lossen met een draaitabel.
 

Bijlagen

  • Excel - Index_Vergelijken meerdere criteria draaitabel.xlsx
    16,5 KB · Weergaven: 17
@popipipo,

Dank voor je reactie.

Ja inderdaad, je kunt ook nog via een draaitabel het overzicht maken. Daar had ik nog helemaal niet aan gedacht. Mooi dat je dit aankaart, zo heb ik weer wat geleerd.
Om de formules te begrijpen en toe te passen vind ik ook heel leuk, ik ga ook verder aan de slag met de draaitabel.

Vriendelijke groet,
Toby
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan