• 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.

wie kan mij de formule eens uitleggen

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
DE formule staat in het voorbeeld op het werkblad printkalender in voorwaardelijk opmaak
Deze is indertijd gemaakt door iemand van het forum hier
=EN($Y$7<>"Voltijds";OF(TEKST(B5;"[$-813]DDDD")=$X$8;TEKST(B5;"[$-813]DDDD")=$Y$8;EN(TEKST(B5;"[$-813]DDDD")=$Z$8;IS.EVEN(VERT.ZOEKEN($AA$8;Datablad!$G$17:$H$18;2;ONWAAR)+GEHEEL(B5-DATUM(2016;2;29)/7)))))

Dit versta ik:
Het eerste deel tot aan het commando is.even dit snap ik.
Dus daar gaan we kijken of cel y7 verschillende is van voltijds en of de dag in cel b5 = de dag in x8 enz en dit geeft dan de juiste cel een achtergrondkleur.
Wat ik wel weet van het 2de deel na de is.even dat dit zorgt dat we als de wisselende dag valt in de week dat je moet werken deze kunnen verschuiven.

Maar hoe weet is.even over welke dag het gaat?
De wisselende dag staat in z8?
En hoe ze die verschuiven ?
Op het datablad staat er bij week niet verschuiven 0 en bij week verschuiven een 1.
 

Bijlagen

=EN($Y$7<>"Voltijds" = je bent niet voltijds bezig
;OF(
TEKST(B5;"[$-813]DDDD")=$X$8; = je bent een vrijdag
TEKST(B5;"[$-813]DDDD")=$Y$8; = je bent een donderdag
EN(TEKST(B5;"[$-813]DDDD")=$Z$8; = je bent een woensdag
IS.EVEN(VERT.ZOEKEN($AA$8;Datablad!$G$17:$H$18;2;ONWAAR)+GEHEEL(B5-DATUM(2016;2;29)/7))))) = is (het aantal weken sedert 29/2/2016 (was een maandag) + 0 of 1) even
die 0 of 1 is als je die woensdag in de andere week wenst.

Dus de bruine kleur is er als je niet voltijds werkt en de datum of een vrijdag of een donderdag of [ een woensdag EN dan afwisselend de ene of de andere week ]
dus belangrijk is de positie van de haakjes.
 
Laatst bewerkt:
@cow18
Zover verstond ik het ook al min of meer.

Zo is het de eerst waarde in de rij dagen de wisselt?

