Deux tableaux liés qui s'incrémente
Fermé
Alpagenod
Messages postés
9
Date d'inscription
jeudi 20 juillet 2017
Statut
Membre
Dernière intervention
12 septembre 2017
-
20 juil. 2017 à 11:14
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 25 juil. 2017 à 15:46
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 25 juil. 2017 à 15:46
A voir également:
- Deux tableaux liés qui s'incrémente
- Fusionner deux tableaux excel - Guide
- Tableaux croisés dynamiques - Guide
- Deux ecran pc - Guide
- Deux comptes whatsapp - Guide
- Itinéraire google map entre deux adresses - Guide
4 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
20 juil. 2017 à 11:44
20 juil. 2017 à 11:44
Bonjour
ce qui serait le plus simple,à mon avis, diercetemnt dans votre tableau:
quoique pour le 6 on peut se demander ce qui se passe au delà de 14 ans
feuil2 en A à partie de A2, la l iste des noms
en B la date d''embauche
en C1, E1 etc.., en titre de colonne les périodes d'ancienneté,(mais cumulées) une colonne sur deux donc
en C1:2
en E1:4
en G1:7
en I1:10
en K1:14
en M1: 18
dans les colonnes intercalées titrées "date d'accès" à partir de D2, cette formule à copier sur les colonnes derrière les codes et à tirer sur les hauteurs de la liste
=MOIS.DECALER($B2;12*D$1))
attention aux $ aux bons endroits
et dans les colonnes périodes
en C2 =SI(ET(D2>0;(AUJOURDHUI())>D2;1;"")
en E2 =SI(ET(F2>0;AUJOURDHUI()>F2);2;"")
et ainsi de suite en changeant le;1;"") en ;2;"") en ;3;"") selon la colonne et l'ancienneté correspondante
en complément:
vous pouvez n'afficher dans les colonnes dates que les dates dépassées en modifiant la formule:
=SI(MOIS.DECALER($B2;12*D$1)<AUJOURDHUI();"";MOIS.DECALER($B2;12*D$1))
Dans ce cas la formule en C,F etc.. deviendrait simplement:
=SI(D1>0;1;"") etc...
revenez si problème
crdlmnt
ce qui serait le plus simple,à mon avis, diercetemnt dans votre tableau:
quoique pour le 6 on peut se demander ce qui se passe au delà de 14 ans
feuil2 en A à partie de A2, la l iste des noms
en B la date d''embauche
en C1, E1 etc.., en titre de colonne les périodes d'ancienneté,(mais cumulées) une colonne sur deux donc
en C1:2
en E1:4
en G1:7
en I1:10
en K1:14
en M1: 18
dans les colonnes intercalées titrées "date d'accès" à partir de D2, cette formule à copier sur les colonnes derrière les codes et à tirer sur les hauteurs de la liste
=MOIS.DECALER($B2;12*D$1))
attention aux $ aux bons endroits
et dans les colonnes périodes
en C2 =SI(ET(D2>0;(AUJOURDHUI())>D2;1;"")
en E2 =SI(ET(F2>0;AUJOURDHUI()>F2);2;"")
et ainsi de suite en changeant le;1;"") en ;2;"") en ;3;"") selon la colonne et l'ancienneté correspondante
en complément:
vous pouvez n'afficher dans les colonnes dates que les dates dépassées en modifiant la formule:
=SI(MOIS.DECALER($B2;12*D$1)<AUJOURDHUI();"";MOIS.DECALER($B2;12*D$1))
Dans ce cas la formule en C,F etc.. deviendrait simplement:
=SI(D1>0;1;"") etc...
revenez si problème
crdlmnt
Alpagenod
Messages postés
9
Date d'inscription
jeudi 20 juillet 2017
Statut
Membre
Dernière intervention
12 septembre 2017
20 juil. 2017 à 13:34
20 juil. 2017 à 13:34
Merci de cette première solution mais inutilisable dans mon cas.
Mon souci c'est que tout le monde ne démarre pas au même échelon, je ne peux donc pas utiliser la date d'embauche...
C'est pour cela que je me demandé si je pouvais incrémenter un tableau à l'aide d'un autre en me disant, je dis que l'échelon 2 c'est X année, le 3 c'est Y année, etc, et du coup lorsqu'il repère que la personne est dans tel échelon il sait que la durée est X ou Y et peut donc me donner la date suivante.
L'affichage des dates dépassés sera par contre parfait.
Mon souci c'est que tout le monde ne démarre pas au même échelon, je ne peux donc pas utiliser la date d'embauche...
C'est pour cela que je me demandé si je pouvais incrémenter un tableau à l'aide d'un autre en me disant, je dis que l'échelon 2 c'est X année, le 3 c'est Y année, etc, et du coup lorsqu'il repère que la personne est dans tel échelon il sait que la durée est X ou Y et peut donc me donner la date suivante.
L'affichage des dates dépassés sera par contre parfait.
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
20 juil. 2017 à 14:10
20 juil. 2017 à 14:10
Alors dans ce cas, si vous avez un tableau des valeurs de chaque échelon, par exemple en Y1 Z6 avec en Y les échelons et en Z les périodes:
pour une date de début en C2, un code en D2, la date suivante en E2:
=MOIS.DECALER(C2;RECHERCHEV(D2;$Y$1:$Z$6;2;0)*12)
pour avoir la date de fin de l'échelon en E2
pour avoir l'échelon suivant en F2,
=D2+1 devrait suffire!
sauf si vos codes d'échelon ne sont pas incrémentés de 1 à chaque fois, et donc:
=INDEX($Y$1:$Y$6;EQUIV(D2;$Y$1:$Y$6;0)+1)
sous réserve de bonne compréhension
si ça ne va pas, déposez un modèle en bidouillant les infos à protéger ici:
https://www.cjoint.com/
et revenez coller ici le lien donné par le site
crdlmnt
pour une date de début en C2, un code en D2, la date suivante en E2:
=MOIS.DECALER(C2;RECHERCHEV(D2;$Y$1:$Z$6;2;0)*12)
pour avoir la date de fin de l'échelon en E2
pour avoir l'échelon suivant en F2,
=D2+1 devrait suffire!
sauf si vos codes d'échelon ne sont pas incrémentés de 1 à chaque fois, et donc:
=INDEX($Y$1:$Y$6;EQUIV(D2;$Y$1:$Y$6;0)+1)
sous réserve de bonne compréhension
si ça ne va pas, déposez un modèle en bidouillant les infos à protéger ici:
https://www.cjoint.com/
et revenez coller ici le lien donné par le site
crdlmnt
Alpagenod
Messages postés
9
Date d'inscription
jeudi 20 juillet 2017
Statut
Membre
Dernière intervention
12 septembre 2017
25 juil. 2017 à 14:38
25 juil. 2017 à 14:38
Merci beaucoup cela fonctionne parfaitement.
Pour ma culture personnelle pourriez vous m'expliquer la formule =MOIS.DECALER(C2;RECHERCHEV(D2;$Y$1:$Z$6;2;0)*12)
Merci encore
Pour ma culture personnelle pourriez vous m'expliquer la formule =MOIS.DECALER(C2;RECHERCHEV(D2;$Y$1:$Z$6;2;0)*12)
Merci encore
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié le 25 juil. 2017 à 15:47
Modifié le 25 juil. 2017 à 15:47
Bonjour
MOIS.DECALER(date début; écart)
ce code donne la date du jour décalée exactement de la valeur demandée par rapport à la date initiale
soit avant avec une valeur négative, après avec une valeur positive
exemple si 25/7/2017 en A1
la formule en B1:
=MOIS.DECALER(A1;2) donnera le 25/9/2017
=MOIS.DECALER(A1;-3) donnera le 25/4/2017
Dans notre cas, on part de la date en C2 et du code en D2
la formule RECHERCHEV(valeur;plage;N) de colonne;0)
va chercher la valeur dans la 1° colonne de la plage et ressort celle sur la même ligne au N° de colonne de la plage demandé
le code à la fin ;0) ou encore;FAUX) est un code Excel qui précise de ne trouver que la valeur exacte et non pas une valeur proche
dans notre cas:
RECHERCHEV(D2;$Y$1:$Z$6;2;0)*12)
va chercher la valeur de D2 dans la colonne Y1:Y16
ressort la valeur de Z correspondante
et multiplie le résultat par 12, car c'est un nombre d'années qu'il faut transformer en nombre de mois pour le code MOIS.DECALER
espèrant avoir été clair
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!
MOIS.DECALER(date début; écart)
ce code donne la date du jour décalée exactement de la valeur demandée par rapport à la date initiale
soit avant avec une valeur négative, après avec une valeur positive
exemple si 25/7/2017 en A1
la formule en B1:
=MOIS.DECALER(A1;2) donnera le 25/9/2017
=MOIS.DECALER(A1;-3) donnera le 25/4/2017
Dans notre cas, on part de la date en C2 et du code en D2
la formule RECHERCHEV(valeur;plage;N) de colonne;0)
va chercher la valeur dans la 1° colonne de la plage et ressort celle sur la même ligne au N° de colonne de la plage demandé
le code à la fin ;0) ou encore;FAUX) est un code Excel qui précise de ne trouver que la valeur exacte et non pas une valeur proche
dans notre cas:
RECHERCHEV(D2;$Y$1:$Z$6;2;0)*12)
va chercher la valeur de D2 dans la colonne Y1:Y16
ressort la valeur de Z correspondante
et multiplie le résultat par 12, car c'est un nombre d'années qu'il faut transformer en nombre de mois pour le code MOIS.DECALER
espèrant avoir été clair
crdlmnt
La qualité de la réponse dépend surtout de la clarté de la question, merci!