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

Formule verticaal zoeken bevat tekst

Status
Niet open voor verdere reacties.
Misschien dat dat best wel met Excel zelf te doen is maaar ik geef dan toch de voorkeur aan een VBA functie. Deze bijvoorbeeld:
Code:
Public Function WVINDEN(ByVal Zoekwaarde As String, ByVal Zoekmatrix As Range, ByRef Index As Integer) As String
    Dim i As Integer
    
    For i = 1 To UBound(Zoekmatrix())
        If InStr(1, Zoekwaarde, Zoekmatrix(i, 1)) > 0 Then
            WVINDEN = Zoekmatrix(i, Index)
            Exit Function
        End If
    Next i
    WVINDEN = "Ongeldig"
End Function

Aanroep in je voorbeeld document, bijvoorbeeld in cel B2:
Code:
=WVINDEN(A2;$D$2:$E$4;2)

De functie zelf zet je in een module. Zie document.
Bekijk bijlage Voorbeeld vert.zoeken.xlsm
 
Laatst bewerkt:
In E2:
Code:
=ZOEKEN(1000;VIND.SPEC($D2;$A$2:$A$7);$B$2:$B$7)
 
Hahaha! We zijn weer tegelijk. Maar nu met beiden een andere oplossing :P
 
Er valt ook iets te kiezen. :thumb:
 
Als eerste heb je een vierde argument opgenomen in een drie argumenten UDF (ONWAAR).
Ten tweede weet ik niet wat je wilt bereiken.

Als je wilt bereiken dat "Tekst 3" ongeldig moet zijn omdat deze rij niet zichtbaar is, gaat je dat met "subtotaal3" niet lukken.
Ook niet met "subtotaal103" omdat in een filter de rijen niet zichtbaar, maar niet verborgen zijn, en dat is een verschil.
 
Gedefinieerde naam Filter1:
Code:
=INDIRECT("Blad2!A2:A"&AANTALARG(Blad2!$A$2:$A$1000)+1)
Code:
Private Function WVINDEN(ByVal Zoekwaarde As Range, ByVal Zoekmatrix As Range, ByRef Index As Integer) As String
Dim i As Integer, r As Long
With Sheets("Blad2")
             If .Rows(Zoekwaarde.Row).Hidden Then
               WVINDEN = "Ongeldig"
               Exit Function
                  Else
               For i = 1 To UBound(Zoekmatrix())
                  If InStr(1, Zoekwaarde, Zoekmatrix(i, 1)) > 0 Then
                     WVINDEN = Zoekmatrix(i, Index)
                     Exit Function
                  End If
                Next i
               End If
        End With
 WVINDEN = "Ongeldig"
End Function

Met in de cel:
Code:
=WVINDEN(A2;Filter1;2)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan