Fonction sur Excel si mais plus compliquée
Résolu/Fermé
A voir également:
- Fonction sur Excel si mais plus compliquée
- Fonction si et - Guide
- Liste déroulante excel - Guide
- Formule excel - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
9 réponses
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
16 mai 2009 à 23:31
16 mai 2009 à 23:31
Si tu veux garder ton xxxx-0030 ça donne :
=SI($B6="";"";SI(ET(GAUCHE($B6;4)*1<=TEXTE((COLONNE()-7)/96;"[h]mm")*1;SI(GAUCHE($B6;4)*1<DROITE($B6;4)*1;DROITE($B6;4)*1>=TEXTE((COLONNE()-6)/96;"[h]mm")*1;DROITE($B6;4)*1+2400>=TEXTE((COLONNE()-6)/96;"[h]mm")*1));"x";""))
mais ne va pas ajouter une plage 2330-0500 sinon le même pb va se retouver à gauche...
eric
PS: je vois que tu es partie de ma feuille, tu peux vider ou supprimer la ligne 3, elle ne me servait qu'à afficher les horaires.
=SI($B6="";"";SI(ET(GAUCHE($B6;4)*1<=TEXTE((COLONNE()-7)/96;"[h]mm")*1;SI(GAUCHE($B6;4)*1<DROITE($B6;4)*1;DROITE($B6;4)*1>=TEXTE((COLONNE()-6)/96;"[h]mm")*1;DROITE($B6;4)*1+2400>=TEXTE((COLONNE()-6)/96;"[h]mm")*1));"x";""))
mais ne va pas ajouter une plage 2330-0500 sinon le même pb va se retouver à gauche...
eric
PS: je vois que tu es partie de ma feuille, tu peux vider ou supprimer la ligne 3, elle ne me servait qu'à afficher les horaires.
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
14 mai 2009 à 23:11
14 mai 2009 à 23:11
Bonsoir,
regarde si ça te convient.
Pour la cellule 0600-0615 :
=SI(ET(GAUCHE($B9;4)*1<=600;DROITE($B9;4)*1>=615);"x";"")
eric
regarde si ça te convient.
Pour la cellule 0600-0615 :
=SI(ET(GAUCHE($B9;4)*1<=600;DROITE($B9;4)*1>=615);"x";"")
eric
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
14 mai 2009 à 23:22
14 mai 2009 à 23:22
re,
et si tu mets :
=SI(ET(GAUCHE($B9;4)*1<=(ENT((COLONNE()-3)*0.25)*100+MOD((COLONNE()-3)*0.25;1)*60);DROITE($B9;4)*1>=(ENT((COLONNE()-2)*0.25)*100+MOD((COLONNE()-2)*0.25;1)*60));"x";"")
tu peux recopier ta formule à droite et à gauche (et vers le haut et le bas) sans à avoir à saisir les horaires testés, à condition que ta cellule 0000-0015 soit en colonne C comme je l'imagine.
eric.
et si tu mets :
=SI(ET(GAUCHE($B9;4)*1<=(ENT((COLONNE()-3)*0.25)*100+MOD((COLONNE()-3)*0.25;1)*60);DROITE($B9;4)*1>=(ENT((COLONNE()-2)*0.25)*100+MOD((COLONNE()-2)*0.25;1)*60));"x";"")
tu peux recopier ta formule à droite et à gauche (et vers le haut et le bas) sans à avoir à saisir les horaires testés, à condition que ta cellule 0000-0015 soit en colonne C comme je l'imagine.
eric.
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
14 mai 2009 à 23:31
14 mai 2009 à 23:31
et pour le plaisir une autre un peu plus courte :
=SI(ET(GAUCHE($B10;4)*1<=TEXTE((COLONNE()-3)/96;"hhmm")*1;DROITE($B10;4)*1>=TEXTE((COLONNE()-2)/96;"hhmm")*1);"x";"")
=SI(ET(GAUCHE($B10;4)*1<=TEXTE((COLONNE()-3)/96;"hhmm")*1;DROITE($B10;4)*1>=TEXTE((COLONNE()-2)/96;"hhmm")*1);"x";"")
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
16 mai 2009 à 09:43
16 mai 2009 à 09:43
Bonjour,
Je pensais que ta feuille ressemblait à ça anai08.xls
Et il fallait juste ajouter un test en cas B2 vide :
=SI($B2="";"";SI(ET(GAUCHE($B2;4)*1<=TEXTE((COLONNE()-3)/96;"hhmm")*1;DROITE($B2;4)*1>=TEXTE((COLONNE()-2)/96;"hhmm")*1);"x";""))
Si ce n'est pas ça tu peux déposer ton fichier sur cijoint.fr et coller le lien ici.
eric
Je pensais que ta feuille ressemblait à ça anai08.xls
Et il fallait juste ajouter un test en cas B2 vide :
=SI($B2="";"";SI(ET(GAUCHE($B2;4)*1<=TEXTE((COLONNE()-3)/96;"hhmm")*1;DROITE($B2;4)*1>=TEXTE((COLONNE()-2)/96;"hhmm")*1);"x";""))
Si ce n'est pas ça tu peux déposer ton fichier sur cijoint.fr et coller le lien ici.
eric
Coucou Eric,
C'est quasi bon; déjà un grand merci !
On a juste une heure de décallage. Je te joins http://www.cijoint.fr/cjlink.php?file=cj200905/cijmWXUyXl.xls je crois que c'est effectivement le plus simple.
Merci de ton aide et à plus
Anaï
C'est quasi bon; déjà un grand merci !
On a juste une heure de décallage. Je te joins http://www.cijoint.fr/cjlink.php?file=cj200905/cijmWXUyXl.xls je crois que c'est effectivement le plus simple.
Merci de ton aide et à plus
Anaï
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
16 mai 2009 à 23:18
16 mai 2009 à 23:18
Bonsoir,
Ce décalage car ton 0000 n'était pas en colonne C mais G.
Il y avait d'autre part une anomalie sur 2345 (à cause du 0000 qui suit) et la formule devient en G6:
=SI($B6="";"";SI(ET(GAUCHE($B6;4)*1<=TEXTE((COLONNE()-7)/96;"[h]mm")*1;DROITE($B6;4)*1>=TEXTE((COLONNE()-6)/96;"[h]mm")*1);"x";""))
Il reste un pb si une plage dépasse 0000 comme 1530-0030. En effet difficile de savoir s'il s'agit de 0030 du même jour ou du lendemain.
Est-ce genant pour toi de la noter 1530-2430 ? Sinon ça va rallonger la formule.
eric
Ce décalage car ton 0000 n'était pas en colonne C mais G.
Il y avait d'autre part une anomalie sur 2345 (à cause du 0000 qui suit) et la formule devient en G6:
=SI($B6="";"";SI(ET(GAUCHE($B6;4)*1<=TEXTE((COLONNE()-7)/96;"[h]mm")*1;DROITE($B6;4)*1>=TEXTE((COLONNE()-6)/96;"[h]mm")*1);"x";""))
Il reste un pb si une plage dépasse 0000 comme 1530-0030. En effet difficile de savoir s'il s'agit de 0030 du même jour ou du lendemain.
Est-ce genant pour toi de la noter 1530-2430 ? Sinon ça va rallonger la formule.
eric
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
17 mai 2009 à 23:16
17 mai 2009 à 23:16
Merci, bonne semaine...
eric
eric
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
18 mai 2009 à 08:51
18 mai 2009 à 08:51
Bonjour,
Non, on ne peut mettre de couleur par formule. Ca se fait en vba.
Mais tu peux très bien utiliser une mise en forme conditionnelle pour colorer (menu 'format'), avec encre et fond même couleur tu ne vois plus le x.
eric
Non, on ne peut mettre de couleur par formule. Ca se fait en vba.
Mais tu peux très bien utiliser une mise en forme conditionnelle pour colorer (menu 'format'), avec encre et fond même couleur tu ne vois plus le x.
eric
17 mai 2009 à 19:14
Je sais à qui m'adresser si j'ai un autre soucis.
Bonne fin de dimanche
Anaï