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

Gebruik van filter: Een top 3 in een filter selecteren uit een deelselectie

Status
Niet open voor verdere reacties.

fvdgraaf

Gebruiker
Lid geworden
30 jun 2019
Berichten
11
Ik wil bijvoorbeeld een top 3 selecteren van een tabel waar al een selectie m.b.v. een filter is gemaakt. Ik noem het maar even een top 3 van een deelselectie.

Zie het voorbeeld in de bijlage.
Als ik hier op Functie2 filter dan hou ik nog 8 rijen over. Als ik dan de top 3 van "Aantal' wil dan doe ik het volgende:

Ik kan dan bij aantal het filter gebruiken en Getalfilters Top 10 selecteren en vervolgens daar de top 3 van de items selecteren. Je zou dan verwachten dat ik alleen overhoud:
Naam 8 Functie2 1895
Naam 15 Functie2 1975
Naam 17 Functie2 2556

Maar ik krijg niets.
Ik snap wel waarom omdat hij uitgaat van de top 3 van alle rijen en niet van de deelselectie.
Toch wil ik dat laatste wel.
Kan iemand mij hiermee helpen?
 

Bijlagen

Laatst bewerkt:
Voor Excel 365 kun je deze functie gebruiken:
Code:
=LET(x;SORTEREN(FILTER(Tabel1;Tabel1[Functie]="Functie2";"");3;-1);y;INDEX(x;;3);FILTER(x;y>=GROOTSTE(y;3);""))
Een andere optie is Power Query.
 
Dank je Alex,
Ziet er logisch uit maar hoe verwerk je die functie in het filter? Kun je die voor mij ook in het bestand plaatsen?
 
Ik had nog een functie uit Excel 2003 in die tijd om de filterwaarde op te halen.

Verwerkt in de formule van @AlexCel.
Code:
=LET(x;SORTEREN(FILTER(Tabel1;Tabel1[Functie]=INDEX(Tabel1[Functie];MIN(ALS(SUBTOTAAL(3;VERSCHUIVING(B1;RIJ(Tabel1[[#Alles];[Functie]]);0));RIJ(Tabel1[[#Alles];[Functie]]))));"");3;-1);y;INDEX(x;;3);FILTER(x;y>=GROOTSTE(y;3);""))
 
Verwerkt in je filter.

Code:
Sub jec()
 Dim a
 a = InputBox("Kies functie")
 If Len(a) Then
   On Error Resume Next
   With Sheets(1).ListObjects(1).Range
    .AutoFilter 2, a
    .AutoFilter 3, Filter(Evaluate("large(transpose(if(Tabel1[Functie]=" & """" & a & """" & ",Tabel1[Aantal])),{1,2,3})"), False, 0), 7
   End With
 End If
End Sub
 
Allemaal bedankt,


Ik weet nog steeds niet goed hoe ik de VBA code kan gebruiken in het filter.
Voorlopig heb ik het opgelost via een draaitabel. Dit is niet heel elegant omdat bijvoorbeeld een top 3 met twee gelijke getallen in de top 3 dan neemt hij een top 4.
Ik zal me meer moeten verdiepen in de VBA codes en implementatie.
Maar niet minder bedankt. Blijkbaar is er geen oplossing in het filter zelf (eigenschappen ofzo).
 
vorige reactie bevat een ongeldige bijlage
je kan 2 hulpkolommen toevoegen, ééntje om de zichtbare cellen te selecteren en de volgende om de top-3 daarvan te bepalen
 

Bijlagen

Hoi cow18,

:thumb:

Ik had inderdaad een afbeelding ingeladen. Blijkbaar een verkeerd bestandsformaat.
Fijn dat je hebt meegedacht. Jouw oplossing werkt inderdaad. Ik kom op dezelfde uitkomst als mijn draaitabel.

Ik denk nu twee oplossingen te hebben. Nu nog even bepalen welke het eenvoudigste toe te passen is.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan