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

33

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

Don Vince
la source
4
Eh bien, vous pourriez taper LUNDI dans la cellule avec votre clavier ... mais de toute façon, je pense que vous voulez dire quelque chose de différent.
Mike Cooper
Oh ouais: o) Je pourrais en effet le taper. Je vais mettre à jour la question pour le rendre plus précis
Don Vince

Réponses:

54

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?

Tour
la source
Merci beaucoup! Petite faute de frappe: il y a un point-virgule au milieu qui devrait être une virgule.
Don Vince
@ Don Vince - Ups, désolé pour ça.
Rook
2
Le point-virgule est requis dans les localisations (Paramètres régionaux dans Windows) qui utilisent la virgule pour le séparateur décimal. Comme dans les langues où l'anglais 1.000 (mille) serait écrit comme 1.000.00 et serait donc entré comme 1000.00 dans Excel. En fait, je pensais qu'un point-virgule était toujours accepté, mais je me trompe peut-être à ce sujet.
Arjan
de rien :) et la bonne réponse mérite une upvote +1
4
Cela ne fonctionne que parce que le 1/1/1900 est un dimanche. Perdez la fonction de jour de la semaine complètement, utilisez simplement = TEXT (A1, "dddd") (voir ma réponse plus complète ci-dessous)
AdamV
19

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.

AdamV
la source
Je l'ai déjà voté avant votre édition. Maintenant c'est encore mieux.
Jeroen Wiert Pluimers Le
7

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

Margaret
la source
Superbe! Cela fait l'affaire, et est idéal pour la situation où vous ne voulez pas utiliser une autre colonne. Merci
Don Vince
Même si vous souhaitez utiliser une autre colonne, vous pouvez le faire en saisissant simplement une formule comme =A1dans l'exemple de la première réponse.
Arjan
5

J'ai trouvé que les IFdé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.

Brad
la source
1

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

utilisateur261479
la source
1
Bienvenue sur SuperUser. Les réponses doivent toujours être autonomes. Veuillez donc développer votre réponse en un exemple concret. De plus, nous ne savons pas d'où vous venez, alors mon local est un peu non spécifique.
Tim
1

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

utilisateur334332
la source
0

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")
Glen Lloyd
la source
Ceci est juste une duplication de plusieurs réponses précédentes.
fix1234
0

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

Raj
la source
0

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 examiné ici

Kadrleyn
la source
Suggestion: ce qui est unique dans votre réponse, la partie qui répond directement à la question est le nom de la semaine, pas le jour de la semaine. C'est le terme sur lequel il faut se concentrer dans la première phrase.
Fix1234