如何将日期名称放入 Excel 中的单元格中?

Don*_*nce 33 worksheet-function microsoft-excel

给定日期,如何将星期几(例如“星期一”)放入 Excel 中的单元格中?

Roo*_*ook 54

简单的例子:

A1 单元格:1/8/2009
B1 单元格:=TEXT( WEEKDAY (A1),"dddd")

这将为给定的日期打印相应的日期。

这是你想要的吗?

  • 这只是因为 1/1/1900 是一个星期天的奇怪之处。完全失去工作日功能,只需使用 =TEXT(A1,"dddd") (见下面我更完整的答案) (4认同)
  • 在使用逗号作为小数点分隔符的本地化(Windows 中的区域设置)中需要分号。就像在英语 1,000.00(一千)将被写为 1.000,00 并因此在 Excel 中输入为 1000,00 的语言中一样。我实际上认为分号总是被接受,但我可能错了。 (2认同)

Ada*_*amV 19

上面给出的答案仅适用于侥幸,因为 Excel 认为 1/1/1900 是星期日*,并且默认情况下,Excel 使用星期日作为 Weekday 函数的第一天。

您在该方法中实际计算的是星期几作为数字,然后根据解释为日期的数字将其格式化为一天。例如,如果您的日期是 1/2/2003 并且您使用 WEEKDAY 函数,则结果为 7(=星期六)。当您将其格式化为“dddd”时,您实际上是在 Excel 中获得自其“纪元”以来第 7 天的日期名称,即 7/1/1900,恰好是星期六*。如果有人打开它并选择使用基于 1904 年的日期系统,则此公式将失效,因为 1/1/1904 不是星期日,而是星期五。(是的,我知道几乎没有人使用它,但是您不想构建依赖于此的解决方案吗?)

您可以简单地使用

=TEXT(A1,"dddd")
Run Code Online (Sandbox Code Playgroud)

您当然可以使用已经建议的自定义格式来格式化日期单元格本身,这取决于您是否真的需要在单独的列中使用它。我经常使用日期格式,例如

ddd dd mmm yyyy
Run Code Online (Sandbox Code Playgroud)

给例如2003 年 2 月 1 日星期六,所以日期是明确的,但也显示了工作日名称。

如果您想在邮件合并中的某处显式使用工作日(例如),则使用第二列和 TEXT 函数是必不可少的,类似于货币等 Excel > Word 合并传递实际的基础存储值而不是 on -screen 格式的版本,因此无论单元格格式如何,Word 都会看到一些可怕的数字。真正的文本字段按“原样”传递并在 Word 中正确显示。

*实际上这是一个星期一,但 Excel 是为了匹配 Lotus 1-2-3 中不正确的日期而编写的,该日期将 1900 年视为闰年,而实际上不是。


Mar*_*ret 7

另一种可能性,取决于您想在之后对日期做什么,是将单元格的格式设置为自定义:dddd


小智 5

我发现嵌套IF语句可能很麻烦,但它确实有效。但是,如果您想节省一点输入,可以尝试以下操作:

=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Run Code Online (Sandbox Code Playgroud)

或者,如果您需要全名:

=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Run Code Online (Sandbox Code Playgroud)

在此示例中,“A2”可以是包含相关日期的任何单元格(或公式)。例如:

=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat") 
Run Code Online (Sandbox Code Playgroud)

无论今天是什么,都会打印三个字母的缩写。