=EN($Y$7<>"Voltijds";OF(TEKST(B5;"[$-813]DDDD")=$Z$8;TEKST(B5;"[$-813]DDDD")=$Y$8;EN(TEKST(B5;"[$-813]DDDD")=$X$8;IS.EVEN(VERT.ZOEKEN($AA$8;Datablad!$G$17:$H$18;2;ONWAAR)+GEHEEL(B5-DATUM(2016;2;29)/7))))
Maar hoe weet de formule dat het de 3de dag in de rij is die wisselt?

Die is.even geeft een waar of onwaar weer niet?
Maar waarom is het dan niet voldoende van de onwaar of waar van het datablad achter de dagen te zetten?
en waarom starten van af het jaar 2016 soms starten ze in 1900 in bepaalde formules?
 
je moet vooral goed kijken waar de haakjes staan :

niet voltijds en * of een vrijdag TEKST(B5;"[$-813]DDDD")=$Z$8
* of een donderdag TEKST(B5;"[$-813]DDDD")=$Y$8
* of een woensdag en dan nog om de week EN(TEKST(B5;"[$-813]DDDD")=$X$8;IS.EVEN(VERT.ZOEKEN($AA$8;Datablad!$G$17:$H$18;2;ONWAAR)+GEHEEL(B5-DATUM(2016;2;29)/7))

waarom die datum in 2016 en niet ergens 1900, maakt eigenlijk niet uit, je wil gewoon de ene week zo hebben en de andere week anders, maar dus moet je van je datum ergens willekeurig een maandag aftrekken en dat verschil delen door 7, dan krijg je het weeknummer sinds je begin (of dat nu in 2016 of 1900 is, is bijzaak) en dan wil je weten of dit weeknummer al dan niet even is. 2 januari 1900 is een maandag, dus trek je er 2 van af
even de nieuwe formule invoeren ....
 
deze is eenvoudiger, maar dan kan je die W7:AA8 niet meer gebruiken, maar hoeveel verander je die vandaag nog ?

=EN($Y$7<>"Voltijds";OF(WEEKDAG(B5;14)<=2;(WEEKDAG(B5;2)=3)*REST(1+GEHEEL(B5/7);2)))

veel minder haakjes dus gemakkelijker te volgen
weekdag met als 2e argument 14 doet de week op donderdag beginnen, dus weekdag 1 en 2 zijn donderdag en vrijdag
weekdag met als 2e argument 2, doet de week op maandag beginnen, dus woensdag is een 3

=EN($Y$7<>"Voltijds";
OF(WEEKDAG(B5;14)<=2; ----> een donderdag of een vrijdag
(WEEKDAG(B5;2)=3)*REST(1+GEHEEL(B5/7);2))) ----> een woensdag om de 2 weken waarbij je die rode 1 in een 0 kan veranderen om die wisselende week om te draaien
 
Laatst bewerkt:
Maar denk dat uw formulier niet echt bruik baar is want wie zegt dat een andere persoon niet in het begin van de week thuis is. Had zo een collega
Dus kan zelf de dagen niet meer kiezen
 
Laatst bewerkt:
even in verband met die 29/2/2016, zie geel kadertje in Y19 en volgende (mag je straks weer verwijderen) : door geen rekening te houden met een datum en gewoon het geheel getal te nemen van je datum/7 begint een volgende weeknummer op een zaterdag en die valt buiten de gewone werkweek, dus hoeven we eigenlijk niet te corrigeren en vervalt dit moeilijke stukje dus.

Dan is nog die aanpassing gebeurt in X9:AA9, die maakt die voorwaardelijke formule korter en leesbaarder
in AA9 kan je dat "=" vervangen door een "<>" teken moest het resultaat van deze formule tot de andere week leiden ---> +(AA8=Datablad!G17)


Vervolgens kan je ofwel opteren voor een constructie zoals als(en(...;of(...;...;...)) maar je kan een EN ook vervangen door een * en een OF door een +.
Is het resultaat van een formule in voorwaardelijke opmaak een getal <>0, dan wordt er aan de opmaak voldaan, is het resultaat een fout of 0 wordt er niets gedaan.
En dan zie je straks staan ($Y$7<>"Voltijds")* ... ---> is Y7 niet voltijds, dan is het resultaat tussen de haakjes een 1 en hangt het resultaat of van wat er nog volgt, is Y7 = voltijds, dan is het resultaat tussen de haakjes 0 en doet de rest er niet meer toe, het zal 0 blijven ( of nog resulteren in een fout, moest er daar iets gek gestaan hebben)
Vervolgens zie je tussen die haakjes eigenlijk de som van 2 zaken staan, die rode + wil daar een OF zeggen

=($Y$7<>"Voltijds")*(ISGETAL(VERGELIJKEN(WEEKDAG(B5;2);$X$9:$Y$9;0))+(WEEKDAG(B5;2)=$Z$9)*REST(GEHEEL(B5/7)+$AA$9;2))


=($Y$7<>"Voltijds")* = niet voltijds EN
(ISGETAL(VERGELIJKEN(WEEKDAG(B5;2);$X$9:$Y$9;0)) = je eerste 2 gekozen weekdagen (vrijdag & donderdag)
+(WEEKDAG(B5;2)=$Z$9)*REST(GEHEEL(B5/7)+$AA$9;2)) = OF je 3e gekozen weekdag alternerend
 

Bijlagen

Laatst bewerkt:
wat is het nu van die =+( volgens mijn testen is nergens die + nodig
Plots viel mij de gedachte binnen van doen in nog in 2 ploegen werkte dan viel bv de late steeds in de even week.
Zouden we zo iets niet kunnen doen.
 
Laatst bewerkt:
heb je het over die rode + die een OF voorstelt ?
Bon, als het zonder kan, dan doe je het zonder, ik hou je niet tegen.:)
 
jij zet op z20 deze formule =+GEHEEL(Y20/7) waar daar en op andere plaatsen die +
en zie ook eens naar mijn voorlaatste post
 
Dat oranje kader vanaf Y20 is ter illustratie van als je gewoon het gehele deel van de dag/7 neemt, dat je dan een oplopend weeknummer uitkomt waarbij je week loopt van de zaterdag tot de daaroplopende week de vrijdag.
Dus sinds 1/1/1900 zitten we op vandaag zat 10/12/2022 in weeknummer 6.415, dus oneven, die eventueel nog omgewisseld kan worden afhankelijk van de waarde van AA9. Oja, en daar is die plus een gewone sum en geen OF.
Je moet even werken met "formules>evalueren" en dan gewoon door de formule lopen om het netjes te zien werken voor je ogen
 
of je nu in de gele kader =+ of = maakt geen verschil
 
De + stamt nog uit de tijd van Lotus 123.
Dus laat het weg,..... klaar.
 
Het moet volgens mij veel simpeler kunnen?
Door te spelen met de wisselende dag valt in de even of on even weken en klaar
 
+(WEEKDAG(B5;2)=$Z$9) = het is een woensdag
* = EN
REST(GEHEEL(B5/7)+$AA$9;2) [het "weeknummer" van B5 + 0 of 1 (naargelang AA9 waar of onwaar is)] is oneven

het resultaat is dan bv voor vandaag

+(WEEKDAG(B5;2)=$Z$9)*REST(GEHEEL(B5/7)+$AA$9;2)
+ 0 * rest(6145+1;2) --> vandaag zijn we geen woensdag, dus 1e term is 0, de 2e term is de 6145e week + 1 (want is het "niet verschuiven) = 6416, de rest van de deling 6416/2 is 0
dus 0*0 = 0 = vandaag wordt niet gekleurd en eigenlijk kan je ook al zeggen dat de woensdag van "onze" week, die eigenlijk 14/12 is (omdat "onze" week op zaterdag begint) niet gekleurd zal worden omdat het 2e lid van de vermenigvuldiging 0 is.

nu moet je zeggen hoe je dat korter kan
 
Laatst bewerkt:
Ik denk dat het moet zonder het * rest gedeelte.
Enkel door naar het weeknr te kijken voor de wisselende dag en te vergelijken met wat de gebruiker ingeeft.
 
feel free ...
 
weet niet goed he ik dit kan doen
enkel met 2 vo's
 
Inderdaad feel free. En post het antwoord op je eigen vraag ook even, als je het dan toch weet. Ik leer er veel van.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan