• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

automatisch uren invullen in tabel

Status
Niet open voor verdere reacties.

Pander

Gebruiker
Lid geworden
14 okt 2014
Berichten
198
Goedemorgen,
is er iemand die met mij mee zou willen denken?

Ik probeer op basis van een weeknummer en afhankelijk van de waarde in een bepaalde cel een aantal andere cellen gevuld te krijgen met een reeks getallen.
Ik heb een voorbeeldje ingesloten:

In blad1 kolom D wordt een weeknummer bepaald die afhankelijk is van de waarde in kolom H.
Dat is het eerste weeknummer waar na, in een bepaalde frequentie, afhankelijk van de waarde in kolom H een aantal uren moeten worden wegschreven.
De frequentie staat in tabblad 'beschikbaar en uren per cat.

Bovenstaande betekent dan dat er vanaf week 37 (ingeval van de nieuwjaarsduik) er in de daarop volgende 10 weken iedere week 2 uren moeten worden geschreven in de tabel in Blad1 vanaf AU3:BD3

3 problemen die ik daarbij tegenkom:
Hoe bepaal ik het juiste weeknummer? (hij telt soms terug naar een negatief getal)
Hoe krijg ik de uren in de juiste frequentie in de tabel? en
Soms zijn er nog uren die moeten worden weggeschreven voor de het weeknummer welke in kolom D (blad1) wordt bepaald.

Alvast dank voor het meedenken.

NB: de namen zijn fictief

gr,
Pander
 

Bijlagen

Laatst bewerkt:
leg eens beter uit hoe de week moet bepaald worden
formule nogal onduidelijk om de week te bepalen
 
Die zal vast ook handiger kunnen; maar het is als volgt bedoeld:

als er in kolom I een "K" staat dan dient er in kolom D op basis van de datumnotatie in kolom A een weeknummer te worden bepaald waar vervolgens 4 weken van af moeten worden getrokken.
als er in kolom I een "A, B" of "C" staat dan dient er in kolom D op basis van de datumnotatie in kolom A een weeknummer te worden bepaald waar vervolgens 16 weken van af moeten worden getrokken.

Sorry voor de verlate reactie. Normaliter krijg ik een emailtje dat er iemand op de post had gereageerd; maar deze heb ik niet gehad.

gr
 
zie E3, E4 en E5
 

Bijlagen

@ Haije heb je het wel goed gelezen
In kolom d komt er een weeknr te staan op basis van een datum in kolom a en volgens mij moet er van het gevonden weeknr 16 of 4 weken worden afgetrokken als ik het goed lees
 
allereerst: de beste wensen, en beiden dankjewel voor het meedenken. Top

Wat glda19 zegt klopt: bevat kolom H een "A,B of C" Dan zoek ik het weeknummer van op basis van de datum notatie in kolom A minus 16 weken.
Bevat kolom H een "K" dan idem als hierboven maar dan minus weken.
 
en wat zou dan de gewenste uitkomst moeten zijn?
 
umh.. in eerste instantie het juiste weeknummer. Verminderd met 16 of 4 weken...
 
en wat is dan de concrete datum?
 
Gezien het aantal keer dat de vraag en het bestand bekeken is en de reacties die er zijn begrijpt niemand iets van de vraag.

Begin eerst eens met het vereenvoudigen van de formule waarmee je het weeknummer bepaalt.
ipv
PHP:
=IF(H3="K";IF(A3="";"";INT((A3-SUM(MOD(DATE(YEAR(A3-MOD(A3-2;7)+3);1;2);{1E+99\7})*{1\-1})+5) /7))-4;IF(OR(H3="A";H3="B";H3="C")=TRUE;IF(A3="";"";INT((A3-SUM(MOD(DATE(YEAR(A3-MOD(A3-2;7)+3);1;2);{1E+99\7})*{1\-1})+5) /7))-16))

PHP:
=IF(A3="";"";INT((A3-SUM(MOD(DATE(YEAR(A3-MOD(A3-2;7)+3);1;2);{1E+99\7})*{1\-1})+5) /7)-4*(H3="k")-16*(H3<>"k"))

Plaats vervolgens een uitgewerkt voorbeeld met wat de bedoeling is.
 
Gezien het aantal keer dat de vraag en het bestand bekeken is en de reacties die er zijn begrijpt niemand iets van de vraag.

Begin eerst eens met het vereenvoudigen van de formule waarmee je het weeknummer bepaalt.
ipv
PHP:
=IF(H3="K";IF(A3="";"";INT((A3-SUM(MOD(DATE(YEAR(A3-MOD(A3-2;7)+3);1;2);{1E+99\7})*{1\-1})+5) /7))-4;IF(OR(H3="A";H3="B";H3="C")=TRUE;IF(A3="";"";INT((A3-SUM(MOD(DATE(YEAR(A3-MOD(A3-2;7)+3);1;2);{1E+99\7})*{1\-1})+5) /7))-16))

