Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Selecteren van een tabel op basis van voorwaarde

Pagina: 1
Acties:

Onderwerpen

Vraag


  • JP1995
  • Registratie: november 2010
  • Laatst online: 27-12-2017
Beste forumleden,

Ik ben op dit moment bezig met in Excel een tool te maken waarbij ik automatisch het rest BPM bedrag kan berekenen voor importvoertuigen. Onderdeel van het rest BPM is de Co2 toeslag. Helaas veranderd ieder jaar de waardes voor de Co2 toeslag. Ik heb nu dus vanaf 2010 t/m 2016 7 tabellen met verschillende waarden. Wat ik nu probeer is op basis van een ingegeven variabele --> Eerste toelating auto (bijv. 01-03-2010) de juiste tabel te selecteren die bij dat jaar hoort.. En deze in een andere sheet weer te geven. Ik probeerde dit te doen met verticaal & horizontaal zoeken maar ik kom er niet uit.. Ik hoop dat iemand van jullie mogelijk een oplossing heeft. Mocht er meer informatie benodigd zijn dan hoor ik het graag. Hieronder een voorbeeld van de Excel tabellen om een idee te geven.

Excel voorbeeld tabellen

Alvast bedankt,

Mvg Jean-Paul

Alle reacties


  • breew
  • Registratie: april 2014
  • Laatst online: 07-04 11:04
Ik zou hiervoor met vba aan de slag gaan, maar wellicht kan het ook met excel-formules.. dus ik wacht even af :)

  • Lustucru
  • Registratie: januari 2004
  • Niet online

Lustucru

Adviseur

26 03 2016

offtopic:
vba kan een oplossing zijn en dan begint iemand iets over iPads te roepen


On topic:
De imho meest elegante oplossing is de brondata om te zetten naar twee tabellen: een voor t basistarief en een voor t extra tarief.

Horizontaal zet je de tijdperken uit, verticaal de CO2 klassen.
Met index(table,vergelijken(),vergelijken()) haal je t juiste tarief op.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • JP1995
  • Registratie: november 2010
  • Laatst online: 27-12-2017
Bedankt voor je reactie. Ik heb nu de tabel wat omgebouwd zoals je zei. Hij ziet er nu als volgt uit (zie foto). Het nadeel is dat er voor ieder jaar, andere Co2 klassen gelden. Ik weet niet of dit was wat je bedoelde. Ik snap alleen niet goed wat je bedoelt met de formule, ik krijg het niet voor elkaar in Excel..

Nogmaals bedankt voor je hulp..

Gr Jean-Paul

Excel voorbeeld tabellen 1

  • Lustucru
  • Registratie: januari 2004
  • Niet online

Lustucru

Adviseur

26 03 2016

Ik zie nu pas dat de onderverdeling in CO2 klassen ook ieder jaar afwijkt. Dan wordt het lastiger maar niet onmogelijk, maar is het idee om het in één tabel te gieten niet echt geweldig. Tenzij je de moeite neemt om elke grenswaarde in de tabel op te nemen, als één oplopende reeks.

Het alternatief is idd om toch aan de hand van de jaarwaarde een bereik te definieren. Makkelijkste is om een tabel te maken waarbij voor ieder jaar het juiste bereik genoemd wordt. DAt kun je dan ophalen met vert.zoeken en dmv indirect kun je dat weer gebruik om de juiste waarde te vinden. Je krijgt dan iets als:

=vert.zoeken([Co2-uitstoot;indirect(vert.zoeken(datum;hulptabel;2;1);2;1)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • breew
  • Registratie: april 2014
  • Laatst online: 07-04 11:04
Dit antwoord voldoet niet helemala aan je vraag, maar is mogelijk wel interessant..

Ik heb een (slordige, even geen zin in netjes afwerken :+ ) functie geschreven, die, op basis van een datum en co2_uitstoot, het bijbehorende basistarief zoekt in een referentietabel... Kan je daar iets mee?

co2_1

De code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Option Explicit

Public Function CO_BASISTARIEF(rngDatum As Range, rngCO_klasse As Range, rngCO_tabel As Range) As Long

Dim datDatum As Long
Dim van As Long
Dim tot As Long
Dim co_van As Long
Dim co_tot As Long
Dim CO_waarde As Long
Dim rij As Range
Dim lonRij As Long

datDatum = rngDatum.Value
CO_waarde = rngCO_klasse.Value

CO_BASISTARIEF = 999999999

For Each rij In rngCO_tabel.Rows
  lonRij = rij.row
  van = Cells(lonRij, 1).Value
  tot = Cells(lonRij, 2).Value
  co_van = Cells(lonRij, 3).Value
  co_tot = Cells(lonRij, 4).Value
  If van <= datDatum And tot >= datDatum And co_van <= CO_waarde And co_tot >= CO_waarde Then
    CO_BASISTARIEF = Cells(lonRij, 5).Value
  End If
Next rij

End Function


  • JP1995
  • Registratie: november 2010
  • Laatst online: 27-12-2017
Bedankt allemaal voor de hulp! Ik ga beide opties dit weekend eens uitwerken.

Gr Jean-Paul

  • Lustucru
  • Registratie: januari 2004
  • Niet online

Lustucru

Adviseur

26 03 2016

quote:
JP1995 schreef op woensdag 13 december 2017 @ 19:41:
Bedankt voor je reactie. Ik heb nu de tabel wat omgebouwd zoals je zei. Hij ziet er nu als volgt uit (zie foto). Het nadeel is dat er voor ieder jaar, andere Co2 klassen gelden. Ik weet niet of dit was wat je bedoelde. Ik snap alleen niet goed wat je bedoelt met de formule, ik krijg het niet voor elkaar in Excel..

Nogmaals bedankt voor je hulp..

Gr Jean-Paul

[afbeelding]
ik bedoelde eigenlijk meer zoiets:

https://tweakers.net/ext/f/jDKOgq0nUWiYFfbQmENmonXL/full.png

Je neemt alleen de grenswaarden op in rij en kolomkop. Om de jaarvergelijking over meerdere kolommen goed te laten werken voeg je cellen in de kolomkoppen per jaar samen. Omdat idd de co2 klassen steeds wijzigen moet je die ook in de tabel opnemen. Dan wordt de formule ook anders. Bijvoorbeeld in dit voorbeeld in cel C2

=VERT.ZOEKEN($B2;VERSCHUIVING($A$7:$C$11;0;VERGELIJKEN($A2;$A$5:$I$5)-1);2)


Door een vergelijking op datum verschuif je het zoekbereik, vert.zoeken doet de rest.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True