• 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 ALS.VOORWAARDEN moet kijken naar dynamische lijst

Status
Niet open voor verdere reacties.

Hunuloeloe

Gebruiker
Lid geworden
12 sep 2016
Berichten
311
Goedemorgen allen,

Ik ben aan het stoeien met de formule ALS.VOORWAARDEN in combinatie met ISGETAL en VIND.ALLES. De formule werkt alleen zou ik hem praktischer willen hebben. De formule (die in kolom A staat) kijkt naar de tekst in kolom B en welke maatsortering de verpakking in deze kolom heeft. Bijv. verpakking X, 65-70mm. Dan geeft die als uitkomst 65-70.
Voor de maatsorteringen kijkt die naar de kolom met tot nu toe bekende maatsorteringen. Echter als er 1 nieuwe maatsortering bijkomt moet ik deze achteraan in de formule toevoegen. Dit is niet heel veel werk maar ik heb het idee dat het praktischer kan :)

Is het mogelijk dat zodra ik een nieuwe maatsortering in de kolom met maatsorteringen invul dat die formule deze automatisch opneemt? :)

Bekijk bijlage Dynamische lijst Helpmij.xlsx
 
Eventueel een andere mogelijkheid:
Code:
=DEEL(B2;VIND.SPEC("-";B2)-2;5)

Het is wel de vraag of dit een representatief voorbeeldbestand is, alle maatsorteringen hebben namelijk dezelfde opbouw "xx-xx". Als ook andere combinaties mogelijk zijn, dan is bovenstaande formule niet werkbaar.
 
Hoi Kristiaan,

Ja er zit altijd een "-" tussen 2 cijfers en/of tekens. Het komt voor dat een maatsortering er als volgt uitziet "70-op".
Ik zal je formule straks even testen! dank voor het meedenken :thumb:
 
Code:
=ALS(ISFOUT(DEEL(B2;VIND.SPEC("-";B2)-2;5));"";DEEL(B2;VIND.SPEC("-";B2)-2;5))
Zie hierboven jouw formule met een aanpassing zodat die bij lege waarden "" weergeeft.

Ik heb hem even getest met data die we gebruiken. Bij de volgende regel "Jazz, Klasse I, 100stuks, LvO: N-Zeeland, I.1, G3-G5, R5-R8, PRE GG" krijg ik als uitkomst N-Ze.

Met deze regel zou er eigenlijk geen uitkomst uit moeten komen omdat er geen maatsortering in de regel opgenomen is.
Heb je een idee hoe we dit kunnen tackelen bij het gebruiken van jouw formule?
 
Laatst bewerkt:
Ik wil er toch nog even opnieuw naar kijken ik liep namelijk nog tegen een andere mogelijkheid aan:
Code:
=INDEX(VERGELIJKEN(DEEL(B14;VIND.SPEC("-";B14)-2;5);D:D);;)
Echter geeft ook deze niet het gewenste resultaat :evil:
Daarnaast zag ik dat met bovenstaande formule niet alle maten uit de lijst worden meegenomen bijv."95-100"
Bekijk bijlage Dynamische lijst Helpmij.xlsx
 
Met een UDF
 

Bijlagen

  • Dynamische lijst Helpmij.xlsb
    32,7 KB · Weergaven: 47
Hoi Vena,

Hartelijk dank voor deze oplossing!!:thumb: Echter zou je mij misschien even mee willen nemen in deze oplossing?
Ik zou graag willen weten hoe dit precies werkt namelijk zodat ik het in het vervolg zelf ook kan gaan toepassen op andere bestanden :)
Code:
Function VenA(r1 As Range, r2 As Range) As String
  ar = r1
  For j = 1 To UBound(ar)
    If InStr(r2, ar(j, 1)) Then
      VenA = ar(j, 1)
      Exit For
    End If
  Next j
End Function
 
Code:
ar = r1
  For j = 1 To UBound(ar)
    If InStr(r2, ar(j, 1)) Then
      VenA = ar(j, 1)
Dit stukje code ik snap niet wat dit precies betekent (ja dat die kijkt naar de tabel als die een bepaalde waarde bevat waarschijnlijk?)
Maar ik snap die ar = r1 etc. etc. niet echt :confused:
 
r1 = de lijst met maten. Van deze lijst heb ik een tabel gemaakt zodat het bereik automatisch aangepast wordt als je nieuwe maten toevoegt. r1 is gedeclareerd als range. Je kan deze range doorlopen met bv
Code:
For each cl in r1
Het werkt echter sneller als je van een range een array maakt. Het doorlopen van array vindt in het geheugen plaats zonder interactie met het werkblad. Vandaar ar = r1
Het lusje doorloopt de array en als de waarde gevonden wordt dan wordt deze waarde teruggegeven aan de Function en stopt het lusje. Dit soort dingen kan je zelf allemaal vinden als je aan het begin van de Function Stop toevoegt. Je kan dan met <F8> door de code lopen om te zien welke variabele welke waarde krijgt.
 
Daar hebben ze F9 voor uitgevonden. ;)

In formulevorm.
Code:
=ZOEKEN(1000;VIND.SPEC($D$2:$D$4;B2);$D$2:$D$4)

Maak een tabel van D1: D4 en de formule wordt dynamisch.
Code:
=ZOEKEN(1000;VIND.SPEC(Tabel1[Lijst met maten];B3);Tabel1[Lijst met maten])
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan