[Excel] kolomwaarde in tabel opzoeken met meerdere criteria

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Highland
  • Registratie: Mei 2012
  • Laatst online: 22:30
Ik moet met enige regelmaat langere adreslijsten (vaak ca. 100 adressen) aanvullen met postcodes.

Nou heb ik een Exceltabel met alle postcodes van NL. Ik zou zeggen dat het opzoeken daarmee te automatiseren is, maar de puzzel gaat me vandaag mijn pet te boven.

Ik heb een tabel met de adressenlijst en een tabel met de postcodelijst. De adressenlijst wil ik aanvullen met de bijbehorende postcodes.

In plaatjes: ik heb de adressentabel [Tabel3], hieronder met een willekeurig adres.
Afbeeldingslocatie: https://tweakers.net/i/3WgKiaBENXkfinisLwTo1220ly0=/800x/filters:strip_exif()/f/image/VGpVKPgOvkTn6kgx7yzQhQnX.png?f=fotoalbum_large

Van dit adres wil ik de postcode opzoeken in deze tabel [PC_tabel]:
Afbeeldingslocatie: https://tweakers.net/i/pTTUOF5ynFT0TGT_R1zbMjXzgsg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/cVcTzit7tHHwMHW0anIIpXqk.png?f=user_large

Wat ik al gevonden of geprobeerd heb:
Met de formule: =INDEX(PC_tabel[#Alles];X.VERGELIJKEN(Tabel3[Adres];PC_tabel[[#Alles];[Straat]]);1) krijg ik een postcode uit de tabel op basis van een criterium, namelijk het adres. De X.vergelijken-formule zoekt het rijnummer op, waarmee de Index-formule in de bijpassende kolom de postcodewaarde kan vinden.

Maar de moeilijkheid is dat ik, om de juiste rij te vinden, meerdere criteria moet toepassen: eerst de gemeente, dan de woonplaats, dan het adres, vervolgens het nummer (groter-gelijk dan en kleiner-gelijk dan), waarbij bovendien een onderscheid moet worden gemaakt tussen even en oneven nummers.

Deze combinatie van criteria krijg ik niet voor elkaar. Wie kan helpen?

Beste antwoord (via Highland op 11-10-2024 11:30)


  • dixet
  • Registratie: Februari 2010
  • Laatst online: 20-06 17:26
Je kan dit ook zonder hulpkolom oplossen met de FILTER functie:

code:
1
=FILTER(postcode!A:A;(postcode!B:B=adres!A2)*(postcode!E:E=adres!D2)*(postcode!C:C<=postcode!C2)*(postcode!D:D>=postcode!C2);"")


Dit geeft uit je postcode-sheet de waarde uit kolom A (de postcode) wanneer de straatnaam en woonplaats gelijk zijn en het huisnummer groter of gelijk is aan MinNummer en kleiner of gelijk aan MaxNummer

Afbeeldingslocatie: https://tweakers.net/i/qZPDafq2CPY43fmFqF_03VPwBaQ=/800x/filters:strip_exif()/f/image/xe0eYk6TcMf1YHQN5fsiH339.png?f=fotoalbum_large


Je mist volgens mij nog wel een kolom in je postcodetabel: de even/oneven indicator

Alle reacties


Acties:
  • 0 Henk 'm!

  • Highland
  • Registratie: Mei 2012
  • Laatst online: 22:30
Via CoPilot inmiddels geleerd dat het opzoeken met meerdere criteria is op te lossen door een hulpkolom te maken. Dat wordt dan een combi van gemeente/woonplaats/Adres. Daar voeg je nog de waarde even/oneven aan toe (ook uit hulpkolom). De combi kun je dan tussen de twee tabellen vergelijken.

Daar weer het criterium aan toevoegen dat het huisnummer tussen MinNummer en MaxNummer moet liggen, is met nog niet gelukt. Uiteindelijk maar opgelost door alle lagere huisnummers te deselecteren en het resterende aantal hogere huisnummers handmatig te checken. Het moet op te lossen zijn, maar dit ging sneller.

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 20-06 17:26
Je kan dit ook zonder hulpkolom oplossen met de FILTER functie:

code:
1
=FILTER(postcode!A:A;(postcode!B:B=adres!A2)*(postcode!E:E=adres!D2)*(postcode!C:C<=postcode!C2)*(postcode!D:D>=postcode!C2);"")


Dit geeft uit je postcode-sheet de waarde uit kolom A (de postcode) wanneer de straatnaam en woonplaats gelijk zijn en het huisnummer groter of gelijk is aan MinNummer en kleiner of gelijk aan MaxNummer

Afbeeldingslocatie: https://tweakers.net/i/qZPDafq2CPY43fmFqF_03VPwBaQ=/800x/filters:strip_exif()/f/image/xe0eYk6TcMf1YHQN5fsiH339.png?f=fotoalbum_large


Je mist volgens mij nog wel een kolom in je postcodetabel: de even/oneven indicator

Acties:
  • +1 Henk 'm!

  • Highland
  • Registratie: Mei 2012
  • Laatst online: 22:30
Jaaa, dat is de oplossing. In beide tabellen heb ik nu voor de tekstvariabelen (inclusief het kenmerk IsEven=waar/onwaar) een gecombineerde hulpkolom gemaakt, waarmee ik de eerste filtering doe. Vervolgens de rekenregel voor de nummers, zoals je voorstelt. Dat geeft in mijn geval deze formule:

code:
1
=FILTER(PC_tabel[PostCode];(PC_tabel[Combi]=[@combi])*(PC_tabel[MinNummer]<=[@Nr])*(PC_tabel[MaxNummer]>=[@Nr]);"")


Waar de uitkomst leeg is, is iets bijzonders aan de hand (fouten in nummering, nieuwe nummers die nog niet in de PC-tabel staan). Dank, zo heb ik er een handige tool bij.