Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel 2010] return op basis van parameter

Pagina: 1
Acties:

  • xtrme
  • Registratie: April 2004
  • Laatst online: 13-11 20:39
ik heb 2 datadumps (datadump (1), datadump (2)).
De eerste data dump bevat een ID, eind datum,
in de eerste datadump staan een aantal parameter waarop de dichtstbijzijnde waarde in dump 2 gevonden moeten worden

dump 1 is als volgt opgebouwd
ID | ART1 | datum | D1 | D2| datum2 | ART2 | datum 3| OUTPUT

dump 2 is opgebouwd als
Soort | ART2 | WIE | EX | EX | datum4

in de kolom "soort" van dump 2 staat classificatie of een regel wel op niet meegenomen moet worden. bijv 101, 261 & 262 niet meenemen maar 321 322 551 552 wel

Wat ik graag zou willen zien;
dat er in de kolom OUTPUT van datadump 1 de Soort uit dump 2 komt te staan
deze soort moet een zoek resultaat zijn die de oudste / laagste datum mogelijke optie uit datadump 2 zijn

In dat de zoek opdracht moet de ART2, uit dump 1&2) TEKST/WAARDE gelijk zijn en moet datum 4 in de range [datum3; datum2] vallen en vervolgens mag het niet soort (101, 261 & 262) of juist wel (321 322 551 & 552) zijn

en deze soort is dan de feedback in de cel

zelf ben ik in eerste instantie bezig geweest met ALS, Verticaal zoeken, en INDEX Vergelijken formules en combinaties hiervan

De laatste formule is dit
=INDEX('Datadump (2)'!$"Soort"$2:$Soort$10000;MIN(ALS(("datum 3 cel" >='Datadump (2)'!datum4 cel 2:datum4 cel 10000)*(datum 2<='Datadump (2)'!datum4 cel 2:datum4 cel 10000);VERGELIJKEN(RIJ('Datadump (2)'!$"Soort"$2:$Soort $10000);RIJ('Datadump (2)'!$"Soort"$2:$Soort$10000)))))

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Met een matrixformule bouw je eerst een matrix op van regelnummers die voldoen aan je voorwaarde, en daar pak je de kleinste van. Met index haal je de uiteindelijke waarde op. Omdat je in excel een logische "AND" kunt berekenen door een vermenigvuldiging en een logische "OR" kunt bereiken door een optelling kun je het zo gek maken als je zelf wilt. Bijvoorbeeld:

code:
1
{=KLEINSTE(ALS((F2=$A$1:$A$100)*(G2<$B$1:$B$100)*(H2>$B$1:$B$100)*((101=$C$1:$C$100)+(303=$C$1:$C$100));RIJ($A$1:$A$100));1)}


levert de eerste rij in het bereik A1:C100 waarvoor geldt dat A[rij]=f2, B[rij] ligt tussen G2 en H2; C[rij] is 101 of 303.

Accolades niet intypen, maar formule invoeren met ctr-shift-enter

En als je matrixformules te ingewikkeld vindt maak je op vergelijkbare wijze eerst een hulpkolom (met waarde waar, onwaar) en maak je het af met een simpel vert.zoeken().

[ Voor 10% gewijzigd door Lustucru op 07-10-2016 12:41 ]

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