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

X.ZOEKEN formule met meerdere zoekresultaten

Status
Niet open voor verdere reacties.

globe

Verenigingslid
Lid geworden
18 mrt 2001
Berichten
3.584
Ik heb een ellenlange lijst met artikelnummers en een lijst met bestandsnamen die hieraan gekoppeld moeten worden.
Alle bestanden zijn hernoemd naar het artikelnummer.

In mijn voorbeeld staan de artikelen in de tab data en de afbeeldingen in de map afbeeldingen.
De afbeeldingsnaam bestaat uit de artikelcode en _1/_2/_3/_4/_5 etc.

In kolom E van Data krijg ik keurig de hoofdafbeelding naar boven met X.ZOEKEN. Ik laat daar naar het artikelnummer zoeken mety de toevoeging "_1.jpg"

In kolom G wil ik alle overige afbeeldingen hebben, gescheiden door het woord <linebreak>. Daar gebruik ik ook X.ZOEKEN voor maar loop dan tegen de volgende problemen aan:

- Wanneer er geen overige afbeeldingen zijn krijg ik een #N/B, ik kan dus niet zomaar tig keer de X.ZOEKEN functie achter elkaar plakken. Kan dit met een ALS worden opgelost?
- Als ik de X.ZOEKEN functie uitbreid en ik laat exacte waardes zoeken en bij geen gevonden waarde laat ik geen resultaat zien krijg ik bij niet gevonden afbeeldingen meerdere malen <linebreak><linebreak><linebreak> achter elkaar wat mijn applicatie waar het in moet stuk maakt.


Ik wil VBA voorkomen maar als het niet anders kan is dit ook een optie.
 

Bijlagen

  • Afbeeldingen_zoeken.xlsx
    10,6 KB · Weergaven: 51
Met een UDF
 

Bijlagen

  • Afbeeldingen_zoeken(jp).xlsm
    21,2 KB · Weergaven: 8
Bvb

Code:
=LET(x;afbeeldingen!$A$2:$A$13;ALS.FOUT(TEKST.COMBINEREN("<linebreak>";;FILTER(x;(LINKS(x;VIND.SPEC("_";x&"_")-1)=F2)*(x<>E2)));""))
 
Laatst bewerkt:
wow! Die Let functie is top.

waanzinnig bedankt.
 
Kan ook als oneline UDF

Code:
Function jec(rng As Range, main as String, prod as String) As String
jec = Join(Filter(Filter(Filter(Evaluate(Replace("transpose(if(len(#), #))", "#", "'afbeeldingen'!" & rng.Address)), False, 0), main, 0), prod, 1), "<linebreak>")
End Function

Te gebruiken als

Code:
=jec(afbeeldingen!$A$2:$A$13;E2;F2)
 
Laatst bewerkt:
Voor de gein... iets andere versie.
Code:
=LET(x;F2&"_"&REEKS(99;;2)&".jpg";y;afbeeldingen!A:A;z;ISGETAL(VERGELIJKEN(x;y;0));TEKST.COMBINEREN("<linebreak>";;FILTER(x;z;"")))
 
Of:
Code:
jec = Join(Filter(Filter(Evaluate("transpose(afbeeldingen!" & rng.Address), main, 0), prod, 1), "<linebreak>")
 
Helemaal waar:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan