Conditions à définir sur une partie d'une liste
Résolu/Fermé
A voir également:
- Conditions à définir sur une partie d'une liste
- Liste déroulante excel - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Liste déroulante en cascade - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
3 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
14 nov. 2016 à 23:13
14 nov. 2016 à 23:13
Bonjour,
Avec ton exemple,je te propose cette formule qui donne les résultats attendus :
Avec ton exemple,je te propose cette formule qui donne les résultats attendus :
=SI(B1>AUJOURDHUI();"A venir";SI(A2=A1;SI(B2<AUJOURDHUI();"Passé";"Actuelle");"Actuelle"))
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
15 nov. 2016 à 18:06
15 nov. 2016 à 18:06
Bonsoir,
Est-il possible de faire la même chose si les données ne sont pas classées ?
C'est possible mais il faut passer par une formule matricielle un peu plus complexe et plus gourmande :
La formule doit être validée par crtl+maj+entrée simultanées (2 doigts au moins !)
Si tu as plus de 3000 lignes tu adaptes (et pour moins aussi !)
Est-il possible de faire la même chose si les données ne sont pas classées ?
C'est possible mais il faut passer par une formule matricielle un peu plus complexe et plus gourmande :
=SI(ET(MAX(SI($A$2:$A$3000=A2;$B$2:$B$3000))=B2;B2>AUJOURDHUI());"A venir";SI(MAX(SI(A2=$A$2:$A$3000;SI($B$2:$B$3000<=AUJOURDHUI();$B$2:$B$3000)))<>B2;"Passé";"Actuelle"))
La formule doit être validée par crtl+maj+entrée simultanées (2 doigts au moins !)
Si tu as plus de 3000 lignes tu adaptes (et pour moins aussi !)
Bonjour,
Autant la première formule fonctionne quand on écrit les choses dans l'ordre, autant le résultat est étonnant quand les choses ne se suivent pas pour un agent :
B 01/01/2000 Passé
B 01/05/2006 Passé
B 01/01/2017 A venir
C 01/02/2006 Passé
C 01/08/2010 Passé
C 02/05/2014 Passé
B 20/11/2016 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
D 01/01/2016 Passé
Avec la première formule lorsque les agents sont dans l'ordre mais pas les dates on a : B 01/01/2000 Passé
B 01/05/2006 Actuelle
B 01/01/2017 A venir
B 20/11/2016 Actuelle
C 01/02/2006 Passé
C 01/08/2010 Passé
C 02/05/2014 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
C 21/11/2016 Actuelle
D 01/01/2016 Actuelle
--> deux situations actuelles pour la personne B.
Merci pour l'aide.
Autant la première formule fonctionne quand on écrit les choses dans l'ordre, autant le résultat est étonnant quand les choses ne se suivent pas pour un agent :
B 01/01/2000 Passé
B 01/05/2006 Passé
B 01/01/2017 A venir
C 01/02/2006 Passé
C 01/08/2010 Passé
C 02/05/2014 Passé
B 20/11/2016 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
D 01/01/2016 Passé
Avec la première formule lorsque les agents sont dans l'ordre mais pas les dates on a : B 01/01/2000 Passé
B 01/05/2006 Actuelle
B 01/01/2017 A venir
B 20/11/2016 Actuelle
C 01/02/2006 Passé
C 01/08/2010 Passé
C 02/05/2014 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
C 21/11/2016 Actuelle
D 01/01/2016 Actuelle
--> deux situations actuelles pour la personne B.
Merci pour l'aide.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
21 nov. 2016 à 17:50
21 nov. 2016 à 17:50
Bonjour,
Sans doute parce que soit :
- tu n'as pas tout lu
- tu n'as pas bien appliqué
- tu n'as pas compris la formule matricielle
Voici le résultat que cela donne, qui me parait correct :
Sans doute parce que soit :
- tu n'as pas tout lu
- tu n'as pas bien appliqué
- tu n'as pas compris la formule matricielle
Voici le résultat que cela donne, qui me parait correct :
Agent Date ton résultat avec formuleTu peux vérifier dans le classeur : https://www.cjoint.com/c/FKvqXzRH6zl
B 01/01/2000 Passé Passé
B 01/05/2006 Passé Passé
B 01/01/2017 A_venir A venir
C 01/02/2006 Passé Passé
C 01/08/2010 Passé Passé
C 02/05/2014 Passé Passé
B 20/11/2016 Passé Actuelle
C 13/11/2016 Passé Passé
C 16/11/2016 Passé Passé
C 17/11/2016 Passé Actuelle
D 01/01/2016 Passé Actuelle
Merci du retour, je suis exigeant je sais !
Je ne sais pas pourquoi cela a du mal à fonctionner sur mon fichier, mais j'ai vu que c'était bon sur le tien. Par contre, en ajoutant des situations, les choses se compliquent (deux situations futures...) : deux erreurs C avec la date du 31/12/2016 et B avec la date du 01/12/2016.
Agent Date avec formule
B 01/01/2000 Passé
B 01/05/2006 Passé
B 01/01/2017 A venir
C 01/02/2006 Passé
C 01/08/2010 Passé
C 31/12/2016 Passé
C 01/01/2017 A venir
C 20/11/2016 Actuelle
B 20/11/2016 Actuelle
B 01/12/2016 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
D 01/01/2016 Passé
D 18/11/2016 Actuelle
D 22/11/2016 A venir
Je sais que tu vas encore m'épater. Je t'avouerai ne pas trop comprendre la formule matricielle.
Je ne sais pas pourquoi cela a du mal à fonctionner sur mon fichier, mais j'ai vu que c'était bon sur le tien. Par contre, en ajoutant des situations, les choses se compliquent (deux situations futures...) : deux erreurs C avec la date du 31/12/2016 et B avec la date du 01/12/2016.
Agent Date avec formule
B 01/01/2000 Passé
B 01/05/2006 Passé
B 01/01/2017 A venir
C 01/02/2006 Passé
C 01/08/2010 Passé
C 31/12/2016 Passé
C 01/01/2017 A venir
C 20/11/2016 Actuelle
B 20/11/2016 Actuelle
B 01/12/2016 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
D 01/01/2016 Passé
D 18/11/2016 Actuelle
D 22/11/2016 A venir
Je sais que tu vas encore m'épater. Je t'avouerai ne pas trop comprendre la formule matricielle.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
21 nov. 2016 à 18:52
21 nov. 2016 à 18:52
RE
J'avais considéré que tu n'avais qu'une date à venir et donc la formule se simplifie :
Tu peux vérifier dans le classeur : https://www.cjoint.com/c/FKvrZSe4N3l
J'avais considéré que tu n'avais qu'une date à venir et donc la formule se simplifie :
=SI(B2>AUJOURDHUI();"A venir";SI(MAX(SI(A2=$A$2:$A$3000;SI($B$2:$B$3000<=AUJOURDHUI();$B$2:$B$3000)))<>B2;"Passé";"Actuelle"))
Tu peux vérifier dans le classeur : https://www.cjoint.com/c/FKvrZSe4N3l
Bonjour.
Merci cela correspond à mon besoin.
Des petites choses :
1 - Serait-il possible que rien ne s'écrive si l'agent et la date ne sont pas renseignés :
Agent Date avec formule
B 01/01/2000 Passé
B 01/05/2006 Passé
B 20/11/2016 Actuelle
B 01/12/2016 A venir
B 01/01/2017 A venir
C 01/02/2006 Passé
C 01/08/2010 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
C 20/11/2016 Actuelle
C 31/12/2016 A venir
C 01/01/2017 A venir
B 23/11/2016 A venir
Actuelle
D 01/01/2016 Passé
D 18/11/2016 Actuelle
D 23/11/2016 A venir
2 - Que tu m'expliques vraiment comment mettre en oeuvre la formule dans mon fichier : je fais un copier-coller mais cela ne fonctionne pas. Il y a une histoire de validation de la formule matricielle mais je n'ai pas encore du comprendre comment faire.
Comptant encore sur ton aide,
Merci cela correspond à mon besoin.
Des petites choses :
1 - Serait-il possible que rien ne s'écrive si l'agent et la date ne sont pas renseignés :
Agent Date avec formule
B 01/01/2000 Passé
B 01/05/2006 Passé
B 20/11/2016 Actuelle
B 01/12/2016 A venir
B 01/01/2017 A venir
C 01/02/2006 Passé
C 01/08/2010 Passé
C 13/11/2016 Passé
C 16/11/2016 Passé
C 17/11/2016 Passé
C 20/11/2016 Actuelle
C 31/12/2016 A venir
C 01/01/2017 A venir
B 23/11/2016 A venir
Actuelle
D 01/01/2016 Passé
D 18/11/2016 Actuelle
D 23/11/2016 A venir
2 - Que tu m'expliques vraiment comment mettre en oeuvre la formule dans mon fichier : je fais un copier-coller mais cela ne fonctionne pas. Il y a une histoire de validation de la formule matricielle mais je n'ai pas encore du comprendre comment faire.
Comptant encore sur ton aide,
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
22 nov. 2016 à 09:15
22 nov. 2016 à 09:15
Bonjour,
1 - Serait-il possible que rien ne s'écrive si l'agent et la date ne sont pas renseignés
Pas de souci, il suffit de faire le test :
https://www.cjoint.com/c/FKwindLbQLl
2 - Que tu m'expliques ...je fais un copier-coller mais cela ne fonctionne pas.
Tu fais un copier/coller => ta formule est 'normale'.
Pour la mettre en matricielle tu fais F2 sur la cellule tu valides la formule par crtl+maj+entrée simultanées (2 doigts au moins !).
Pour recopier vers le bas ta formule, il te suffit de double cliquer sur la petite croix en bas de la cellule de la formule. lorsque tu rajoutes des lignes, même procédure.
1 - Serait-il possible que rien ne s'écrive si l'agent et la date ne sont pas renseignés
Pas de souci, il suffit de faire le test :
=SI(NBVAL(A2:B2)<2;"";SI(B2>AUJOURDHUI();"A venir";SI(MAX(SI(A2=$A$2:$A$3000;SI($B$2:$B$3000<=AUJOURDHUI();$B$2:$B$3000)))<>B2;"Passé";"Actuelle")))
https://www.cjoint.com/c/FKwindLbQLl
2 - Que tu m'expliques ...je fais un copier-coller mais cela ne fonctionne pas.
Tu fais un copier/coller => ta formule est 'normale'.
Pour la mettre en matricielle tu fais F2 sur la cellule tu valides la formule par crtl+maj+entrée simultanées (2 doigts au moins !).
Pour recopier vers le bas ta formule, il te suffit de double cliquer sur la petite croix en bas de la cellule de la formule. lorsque tu rajoutes des lignes, même procédure.
15 nov. 2016 à 07:42
Merci beaucoup cela fonctionne, à condition de bien mettre les agents dans l'ordre alphabétique et dans l'ordre chronologique des dates.
J'ai juste ajouté un = dans la condition B2 par rapport à aujourd'hui sinon on avait une difficulté le jour du changement.
Est-il possible de faire la même chose si les données ne sont pas classées ?