web-dev-qa-db-fra.com

Comment obtenir le nom du jour dans une cellule d'Excel?

Étant donné une date, comment puis-je obtenir le jour de la semaine (par exemple, "lundi") dans une cellule d'Excel?

33
Don Vince

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?

54
Rook

La réponse donnée ci-dessus ne fonctionne que par hasard, car Excel pense que le 1/1/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 en tant que nombre, puis en le formatant 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 presque 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 sam. 01 févr. 2003 pour que la date soit explicite mais indique é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, il s’agit d’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.

19
AdamV

Une autre possibilité, en fonction de ce que vous voulez faire avec la date après, est de définir le format de la cellule sur Personnalisé:

7
Margaret

J'ai trouvé que les déclarations imbriquées IF peuvent être fastidieuses, 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.

5
Brad

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é.

1
user261479

Cellule A1: 1/8/2009 Cellule B1: = A1 puis appuyez sur ctrl + 1 (cellule de formatage), sélectionnez l'onglet numéro, cliquez sur Personnaliser puis tapez "DDDD" dans le type txtbox.

1
user334332

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")
0
Glen Lloyd

Format Cells - Date - Type de calendrier (sélectionnez Anglais grégorien) - Type (la section présente le format souhaité le mercredi 14 mars 2001)

0
Raj

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.

Le modèle peut être consulté ici

0
kadrleyn