PHP:
=IF(A3="";"";INT((A3-SUM(MOD(DATE(YEAR(A3-MOD(A3-2;7)+3);1;2);{1E+99\7})*{1\-1})+5) /7)-4*(H3="k")-16*(H3<>"k"))

Plaats vervolgens een uitgewerkt voorbeeld met wat de bedoeling is.

dank voor je bijdrage mbt tot de code; die ga ik proberen
Ik kan de vraag niet duidelijker stellen

Ik zal een simpeler voorbeeldje maken; misschien helpt het.
 

dankjewel cow18 voor ook jouw bijdrage. Ik kom er even op terug. Vooral ook omdat ik niet bekend ben met de formules die je gebruikt (index en vergelijken). Dat de tabel word gevuld met de juiste uren is wel hoopvol.
Ik zal straks een versimpeld bestandje uploaden waar ik zo goed als mogelijk de gewenste uitkomst ga beschrijven en illustreren
 
ik heb een ander bestandje gemaakt.
Excuus voor de onduidelijkheid. Ik denk dat dit helderder moet zijn.

Laat het rustig weten wanneer dat niet het geval is.
 

Bijlagen

korte uitleg voor mijn bestand in #12
dat terugrekenen in weken, vooral als er nog een week 53 doorloopt in het volgende jaar of week 1 begint in vorig jaar is nogal lastig.
Dus daarom heb ik bovenin een rij toevoegd met datums.
K1 werd dus 30/1/2019 als de maandag van week 1 van 2019, volledig volgens de weeknummering in Europa.
De cellen er naast zijn telkens +7, dus een volle week.
Ik zie dat eigenlijk de cellen K2 : DK2 de formule =jaar(k1) hadden moeten bevatten zodat je daar een correct jaartal had kunnen zien staan. Bij een jaarovergang is dat altijd een beetje tricky, maar bijkomstig.
Vervolgens K3 : DK3 is de europese weeknummering overeenkomstig de maandagen in K1 : DK1. (die afwijkende notatie van de bereiken is omdat er daar anders vervelende smileys komen te staan)
Die 2e en 3e rij zijn louter voor jou, excel zal verder alleen met rij 1, dus de datums rekenen, dat is stukken eenvoudiger !

Je wilde afhankelijk van een letter (A-C of K) ofwel 16 weken ofwel 4 weken achteruit denken vanaf een bepaalde startdatum en vanaf dan een aantal uur per week toewijzen.
formule in K4
=ALS.FOUT(INDEX('beschikbaar en uren per cat.'!$D$13:$O$16;VERGELIJKEN(Blad1!$H4;'beschikbaar en uren per cat.'!$C$13:$C$16;0);(K$1-$A4)/7+$E4);"-")
* 'beschikbaar en uren per cat.'!$D$13:$O$16 : je hebt je vooraf bepaalde uren per week in een tabelletje op dat andere blad gezet.

* VERGELIJKEN(Blad1!$H4;'beschikbaar en uren per cat.'!$C$13:$C$16;0) : door de letter A-C die je opgegeven had ik H4 te vergelijken met C13:C16 die naast die tabel staan, weet je dat je in welke rij van die tabel op het andere blad moet kijken.

* (K$1-$A4)/7+$E4) : het verschil van de maandag die in rij 1 staat en je startdatum in K1 gedeeld door 7 = het aantal weken verschil, tel daar dat surplus aan weken bij (die 4 of 16), dan weet je hoeveel weken je maandag in rij 1 verwijderd is van je startdatum - dat aantal weken extra. Door die deling is dat wel niet netjes een geheel getal, maar die index-formule neemt gelukkig toch het gehele deel.
Ik heb zo het vermoeden dat je een week extra zal moeten aftrekken of naar boven afronden of zo, een keer je de formule goed begrijpt en er aan het finetunen gestart zal worden.
Het komt eigenlijk hier op neer dat deze formule zegt in welke kolom van die bovenstaande tabel er gezocht moet worden. Is het resultaat netjes afgerond iets tussen 1 en 10 (want er zijn 10 kolommen) dan heb je prijs.
Is dat niet het geval, dus <1 of >10, dan resulteert die index-formule in een fout. Die wordt netjes afgevangen door de "als.fout"-constructie en geeft daarop "-". Ook een verkeerde of ontbrekende letter veroorzaakt eenzelfde fout.

Duidelijk ? Dus je 1e argument heeft de tabel terug, 2e argument de rij in die tabel, het 3e argument de kolom van die tabel, dus het kruispunt van de rij en de kolom, dat is de waarde die je nodig hebt.

Dubbelcheck : de stom in kolom J komt netjes overeen met de gevraagde waarde in kolom I, dus iedereen is tevreden.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan