Hoi Vitasyn,
Je zult je moeten verdiepen in matrix-formules, in dit forum staat er al een heleboel over.
De gegevens van het klantnummer zijn eenvoudig te verkrijgen met de formule:
Facturen!D4: =als(aantal.als(Klanten!$A$2:$A$99;$D$14)=0;"";index(Klanten!$C$2:$C$99;vergelijken($D$14;Klanten!$A$2:$A$99;0)))
Deze formule zoekt het adres (kolom C) van de klant in het blad Klanten
De andere invoergegevens moet je zelf doen.
Voor de facturen in een bepaalde maand van een bepaalde leverancier daar heb je de matrix-formule voor nodig.
Als je de kolom G bekijkt dan staan daar de klantnummers in. Kijk naar het resultaat van de formule:
=(Registratie!$G$3:$G$9=$K$1)*1 => {0\1\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0} (gebruik F2 en daarna F9 voor het resultaat)
Oftewel alleen het tweede klantnummer uit de reeks is gelijk aan het klantnummer van $D$14.
We breiden de formule uit:
=(Registratie!$G$3:$G$19=$K$1)*RIJ(Registratie!$G$3:$G$19) => {0\4\0\0\0\0\0\0\0\12\0\0\0\0\0\0\0}
We hebben nu het rijnummer van alle (in dit geval slechts 2) klanten die voldoen aan $D$14.
Uit deze lijst willen we nu de facturen van de maand september halen (maand staat in K2).
=(MAAND(Registratie!$A$3:$A$19)=$K$2)*(Registratie!$G$3:$G$19=$K$1)*RIJ(Registratie!$G$3:$G$19) => {0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0}
In dit geval blijft er slechts 1 factuur over en die staat in Rij 4.
Ten behoeve van een voorbeeld verander ik de factuurdatum van Rij 12 ook in september zodat er twee rekeningen in september zijn.
{0\4\0\0\0\0\0\0\0\12\0\0\0\0\0\0\0}
Nu wil ik in kolom K van rij 19 t/m 39 de rijnummers van de facturen onder elkaar zien. Daar moet je eerst een trucje voor toepassen. De factuur van rij 4 moet boven de factuur van rij 12 staan, dat is logischer. Ik verander de formule in:
=(MAAND(Registratie!$A$3:$A$19)=$K$2)*(Registratie!$G$3:$G$19=$K$1)*(20-RIJ(Registratie!$G$3:$G$19)) => {0\16\0\0\0\0\0\0\0\8\0\0\0\0\0\0\0}
In dit geval is 20 gekozen omdat 20 groter is dan het bereik dat tot rij 19 loopt. Is rij 999 je bereik, kies dan 1000 ipv 20!
De oudste factuur in september heeft nu het grootste getal.
in cel K19: =GROOTSTE((MAAND(Registratie!$A$3:$A$19)=$K$2)*(Registratie!$G$3:$G$19=$K$1)*(20-RIJ(Registratie!$G$3:$G$19));RIJEN(K$19:K19))
Voer deze formule op de 'normale' manier in en er verschijnt 0, hetgeen niet juist is. Maar als je de formule invoert met Shift & Ctrl & Enter tegelijk dan verschijn er het getal 16, de grootste waarde uit de reeks {0\16\0\0\0\0\0\0\0\8\0\0\0\0\0\0\0}
Kopieer je formule naar beneden dan verschijnt in K20 8 en in K21 0.
Met de formule:
in cel A19: =ALS($K19=0;"";INDEX(registratie!C$3:C$19;20-$K19))
krijg je het referentienummer van de offerte van 21-9-09 van klant 3001 te zien. De '20' in deze formule komt natuurlijk overeen met de 20 uit de formule van K19.
Ik kan mij voorstellen dat het hocus pocus is, maar probeer het stap voor stap en probeer te begrijpen wat de matrix-formule doet.
Jeroen