Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2011, 00h20   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 8
Points : 1
Points : 1
Par défaut Problème avec une formule si

Bonjour,

J'essaye de faire des formules si avec un intervalle de dates en condition. J'ai l'impression qu'excel ne reconnait pas les dates que je renseigne en condition comme des dates.

Prenons un exemple simple :
J'ai un tableau excel avec des dates en colonne A. Pour le test je n'ai mis que des dates sur novembre et décembre. Je cherche à ressortir le mois dans une autre colonne afin de pouvoir l'utiliser comme filtre dans un tableau croisé dynamique.

J'ai donc construit la formule suivante :
Code :
=SI(ET(A2>31/10/11;A2<01/12/11);"Novembre";SI(ET(A2>30/11/11;A2<01/1/12);"Décembre";""))
Excel enregistre la formule comme suit :
Code :
=SI(ET(A2>31/10/11;A2<1/12/11);"Novembre";SI(ET(A2>30/11/11;A2<1/1/12);"Décembre";""))
Résultat dans chaque cellule excel me met "".

Il a supprimé les 0 devant le 01/12/11 alors que dans ma colonne A où j'ai bien précisé le format date il laisse les 0. D'où ma conclusion qu'excel ne reconnait pas les dates que je renseigne en condition en format date.

Pouvez vous me dire ce qui ne fonctionne pas dans une telle formule ?

PS: Je sais qu'il existe la fonction mois qui permet d'obtenir le même résultat mais l'exemple ci-dessus n'est qu'un exemple. Je souhaiterais comprendre ce qui ne fonctionne pas avec la formule tappée.

Pouvez vous m'aider ?

En vous remerciant,
Cordialement,
Thomas
thomasmbai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 07h08   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Bonjour..

Citation:
Envoyé par thomasmbai Voir le message
....PS: Je sais qu'il existe la fonction mois qui permet d'obtenir le même résultat mais l'exemple ci-dessus n'est qu'un exemple. Je souhaiterais comprendre ce qui ne fonctionne pas avec la formule tappée.
...
Il existe aussi une fonction Date ( Anne; Mois; Jour )
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 08h57   #3
Membre du Club
 
Homme
Inscription : novembre 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 37
Points : 45
Points : 45
Bonjour,

Citation:
Envoyé par thomasmbai Voir le message
Pouvez vous me dire ce qui ne fonctionne pas dans une telle formule ?
Excel ne compare pas les dates affichées, il compare le numéro d'ordre qui leur est affecté avec 1 en référence au 01/01/1900.
Si ce numéro est automatiquement traduit quand une date est saisie seule dans une cellule au format "date" il ne l'est pas dans les autres cas.
C'est pourquoi le résultat de ta formule qui compare un numéro à une date apparente te renvoie "".
Par exemple SI(40855>31/10/2011....

Pour tester:
31/10/2011 num. 40847
01/12/2011 num. 40878
30/11/2011 num. 40877
01/01/2012 num. 40909

Code :
=SI(ET(A2>40847;A2<40878);"Novembre";SI(ET(A2>40877;A2<40909);"Décembre";""))
Cordialement.
grard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 09h45   #4
Membre confirmé
 
Inscription : mai 2010
Messages : 200
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 200
Points : 278
Points : 278
Bonjour,

Si le but est d'afficher le nom du mois, plutôt qu'une succession de SI, utilises la fonction TEXTE :

A+
__________________
J'utilise LibreOffice 3.5.2 donc quand je suis sur la partie du forum Excel, il se peut que mes réponses ne soit pas adéquates. Veuillez m'en excuser.
GerardCalc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 19h25   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par grard Voir le message
Bonjour,



Excel ne compare pas les dates affichées, il compare le numéro d'ordre ...
et la fonction pour calculer ce numéro d'ordre c'est Date :

Citation:
Envoyé par bbil Voir le message
Il existe aussi une fonction Date ( Anne; Mois; Jour )
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 21h17   #6
Invité de passage
 
Inscription : juillet 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 8
Points : 1
Points : 1
Bonsoir,

Merci à bbil et grard pour vos réponses. Je comprends à présent comment insérer des conditions en comparant des dates.

Ce qui me chagrine avec la fonction mois c'est d'avoir les mois en numéraire et non en texte.

Mais ma tentative initiale pour avoir le nom des mois était vaine puisqu'il me semble qu'excel ne permet pas d'imbriquer 12 formules si les unes dans les autres.


En revanche, GerardCalc, je n'ai pas bien compris ce que tu veux dire. Comment utiliser la fonction texte dans un exemple comme celui-ci pour remplacer les fonctions si ? Si tu venais à repasser par ici, la réponse m'intéresse fortement.

Merci à vous tous...
thomasmbai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 21h53   #7
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonsoir,

je pense l'intervention de GerardCalc est le résultat que tu souhaite avoir, car donne comme résultat le mois de la cellule A2 ( de janvier a décembre), et si tu doit afficher juste mois de novembre ou décembre tu pourra effectivement la conditionner avec SI alors:
Code :
B2=SI(MOIS(A2)=11;TEXTE(A2;"MMMM");SI(MOIS(A2)=12;TEXTE(A2;"MMMM");""))
Cordialement
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 23h23   #8
Invité de passage
 
Inscription : juillet 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 8
Points : 1
Points : 1
Bonsoir,


C'est génial ! Cette fonction texte existe avec quel type de formats textes (autre que le mois "mmmm") ?
thomasmbai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 08h52   #9
Membre du Club
 
Homme
Inscription : novembre 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 37
Points : 45
Points : 45
Bonjour,

Code :
B2=SI(MOIS(A2)=11;TEXTE(A2;"MMMM");SI(MOIS(A2)=12;TEXTE(A2;"MMMM");""))
Dans ce cas il n'est pas nécessaire d'utiliser SI() et MOIS() la fonction donnée par GerardCalc

suffit à elle seule.

De plus en utilisant la fonction SI() le problème soulevé par thomasmbai

Citation:
Mais ma tentative initiale pour avoir le nom des mois était vaine puisqu'il me semble qu'excel ne permet pas d'imbriquer 12 formules si les unes dans les autres.
resterait et devrait être contourné par le morcellement de la fonction.

Bonne journée.
grard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web