Étant donné une date, comment puis-je obtenir le jour de la semaine (par exemple, le "lundi") dans une cellule d'Excel?
Étant donné une date, comment puis-je obtenir le jour de la semaine (par exemple, le "lundi") dans une cellule d'Excel?
Réponses:
Exemple simple:
Cellule A1: 1/8/2009
Cellule B1: = TEXT (WEEKDAY (A1), "jjjj")
Ce sera, pour la date donnée, imprimer le jour correspondant.
Est-ce ce que vous souhaitiez?
La réponse donnée ci-dessus ne fonctionne que par hasard, car Excel pense que le 01/01/1900 était un dimanche * et qu'Excel utilise par défaut dimanche comme premier jour de la semaine pour la fonction Jour de la semaine.
Ce que vous calculez réellement avec cette méthode est le jour de la semaine sous forme de nombre, puis de le formater comme un jour basé sur ce nombre interprété comme une date. Par exemple, si votre date est 1/2/2003 et que vous utilisez la fonction WEEKDAY, cela donne 7 (= samedi). Lorsque vous formatez ensuite cela en tant que "dddd", vous obtenez le nom du jour du 7ème jour dans Excel depuis son "époque", c'est-à-dire le 7/1/1900, qui se trouve être un samedi *. Cette formule se cassera si quelqu'un l'ouvre qui a l'option choisie d'utiliser le système de date basé sur 1904, étant donné que 1/1/1904 n'était pas un dimanche, mais un vendredi. (oui, je sais que personne ne l'utilise, mais vous ne voulez pas construire une solution qui repose sur vous, n'est-ce pas?)
Vous pouvez rendre la formule plus courte, plus rapide et plus robuste simplement en utilisant
=TEXT(A1,"dddd")
Vous pouvez bien sûr simplement formater les cellules de date elles-mêmes avec un format personnalisé, comme suggéré précédemment, selon que vous en avez vraiment besoin dans une colonne séparée ou non. J'utilise souvent des formats de date tels que
ddd dd mmm yyyy
à donner par exemple samedi 01 février 2003 pour que la date soit explicite mais montre également le nom du jour de la semaine.
L'utilisation d'une deuxième colonne et d'une fonction TEXT est essentielle si vous souhaitez utiliser le jour de la semaine de manière explicite dans un publipostage (par exemple), de la même manière pour des éléments tels que les devises, etc. La fusion Excel> Word transmet la valeur stockée sous-jacente réelle au lieu de version formatée à l'écran, donc quel que soit le format de la cellule, Word voit un nombre horrible. Un champ de texte vrai est passé "tel quel" et s'affiche correctement dans Word.
* En fait, c’est un lundi, mais Excel a été écrit pour faire correspondre les dates incorrectes dans Lotus 1-2-3 qui traitait 1900 comme une année bissextile.
Une autre possibilité, en fonction de ce que vous souhaitez faire avec la date par la suite, consiste à définir le format de la cellule sur Personnalisé: dddd
=A1
dans l'exemple de la première réponse.
J'ai trouvé que les IF
déclarations imbriquées peuvent être lourdes, mais cela fonctionne. Si, toutefois, vous souhaitez économiser un peu de frappe, essayez ceci:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Ou, si vous avez besoin de noms complets:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Dans cet exemple, "A2" peut être n'importe quelle cellule (ou formule) contenant la date en question. Par exemple:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
serait imprimer l'abréviation de trois lettres pour tout ce qui est aujourd'hui.
vous pouvez également localiser la réponse en utilisant [$ nnn] avant le format (le code personnalisé est donc: [$ nnn] dddd; @). changez nnn avec le code de langue approprié. Je n'ai pas la liste, mais de toute façon, le code anglais est -409 (et mon local est -421).
Je pense que vous pouvez expérimenter avec le format numérique, changer le champ de langue, puis le remettre au format personnalisé.
Cellule A1: 1/8/2009 Cellule B1: = A1 puis appuyez sur ctrl + 1 (cellule de formatage), sélectionnez l'onglet numéro, cliquez sur Personnalisé puis tapez "DDDD" sur le type txtbox
Affiche la date actuelle
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Affiche la date actuelle avec le texte requis requis.
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
WEEKDAY La fonction peut être utilisée dans les codes Vba. Par exemple :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Le nom du jour provient de TextBox1 dans l'exemple ci-dessus. Le résultat est "lundi" .
J'ai utilisé cette fonction lorsque j'ai créé un formulaire utilisateur à propos de la saisie de la date dans une cellule active avec un menu contextuel.