Comment faire entrer le nom du jour dans une cellule d'Excel ?
Compte tenu d'une date, comment faire entrer le jour de la semaine (par exemple “lundi”) dans une cellule d'Excel ?
Compte tenu d'une date, comment faire entrer le jour de la semaine (par exemple “lundi”) dans une cellule d'Excel ?
La réponse donnée ci-dessus ne fonctionne que par hasard car Excel pense que le 1/1/1900 était un dimanche* et par défaut Excel utilise le dimanche comme premier jour de la semaine pour la fonction Jour de la semaine.
Ce que vous calculez en fait dans cette méthode est le jour de la semaine sous forme de nombre, puis vous le formatez en tant que jour sur la base de ce nombre interprété comme une date. Par exemple, si votre date est le 1/2/2003 et que vous utilisez la fonction WEEKDAY, cela donne 7 (=Samedi). Lorsque vous formatez ensuite cette date en “dddd”, vous obtenez en fait le nom du 7ème jour dans Excel depuis son “époque”, c'est-à-dire le 7/1/1900, qui se trouve être un samedi. Cette formule sera rompue si quelqu'un qui a choisi d'utiliser le système de date basé sur l'année 1904 l'ouvre, car le 1/1/1904 n'était pas un dimanche, mais un vendredi. (oui, je sais que presque personne n'utilise cela, mais vous ne voulez pas construire une solution qui repose sur cela, n'est-ce pas ?)
Vous pouvez rendre la formule plus courte, plus rapide et plus robuste simplement en utilisant
=TEXT(A1,"dddd")
Vous pourriez bien sûr simplement formater les cellules de date elles-mêmes avec un format personnalisé comme cela a déjà été suggéré, selon que vous en ayez vraiment besoin dans une colonne séparée ou non. J'utilise souvent des formats de date tels que
ddd dd mmm yyyy
pour donner par exemple Sat 01 Feb 2003 donc la date est explicite mais montre aussi le nom du jour de la semaine.
Utiliser une deuxième colonne et une fonction TEXTE est essentiel si vous voulez utiliser le jour de la semaine explicitement quelque part dans une fusion de courrier (par exemple), de même pour des choses comme les devises et ainsi de suite sur Excel > La fusion de Word passe la valeur stockée sous-jacente réelle plutôt que la version formatée à l'écran, donc quel que soit le format de la cellule, Word voit un nombre horrible. Un véritable champ de texte est transmis “tel quel” et s'affiche correctement dans Word.
*en fait, c'est un lundi mais Excel a été écrit pour correspondre aux dates incorrectes dans Lotus 1-2-3 qui traitait 1900 comme une année bissextile alors qu'elle ne l'est pas.
J'ai trouvé que l'imbrication des déclarations IF
peut être lourde, mais ça marche. Si, toutefois, vous souhaitez économiser un peu de frappe, vous pouvez essayer 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, “A2” peut être n'importe quelle cellule (ou formule) contenant la date en question :
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
imprimerait l'abréviation à trois lettres de ce qui est aujourd'hui.
Cellule A1 : 1/8/2009 Cellule B1 : =A1 puis appuyez sur ctrl+1 (format de la cellule) sélectionnez l'onglet des numéros, cliquez sur “Custom” puis tapez “DDDD” dans la zone de saisie
Vous pouvez également localiser la réponse en utilisant [$nnn] avant le format (le code personnalisé est donc : [$nnn]dddd;@). Changez nnn par le code de langue approprié. Je n'ai pas la liste, mais le code anglais est -409 (et mon code local est -421).
je pense que vous pouvez expérimenter avec le format des nombres, changer le champ de la langue, puis le changer à nouveau pour un format personnalisé.
Affiche la date du jour
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Affiche la date du jour avec le texte 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")
La fonction WEEKDAY peut être utilisée dans les codes Vba . Par exemple :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Le nom du jour est obtenu dans la TextBox1 de l'exemple ci-dessus. Le résultat est “lundi ”.
J'ai utilisé cette fonction lorsque j'ai créé un formulaire utilisateur sur la saisie de la date dans la cellule active avec le menu contextuel. Le modèle peut être consulté ici