• 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 overzicht maken van data obv een criteria

Status
Niet open voor verdere reacties.

LoriMe

Gebruiker
Lid geworden
28 mrt 2013
Berichten
46
Goededag,

Ik wil een overzicht maken vanuit een grote database, maar ik wil enkel dat de data getoond wordt welke gelijk is aan een bepaald criteria. Dit criteria kan telkens verschillend zijn, afhankelijk waar ik op dat moment naar op zoek ben. Met draaitabellen kan ik een aantal zaken tonen, alleen ervaar ik toch wat beperkingen met draaitabellen en formules. Met verticaal zoeken (en ALS) kan ik de informatie tonen obv een criteria, maar dan vergelijkt deze per regel en krijg ik dus in het overzicht allemaal lege regels in het overzicht waardoor dit niet meer overzichtelijk is. Met sommen.als kan ik een optelling maken wanneer iets gelijk is aan het argument, maar dat zijn optellingen van bedragen. Ik ben dus een beetje op zoek naar een gecombineerde formule, een die enkel de regels / cellen overneemt die gelijk zijn aan een criteria en die netjes onder elkaar plaatst.

Ik heb een bestand toegevoegd waarin in 2 overzichtjes de informatie getoond wordt die hopelijk dmv een formule gerealiseerd kan worden.Bekijk bijlage Overzicht netjes onder elkaar van data obv criteria.xlsx

Alvast bedankt voor het meedenken!
 
Bekijk bijlage Overzicht netjes onder elkaar van data obv criteria MB.xlsx

Mijn voorstel zou zijn: geavanceerd filteren.
Een voorbeeld in de bijlage.

Dit werkt als volgt:
Je hebt een matrix met gegevens en een matrix met criteria. Het eenvoudigst is om de kopregels van de gegevens te kopiëren.
Selecteer je gegevensmatrix (i.c. A7:C11) en, op tab "Gegevens" kies "Geavanceerd" in de rubriek "Sorteren en filteren".
Kies of je in de lijst wilt filteren dan wel de gegevens wilt kopiëren. Ik heb het laatste gekozen.
Geef aan waar de criteria staan (i.c. A1:C2) en (afhankelijk van je eerste keuze) waar de gegevens heen moeten. Ik heb E7 gekozen.
Ik kon alleen een locatie op het actieve werkblad kiezen (Excel 2007).

Criteria die je op 1 regel invoert zijn EN criteria (i.c. Bedrag > 0 EN vermelding = "Ja").
Als je OF criteria wilt, dan moet je ze op verschillende regels zetten.

Gezien de gewenste flexibiliteit lijkt me dit de beste oplossing. Misschien moet je er even mee oefenen/spelen.

Anders ga je in de richting van matrixformules of VBA.

Het enkelvoud van "criteria" is overigens "criterium". :rolleyes:
 
@macelBeug

Het aardige van VBA is dat je geavanceerd filter daarmee naar een ander werkblad gegevens kunt laten kopiëren.
 
@macelBeug

Het aardige van VBA is dat je geavanceerd filter daarmee naar een ander werkblad gegevens kunt laten kopiëren.

Tja, de mogelijkheden van VBA zijn schier oneindig als je er in thuis bent, maar ik zit nog geeneens op "dummies" level, laat staan "smarties" ;)
 
@MarcelBeug

Bedankt voor de reactie. Ik kende deze functie niet en zie wat de mogelijkheden zijn. Handig voor een eenmalige filtering, maar voor dagelijkse en in meerdere overzichten nog wat beperkend.

@snb of anderen,

Iemand een tip om dit uit te voeren met VBA?
 
Ja hoor: neem eens een macro op en pas die dan aan in de VBEditor ( Alt - F11 ). Is erg leerzaam.
 
Met een aangepaste opgenomen macro kom ik tot zoiets

Code:
Sub VenA()
With Sheets("Data").[A1].CurrentRegion
    .AdvancedFilter xlFilterCopy, .Range("E1:G2"), Sheets("tabel").[A2].Resize(.Rows.Count, 3), False
    .AdvancedFilter xlFilterCopy, .Range("I1:J2"), Sheets("tabel").[E2].Resize(.Rows.Count, 2), False
    Application.Goto Sheets("tabel").[A1]
End With
End Sub

Met in het blad 'data' de gegevens en waarop je wil filteren (de groene cellen).
 

Bijlagen

Die je nog iets aan kan passen.
Code:
Sub VenA_hsv()
With Sheets("Data").[A1].CurrentRegion
    .AdvancedFilter xlFilterCopy, .Range("E1:G2"), Sheets("tabel").[A2]
    .AdvancedFilter xlFilterCopy, .Range("I1:J2"), Sheets("tabel").[E2]
    Application.Goto Sheets("tabel").[A1]
End With
End Sub
Of:
Code:
Sub VenA_hsv()
With Sheets("Data").[A1].CurrentRegion
    .AdvancedFilter 2, .Range("E1:G2"), Sheets("tabel").[A2]
    .AdvancedFilter 2, .Range("I1:J2"), Sheets("tabel").[E2]
    Application.Goto Sheets("tabel").[A1]
End With
End Sub
 
Laatst bewerkt:
Ook de criteria geautomatiseerd:

Code:
Sub M_snb()
    With Sheets("Data")
        .Range("E1:E2") = Application.Transpose(Array(.Range("B1"), ">10"))
        .Cells(1).CurrentRegion.AdvancedFilter 2, .Cells(1, 5).CurrentRegion, Sheets("tabel").Cells(2, 5)
        
        .Range("E2:F2") = Array(">0", "ja")
        .Range("F1") = .Cells(1, 3).Value
        .Cells(1).CurrentRegion.AdvancedFilter 2, .Cells(1, 5).CurrentRegion, Sheets("tabel").Cells(2, 1)

        .Cells(1, 5).CurrentRegion.ClearContents
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan