Bonjour et merci du retour.
Guido a écrit :
> Bonjour Charabeuh,
> Je te remercie pour ton aide et tes solutions. C'est parfait pour mon
> fichier.
> milles merci et salutations
> Guido
> On 16 avr, 08:37, Charabeuh wrote:
Bonjour et merci du retour.
Guido a écrit :
> Bonjour Charabeuh,
> Je te remercie pour ton aide et tes solutions. C'est parfait pour mon
> fichier.
> milles merci et salutations
> Guido
> On 16 avr, 08:37, Charabeuh <ple...@feed.back> wrote:
Bonjour et merci du retour.
Guido a écrit :
> Bonjour Charabeuh,
> Je te remercie pour ton aide et tes solutions. C'est parfait pour mon
> fichier.
> milles merci et salutations
> Guido
> On 16 avr, 08:37, Charabeuh wrote:
Bonjour Charabeuh
j'ai également pris la version Formule Matricielle (qui sera je pense
ma préférée) vu que ce fichier est pensé pour être partagé avec
d'autres personnes.
Après avoir essayé de comprendre la formule (et pas forcément réussi)
je voudrai savoir ce qui ne te convenait pas avec ?
Merci d'avance
Guido
Bonjour Charabeuh
j'ai également pris la version Formule Matricielle (qui sera je pense
ma préférée) vu que ce fichier est pensé pour être partagé avec
d'autres personnes.
Après avoir essayé de comprendre la formule (et pas forcément réussi)
je voudrai savoir ce qui ne te convenait pas avec ?
Merci d'avance
Guido
Bonjour Charabeuh
j'ai également pris la version Formule Matricielle (qui sera je pense
ma préférée) vu que ce fichier est pensé pour être partagé avec
d'autres personnes.
Après avoir essayé de comprendre la formule (et pas forcément réussi)
je voudrai savoir ce qui ne te convenait pas avec ?
Merci d'avance
Guido
Bonsoir Guido,
Ce qui me g ne dans cette formule matricielle est sa compr hension.
Quand on est plong dans le probl me la recherche d'une solution, une
formule complexe se construit petit petit et son expression finale
semble logique.
Y revenir quelques temps apr s, quand on a oubli le cheminement de
construction de la formule, prend beaucoup de temps et d'efforts. Alors
qu'une fonction personnalis e bien document e se lit (presque) sans
effort.
==> Je viens d'ailleurs, tout en te r pondant, de trouver une erreur
dans la formule matricielle
==> ce qui illustre ma r ticence vis vis des formules trop complexes.
Tu remarqueras que la pr c dente formule fournie donne une erreur quand
un mois est enti rement rempli de X.
Si on reconstruit la formule pour janvier/f vrier:
La formule utilise la fonction decaler pour rep rer des cellules.
DECALER(B$4;NBVAL(A$4:A$34)-1;0) rep re la derni re cellule de la
colonne des X de janvier. NBVAL(A$4:A$34) tant le nombre de jour du
mois de janvier.
ET(DECALER(B$4;NBVAL(A$4:A$34)-1;0)=E$4;E$4="x") v rifie que la
derni re cellule de mois de janvier est gale la premi re cellule de
f vrier et que toutes les deux valent "x". Si c'est le cas, on calcule
le nombre de "x" cheval sur deux mois, sinon on renvoie "".
Nombre de x en fin janvier:
On recherche le num ro de la ligne de la premi re cellule vide (="") en
remontant partir de la fin du mois:
MAX((ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Il faut que le jour existe : (ESTNUM(A$4:A$34)
Il faut que la cellule soit vide : (B$4:B$34="")
et dans ce cas on retourne le num ro de ligne : (LIGNE(B$4:B$34)
Il y a un hic quand le mois est totalement rempli de "x" car dans ce
cas c'est 0 qui est retourn alors qu'il faudrait que ce soit la ligne
3.
On peut tenir compte de cela en prenant
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Le nombre de x est donc la diff rence entre le dernier N de ligne du
mois de janvier (3+NBVAL(A$4:A$34)) et le plus grand N de ligne de
janvier qui contient "":
(3+NBVAL(A$4:A$34))-
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Nombre de x en d but f vrier:
On recherche le num ro de la ligne de la premi re cellule vide en
descendant partir du mois de f vrier:
MIN(ESTNUM(D$4:D$34) * (E$4:E$34="")* LIGNE(E$4:E$34))
Il faut que le jour existe : (ESTNUM(D$4:D$34)
Il faut que la cellule soit vide : (E$4:E$34="")
et dans ce cas on retourne le num ro de ligne : (LIGNE(E$4:E$34)
Il y a un Pb. Si la condition SI(ESTNUM(cellule D) * (cellule E="")*
LIGNE(E) est fausse, elle retourne 0.
Donc le minimum des lignes gales "" ou sans date sera toujours 0 d s
qu'il y a un x dans la colonne ou bien que le mois compte moins de 31
jours.
on peut r soudre cela en affectant 999 aux celulles contenant un X ou
sans date.
MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34=""); LIGNE(E$4:E$34);999))
Il y a un autre PB. si le mois est enti rement rempli de "x", alors la
formule retourne 999 alors qu'il faudrait que ce soit la ligne suivant
le dernier jour du mois soit 4+NBVAL(D$4:D$34). On peut faire:
MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))
Le nombre de x est donc la diff rence entre la premi re ligne de
f vrier qui contient "" et la premi re ligne du mois de f vrier (=4).
(MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))-4)
La formule matricielle compl te mettre en D39 puis recopier est
donc:
=SI(ET(DECALER(B$4;NBVAL(A$4:A$34)-1;0)=E$4;E$4="x");(3+NBVAL(A$4:A $34))-
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))+
(MIN(SI(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))-4);"")
Ces explications laborieuses montrent pourquoi je pr f re une fonction
personnalis e document e!
Guido a couch sur son cran :
> Bonjour Charabeuh
> j'ai galement pris la version Formule Matricielle (qui sera je pense
> ma pr f r e) vu que ce fichier est pens pour tre partag avec
> d'autres personnes.
> Apr s avoir essay de comprendre la formule (et pas forc ment r ussi)
> je voudrai savoir ce qui ne te convenait pas avec ?
> Merci d'avance
> Guido
Bonsoir Guido,
Ce qui me g ne dans cette formule matricielle est sa compr hension.
Quand on est plong dans le probl me la recherche d'une solution, une
formule complexe se construit petit petit et son expression finale
semble logique.
Y revenir quelques temps apr s, quand on a oubli le cheminement de
construction de la formule, prend beaucoup de temps et d'efforts. Alors
qu'une fonction personnalis e bien document e se lit (presque) sans
effort.
==> Je viens d'ailleurs, tout en te r pondant, de trouver une erreur
dans la formule matricielle
==> ce qui illustre ma r ticence vis vis des formules trop complexes.
Tu remarqueras que la pr c dente formule fournie donne une erreur quand
un mois est enti rement rempli de X.
Si on reconstruit la formule pour janvier/f vrier:
La formule utilise la fonction decaler pour rep rer des cellules.
DECALER(B$4;NBVAL(A$4:A$34)-1;0) rep re la derni re cellule de la
colonne des X de janvier. NBVAL(A$4:A$34) tant le nombre de jour du
mois de janvier.
ET(DECALER(B$4;NBVAL(A$4:A$34)-1;0)=E$4;E$4="x") v rifie que la
derni re cellule de mois de janvier est gale la premi re cellule de
f vrier et que toutes les deux valent "x". Si c'est le cas, on calcule
le nombre de "x" cheval sur deux mois, sinon on renvoie "".
Nombre de x en fin janvier:
On recherche le num ro de la ligne de la premi re cellule vide (="") en
remontant partir de la fin du mois:
MAX((ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Il faut que le jour existe : (ESTNUM(A$4:A$34)
Il faut que la cellule soit vide : (B$4:B$34="")
et dans ce cas on retourne le num ro de ligne : (LIGNE(B$4:B$34)
Il y a un hic quand le mois est totalement rempli de "x" car dans ce
cas c'est 0 qui est retourn alors qu'il faudrait que ce soit la ligne
3.
On peut tenir compte de cela en prenant
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Le nombre de x est donc la diff rence entre le dernier N de ligne du
mois de janvier (3+NBVAL(A$4:A$34)) et le plus grand N de ligne de
janvier qui contient "":
(3+NBVAL(A$4:A$34))-
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Nombre de x en d but f vrier:
On recherche le num ro de la ligne de la premi re cellule vide en
descendant partir du mois de f vrier:
MIN(ESTNUM(D$4:D$34) * (E$4:E$34="")* LIGNE(E$4:E$34))
Il faut que le jour existe : (ESTNUM(D$4:D$34)
Il faut que la cellule soit vide : (E$4:E$34="")
et dans ce cas on retourne le num ro de ligne : (LIGNE(E$4:E$34)
Il y a un Pb. Si la condition SI(ESTNUM(cellule D) * (cellule E="")*
LIGNE(E) est fausse, elle retourne 0.
Donc le minimum des lignes gales "" ou sans date sera toujours 0 d s
qu'il y a un x dans la colonne ou bien que le mois compte moins de 31
jours.
on peut r soudre cela en affectant 999 aux celulles contenant un X ou
sans date.
MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34=""); LIGNE(E$4:E$34);999))
Il y a un autre PB. si le mois est enti rement rempli de "x", alors la
formule retourne 999 alors qu'il faudrait que ce soit la ligne suivant
le dernier jour du mois soit 4+NBVAL(D$4:D$34). On peut faire:
MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))
Le nombre de x est donc la diff rence entre la premi re ligne de
f vrier qui contient "" et la premi re ligne du mois de f vrier (=4).
(MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))-4)
La formule matricielle compl te mettre en D39 puis recopier est
donc:
=SI(ET(DECALER(B$4;NBVAL(A$4:A$34)-1;0)=E$4;E$4="x");(3+NBVAL(A$4:A $34))-
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))+
(MIN(SI(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))-4);"")
Ces explications laborieuses montrent pourquoi je pr f re une fonction
personnalis e document e!
Guido a couch sur son cran :
> Bonjour Charabeuh
> j'ai galement pris la version Formule Matricielle (qui sera je pense
> ma pr f r e) vu que ce fichier est pens pour tre partag avec
> d'autres personnes.
> Apr s avoir essay de comprendre la formule (et pas forc ment r ussi)
> je voudrai savoir ce qui ne te convenait pas avec ?
> Merci d'avance
> Guido
Bonsoir Guido,
Ce qui me g ne dans cette formule matricielle est sa compr hension.
Quand on est plong dans le probl me la recherche d'une solution, une
formule complexe se construit petit petit et son expression finale
semble logique.
Y revenir quelques temps apr s, quand on a oubli le cheminement de
construction de la formule, prend beaucoup de temps et d'efforts. Alors
qu'une fonction personnalis e bien document e se lit (presque) sans
effort.
==> Je viens d'ailleurs, tout en te r pondant, de trouver une erreur
dans la formule matricielle
==> ce qui illustre ma r ticence vis vis des formules trop complexes.
Tu remarqueras que la pr c dente formule fournie donne une erreur quand
un mois est enti rement rempli de X.
Si on reconstruit la formule pour janvier/f vrier:
La formule utilise la fonction decaler pour rep rer des cellules.
DECALER(B$4;NBVAL(A$4:A$34)-1;0) rep re la derni re cellule de la
colonne des X de janvier. NBVAL(A$4:A$34) tant le nombre de jour du
mois de janvier.
ET(DECALER(B$4;NBVAL(A$4:A$34)-1;0)=E$4;E$4="x") v rifie que la
derni re cellule de mois de janvier est gale la premi re cellule de
f vrier et que toutes les deux valent "x". Si c'est le cas, on calcule
le nombre de "x" cheval sur deux mois, sinon on renvoie "".
Nombre de x en fin janvier:
On recherche le num ro de la ligne de la premi re cellule vide (="") en
remontant partir de la fin du mois:
MAX((ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Il faut que le jour existe : (ESTNUM(A$4:A$34)
Il faut que la cellule soit vide : (B$4:B$34="")
et dans ce cas on retourne le num ro de ligne : (LIGNE(B$4:B$34)
Il y a un hic quand le mois est totalement rempli de "x" car dans ce
cas c'est 0 qui est retourn alors qu'il faudrait que ce soit la ligne
3.
On peut tenir compte de cela en prenant
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Le nombre de x est donc la diff rence entre le dernier N de ligne du
mois de janvier (3+NBVAL(A$4:A$34)) et le plus grand N de ligne de
janvier qui contient "":
(3+NBVAL(A$4:A$34))-
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))
Nombre de x en d but f vrier:
On recherche le num ro de la ligne de la premi re cellule vide en
descendant partir du mois de f vrier:
MIN(ESTNUM(D$4:D$34) * (E$4:E$34="")* LIGNE(E$4:E$34))
Il faut que le jour existe : (ESTNUM(D$4:D$34)
Il faut que la cellule soit vide : (E$4:E$34="")
et dans ce cas on retourne le num ro de ligne : (LIGNE(E$4:E$34)
Il y a un Pb. Si la condition SI(ESTNUM(cellule D) * (cellule E="")*
LIGNE(E) est fausse, elle retourne 0.
Donc le minimum des lignes gales "" ou sans date sera toujours 0 d s
qu'il y a un x dans la colonne ou bien que le mois compte moins de 31
jours.
on peut r soudre cela en affectant 999 aux celulles contenant un X ou
sans date.
MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34=""); LIGNE(E$4:E$34);999))
Il y a un autre PB. si le mois est enti rement rempli de "x", alors la
formule retourne 999 alors qu'il faudrait que ce soit la ligne suivant
le dernier jour du mois soit 4+NBVAL(D$4:D$34). On peut faire:
MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))
Le nombre de x est donc la diff rence entre la premi re ligne de
f vrier qui contient "" et la premi re ligne du mois de f vrier (=4).
(MIN(si(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))-4)
La formule matricielle compl te mettre en D39 puis recopier est
donc:
=SI(ET(DECALER(B$4;NBVAL(A$4:A$34)-1;0)=E$4;E$4="x");(3+NBVAL(A$4:A $34))-
MAX(3;(ESTNUM(A$4:A$34)*(B$4:B$34="")*(LIGNE(B$4:B$34))))+
(MIN(SI(ESTNUM(D$4:D$34) * (E$4:E$34="");
LIGNE(E$4:E$34);4+NBVAL(D$4:D$34)))-4);"")
Ces explications laborieuses montrent pourquoi je pr f re une fonction
personnalis e document e!
Guido a couch sur son cran :
> Bonjour Charabeuh
> j'ai galement pris la version Formule Matricielle (qui sera je pense
> ma pr f r e) vu que ce fichier est pens pour tre partag avec
> d'autres personnes.
> Apr s avoir essay de comprendre la formule (et pas forc ment r ussi)
> je voudrai savoir ce qui ne te convenait pas avec ?
> Merci d'avance
> Guido