Fonction sur Excel si mais plus compliquée
Résolu
Anai08
-
patrice -
patrice -
Bonjour,
J'ai besoin de votre aide ... Je vais essayer d'être claire dans ma demande.
Voilà...
j'ai un menu déroulant qui comprend 10 plages horaires différentes.
j'ai un tableau avec "24heures", chaque colonnes correspondant à 15 minutes
Le but de ce tableau. Lorsqu'on sélectionne une place horaire, excel met tout seul comme un grand des X ou de la couleur dans les cellules correpospondant. J'ai trouvé la fonction Si suivante
=SI($B$9="0000 - 0600";"X";" ")
MAIS il y a des plages horaires qui peuvent avoir les même heures : 0000-0600 et une autre de 0500-1200. Donc si je mets une formule type
=SI($B$9="0000 - 0600";"X";SI($B$9="0500 - 1200";"0";" "))
je vais avoir des X de ma colonne 0000 à ma colonne 12000...
Je voudrais donc trouver une formule qui dise :
si dans menu déroulant = 0500-1200 alors mettre des X dans les celulles .....
Un grand merci de votre aide
J'ai besoin de votre aide ... Je vais essayer d'être claire dans ma demande.
Voilà...
j'ai un menu déroulant qui comprend 10 plages horaires différentes.
j'ai un tableau avec "24heures", chaque colonnes correspondant à 15 minutes
Le but de ce tableau. Lorsqu'on sélectionne une place horaire, excel met tout seul comme un grand des X ou de la couleur dans les cellules correpospondant. J'ai trouvé la fonction Si suivante
=SI($B$9="0000 - 0600";"X";" ")
MAIS il y a des plages horaires qui peuvent avoir les même heures : 0000-0600 et une autre de 0500-1200. Donc si je mets une formule type
=SI($B$9="0000 - 0600";"X";SI($B$9="0500 - 1200";"0";" "))
je vais avoir des X de ma colonne 0000 à ma colonne 12000...
Je voudrais donc trouver une formule qui dise :
si dans menu déroulant = 0500-1200 alors mettre des X dans les celulles .....
Un grand merci de votre aide
A voir également:
- Fonction sur Excel si mais plus compliquée
- Fonction si et - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
9 réponses
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.
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
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.
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
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ï
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
Je sais à qui m'adresser si j'ai un autre soucis.
Bonne fin de dimanche
Anaï