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

Zoek en retourneer meerdere resultaten.

Status
Niet open voor verdere reacties.

Mxmaarten

Nieuwe gebruiker
Lid geworden
1 apr 2023
Berichten
2
Kan iemand mij helpen de juiste formule te vinden?

Ik wil graag een waarde vinden in een ander tabblad en verschillende resultaten terug laten komen.

Het gaat om het volgende:

In het tabblad 'Tab' staat de zoekwaarde in kolom A. Ik wil graag alle overeenkomstige waarden uit kolom A (tabblad 'Search') in kolom B (tabblad 'Tab') zien, door te zoeken in de matrix B2:O11.

Als ik bijvoorbeeld zoek naar de waarde "5.1", dan verwacht ik het resultaat in cel B3 (tabblad 'Tab').
Code of Conduct
Policy – Compliance
Guideline - Risk Strategy
Guideline - Risk Management
Guideline - Information Protection
Guideline - Data Privacy Protection
Guideline - Identity and Access Management

Vervolgens komt is cel B4 de uitkomst
“ “


Daarna komt in cel B5 de uitkomst
Guideline - Identity and Access Management

Scherm­afbeelding 2023-03-31 om 22.43.34.png
Scherm­afbeelding 2023-03-31 om 22.43.30.png

Wat ik al gevonden of geprobeerd heb
X.ZOEKEN = geeft maar 1 resultaat (de eerste of de laatste)
Draaitabel = dit is handmatig werk
 

Bijlagen

Laatst bewerkt:
Welkom. Plaats s.v.p. een Excel voorbeeld bestand.
 
Hallo,

Bedoel je zo iets?
Gedaan met power query.
 

Bijlagen

Zoeken naar meer dan 1 resultaat = filteren.
 
In B3 en doorvoeren.
Code:
=TEKST.COMBINEREN("; ";;ALS.FOUT(INDEX(Search!A$2:A$11;AGGREGAAT(15;6;RIJ($1:$10)/(Search!B$2:O$11=A3);REEKS(AANTAL.ALS(Search!B$2:O$11;A3))));""))
 
Als je office 365 hebt kun je deze in B3 plaatsen. Dan heb je alles direct.
Ook wrap text even aanklikken en de rijen/kolommen groter maken.

Code:
=LET(t;A3:A98;r;Search!B2:O11;x;Search!A2:A11;DROP(REDUCE("";t;LAMBDA(a;b;VSTACK(a;LET(z;MMULT(--(r=b);SEQUENCE(COLUMNS(r)));TEXTJOIN(CHAR(10);;FILTER(x;z;""))))));1))

En een alterntieve welke je moet doortrekken

Code:
=LET(r;Search!$B$2:$O$11;x;Search!$A$2:$A$11;z;MMULT(--(r=A3);SEQUENCE(COLUMNS(r)));TEXTJOIN(CHAR(10);;FILTER(x;z;"")))
 
Laatst bewerkt:
Met deze methode in VBA moet je onnodig vaak de cellen benaderen. Werkblad interacties werken vertragend. Je ziet het eigenlijk al gebeuren in dit bestand, waar nog heel weinig data in staat.
Ik zou eens proberen te verdiepen in arrays, waar je op het eind alles in één keer wegschrijft.;)
 
Laatst bewerkt:
Misschien heb je hier wat aan

Code:
Sub jec()
 Dim sq, ar, j As Long, jj As Long, jjj As Long
 sq = Sheets(1).Cells(1).CurrentRegion.Resize(, 1)
 ar = Sheets(2).Cells(1).CurrentRegion
 
 With CreateObject("scripting.dictionary")
   For j = 3 To UBound(sq)
      For jj = 2 To UBound(ar)
         For jjj = 2 To UBound(ar, 2)
            If ar(jj, jjj) = sq(j, 1) Then
              .Item(sq(j, 1)) = .Item(sq(j, 1)) & Chr(10) & ar(jj, 1)
               Exit For
             End If
         Next
      Next
      If IsEmpty(.Item(sq(j, 1))) Then .Item(sq(j, 1)) = Empty
   Next
   Sheets(1).Range("C3").Resize(.Count) = Application.Transpose(.items)
 End With
End Sub
 
Beste allemaal,

Ik wil jullie graag allemaal bedanken voor jullie hulp bij het oplossen van mijn vraag over een Excel-formule. Jullie reacties en inzichten hebben me enorm geholpen om mijn probleem op te lossen en ik ben dankbaar voor de tijd en moeite die jullie hebben genomen om me te helpen.

Het is geweldig om te weten dat ik op jullie kan rekenen als ik hulp nodig heb. Jullie steun en deskundige advies hebben me geholpen om mijn werk sneller en efficiënter uit te voeren. Ik kan jullie niet genoeg bedanken voor jullie bijdrage.

Met vriendelijke groet,


Mxmaarten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan