thst zei:
wanneer je een plaats intypt die in de range voorkomt en de eerste 4 karakters zijn gelijk met meerdere plaatsen dan geeft de formule Amsterdam, dat is niet goed
Als een plaats niet wordt gevonden, dan wilde je als resultaat postcode 1000 (= Amsterdam). Als het resultaat niet is wat je verwacht, dan ligt dat niet aan de formule, maar aan jouw lijst met plaatsnamen (G80:G649). Een aantal daarvan
eindigt namelijk op een spatie en die spaties kun je dus best verwijderen anders krijg je ongewenste resultaten. Het gaat om de volgende 56 plaatsnamen:
Almere, Weesp, Haarlem, Katwijk ZH, Wassenaar, Voorschoten, Leidschendam, Voorburg, Leiden, Alphen aan den Rijn, ’s-Gravenhage, Naaldwijk, Zoetermeer, Waddinxveen, Capelle a/d Ijssel, Krimpen a/d Ijssel, Alblasserdam, Ridderkerk, Rotterdam, Schiedam, Vlaardingen, Maassluis, Hoogvliet, Spijkenisse, Dordrecht, Zwijndrecht, Papendrecht, Ijsselstein, Nieuwegein, Woerden, Maarssen, Zeist, Bilthoven, Soest, Barneveld, Amersfoort, Harderwijk, Nijkerk GLD, Veenendaal, Doorn, Drieberg Rijsenburg, Walcheren, Roosendaal, Breda, Deurne, Venray, Venlo, Weert, Zutphen, Almelo, Dokkum, Dokkum, Bergum, Roden, Stadskanaal, Veendam.
thst zei:
de formule zou op de eerste 5 karakters moeten kijken, en voor de postcode waarvan je alleen maar de 4 cijfers hoeft in te typen een virtuele spatie, erbij moeten zetten.
Dat is niet nodig!
Wat nog wel toegevoegd kan worden (en dat is aan te bevelen), is controle op invoer van postcodes kleiner- of groter dan de in de lijst vermelde en ook voor het geval in E4 (nog) niets is ingevoerd. En je kunt m.i. beter niet postcode 1000 laten weergeven als een plaats niet wordt gevonden. En hoewel somproduct een krachtige functie is, heeft hier een andere oplossing de voorkeur.
Probeer het volgende:
=ALS(EN(ISGETAL(E4*1);E4>=1000;E4<=9999);VERT.ZOEKEN(E4;D80 : D649;1);ALS(AANTAL.ALS(G80:G649;E4)=0;"";INDEX(D80 : D649;VERGELIJKEN(E4;G80:G649;0))))
Verwijder de spaties (4 spaties totaal).
Let op: er is van uitgegaan dat van een postcode UITSLUITEND de eerste 4 cijfers worden ingevoerd, wat - naar ik uit je laatste bericht heb begrepen – het geval is.
Andere oplossingen zijn mogelijk.
Als een postcode of plaatsnaam wordt ingevoerd die niet voorkomt in de lijst, of als in E4 nog niets is ingevoerd, blijft de cel waarin bovenstaande functie staat, leeg. Wil je liever dat dan iets anders verschijnt, wijzig dan de dubbele aanhalingsteken voor INDEX in iets anders, bv. een 0 (nul).
Je zult zien dat plaatsnamen waarvan de eerste 4 tekens hetzelfde zijn, geen problemen geven (probeer Haarlem, Haaren, en Haarsteeg; of Heerhugowaard, Heerlen, en Heerenveen).
Verder moet je een plaatsnaam uiteraard volledig invoeren: “Winsum” zal niet worden gevonden, “Winsum GN” wel. Naast Katwijk bestaat ook “Katwijk ZH”. En Rijswijk komt onder 3 verschillende codes voor (2280, 4023, 4284), bij invoer van die plaatsnaam zal altijd 2280 verschijnen. (Advies: maak van de plaatsnamen een keuzelijst in alfabetische volgorde).
Succes er mee!
Franç.