• 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.

Een nieuwe kolom data die voldoet aan een bepaalde voorwaarde

Status
Niet open voor verdere reacties.

sph

Gebruiker
Lid geworden
21 feb 2014
Berichten
160
Ik zou heel graag willen weten hoe ik het volgende bestand kan laten invullen door Excel.
Zat te denken aan autofilter met macro.
Kan er via google o.d. niet achter komen.

Ik heb b.v. een kolom namen, maar deze bevat in het echt zo`n 750 namen.
Deze namen zijn gekoppeld aan datums met een einddatum.
Nu wil ik graag in een nieuwe kolom de namen zien van de mensen die voorbij de einddatum zijn gekomen.
Dit scheelt enorm veel tijd.

Iemand een idee?
 
Probeer het eens met onderstaande matrixformule (ingeven in G6, afsluiten met CTRL SHIFT ENTER en kopiëren naar beneden):

Code:
=ALS.FOUT(INDEX($B$6:$B$21;KLEINSTE(ALS($E$6:$E$21="NEE";RIJ($B$6:$B$21)-5);RIJ(A1)));"")
 
Dankjewel. Dit werkt inderdaad, en was al bang dat het met een matrixformule moest.

Ik heb de uitleg al 100 keer gelezen, maar ik kan nog steeds niet begrijpen hoe het werkt :(
Wat ik hier b.v. al niet snap is het gedeelte "RIJ(A1)" terwijl dit gedeelte van het werkblad leeg is.

Is er een ook jip en jannekke uitleg denkbaar voor de matrixformule zodat ik hem zelf ook kan toepassen?
 
Om de formule te begrijpen kun je hem het best van binnen naar buiten lezen. De kern van de formule is de ALS-functie:
Code:
ALS($E$6:$E$21="NEE";RIJ($B$6:$B$21)-5)
Deze functie geneert een matrix van waarden en is in feite wat de formule tot een matrixformule maakt. Je kunt het resultaat zien als je de functie met een =-teken ervoor invoert in een cel en afsluit met F9 in plaats van enter. Dit is wat je dan krijgt:
Code:
={ONWAAR;ONWAAR;ONWAAR;4;5;ONWAAR;ONWAAR;8;ONWAAR;10;ONWAAR;12;ONWAAR;ONWAAR;ONWAAR;16}
De ALS-functie wordt vervolgens genest in een KLEINSTE(matrix, k)-functie. Deze functie bepaalt de k-kleinste waarde uit de matrix, waarbij de ONWAAR-waarden genegeerd worden. Dus KLEINSTE(matrix, 1) = de kleinste (4), KLEINSTE(matrix, 2) = de een na kleinste (5) etc. De k wordt bepaald door de functie RIJ(A1)=1, RIJ(A2)=2 etc.
Het aldus verkregen index-getal wordt ten slotte gebruikt door de INDEX-functie om een waarde te selecteren uit het bereik B6:B21.
 
Laatst bewerkt:
Als dit Jip en Janneke taal is wil ik de Wubbo Ockels uitvoering niet horen :p

Ik doe erg mijn best dit te begrijpen.

De 'kleinste' functie bijvoorbeeld. Ik zie niet waarom dit hier toegepast wordt?
Ik heb deze matrix toegepast op mijn werk en probeerde hiermee uit een lijst met 500 gegevens alle data te halen van items die aan een variabele "AFKEUR" (In cel X4:X405) voldeden.

Hiervoor paste ik toe:
=ALS.FOUT(INDEX($A$4:$A$505;KLEINSTE(ALS($X$4:$X$505="AFKEUR";RIJ($A$4:$A$505)-5);RIJ(A1)));"") + CTRL + SHIFT + ENTER

Uiteindelijk kwam niet alle data dat voldeed aan "AFKEUR" tevoorschijn.
Daarom snap ik ook "kleinste" niet, want AFKEUR heeft geen waarde.
Ook "RIJ......-5" kan ik niet plaatsen, eveneens als RIJ(A1).
Rij A1 is immers leeg?
 
Laatst bewerkt:
Bij mijn weten deden Jip en Janneke niet aan Excel. Eenvoudiger uitleggen dan dit kan ik het niet. Google anders eens op "matrixformule" om je verder te verdiepen in dit fenomeen.

Misschien zo:
Code:
=ALS.FOUT(INDEX($A$4:$A$505;KLEINSTE(ALS($X$4:$X$505="AFKEUR";RIJ($A$4:$A$505)-[COLOR="#FF0000"]3[/COLOR]);RIJ(A1)));"")
Zo niet plaats dan graag een representatief voorbeeld.
 
Laatst bewerkt:
De RIJ functie heeft enkel als doel om het rijgetal(nummer)weer te geven.
 

Bijlagen

  • rijfunctie.xlsx
    8,5 KB · Weergaven: 17
Laatst bewerkt:
Zonder matrix formule maar met een hulpkolom die kan verborgen worden(blauwe kolom).
Resultaat = groene kolommen
Misschien is deze beter te begrijpen. Nochtans is het hetzelfde principe van Timschel
 

Bijlagen

  • Kopie van ZOEKEN sph(plongske).xlsx
    13 KB · Weergaven: 32
Plongske, met jouw uitleg vat ik hem. Althans, jouw voorbeeld is voor mij beter te begrijpen.
Ik zie bij de namen die niet in datum zijn het nut van "RIJ()" in. Hiermee geef je een referentie v.d. rijen aan.
Wat ik nog niet snap is in de groene kolom in de formule "=ALS.FOUT(INDEX($B$1:$B$21;KLEINSTE($F$1:$F$21;RIJ(A1));1);"")" -> RIJ(A1) ??
 
Zie oranje cellen.
 

Bijlagen

  • Kopie van ZOEKEN sph(plongske) 1.xlsx
    13,4 KB · Weergaven: 26
Plongske, toen je begon over de functie kleinste dacht ik aan de vertaling MIN, zoals MIN en MAX.
Dit bleek dus niet zo te zijn, maar gewoon een mooie formule die goed te begrijpen is.

Maar dit is goed te doen, geen formule die met ctrl-shift-enter afgesloten hoeft te worden en overal waar ik maar wil toepasbaar.

Heb m`n werkblad klaargekregen met deze functie maar kan hem niet laten zien hier (3mb).
Ieg bedankt voor de duidelijke voorbeelden.

Topic mag wat mij betreft gesloten.

Gr.
 
Laatst bewerkt:
De functie Min en Max bestaan inderdaad maar daar krijg je enkel de minimum en maximum waarde.
Met de functie KLEINSTE of de functie GROOTSTE kan je om het even welk getal opvragen in een volgorde.

De vraag kan je zelf als opgelost plaatsen helemaal bovenaan je vraagstelling.
 
De functie Min en Max bestaan inderdaad maar daar krijg je enkel de minimum en maximum waarde.
Met de functie KLEINSTE of de functie GROOTSTE kan je om het even welk getal opvragen in een volgorde.

De vraag kan je zelf als opgelost plaatsen helemaal bovenaan je vraagstelling.
:cool:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan