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


33

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


4
好吧,您可以使用键盘在单元格中键入MONDAY ...但我认为您的意思有所不同。
Mike Cooper

哦,是的:o)我确实可以键入它。我将更新问题以使其更具体
Don Vince

Answers:


54

简单的例子:

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

对于给定的日期,这将打印相应的日期。

这是您想要的吗?


非常感谢!小错字:中间有分号,应该是逗号。
Don Vince

@Don Vince-Ups,对此感到抱歉。
Rook

2
在使用逗号作为小数点分隔符的本地化环境(Windows中的“区域设置”)中,必须使用分号。就像在英语中将英语1,000.00(一千)写为1.000,00,因此在Excel中输入为1000,00的语言一样。我实际上以为分号总是被接受,但是对此我可能是错的。
Arjan


4
这仅是因为1900年1月1日是一个奇数,所以才起作用。完全失去工作日功能,只需使用= TEXT(A1,“ dddd”)(请参阅下面的完整答案)
AdamV

19

上面给出的答案仅适用于fluke,因为Excel认为1/1/1900是Sunday *,默认情况下,Excel使用Sunday作为Weekday函数的一周的第一天。

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

您只需使用以下命令,即可使公式更短,更快,更强大

=TEXT(A1,"dddd")

当然,您可以按照建议的方式使用自定义格式对日期单元格本身进行格式化,具体取决于您是否真的需要在单独的列中进行格式化。我经常使用日期格式,例如

ddd dd mmm yyyy

例如,2003年2月1日星期六,因此日期是明确的,但也显示了星期几的名称。

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

*实际上,这是星期一,但是Excel的编写是为了匹配Lotus 1-2-3中的错误日期,而Lotus 1-2-3中的日期不正确,因此将其视为as年。


在您进行编辑之前,我已经对其进行了投票。现在更好了。
Jeroen Wiert Pluimers,2012年

7

另一种可能的方法是,将单元格的格式设置为“自定义”:


高超!这可以解决问题,并且非常适合您不想使用另一列的情况。谢谢
Don Vince

即使您想使用另一列,也可以执行此操作,只需输入=A1第一个答案中示例中的公式即可。
Arjan

5

我发现嵌套IF语句可能很麻烦,但是确实有效。但是,如果您想保存一些输入内容,则可以尝试以下操作:

=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")

或者,如果您需要全名:

=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")

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

=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat") 

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


1

您还可以在格式前使用[$ nnn]来本地化答案(因此自定义代码为:[$ nnn] dddd; @)。用适当的语言代码更改nnn。我没有列表,但是不知何故,英文代码是-409(而我的本地代码是-421)。

我认为您可以尝试使用数字格式,更改语言字段,然后将其更改回自定义格式。


1
欢迎来到超级用户。答案应始终是独立的,因此请将您的答案扩展为一个有效的示例。另外,我们不知道您来自哪里,所以我的本地人有点不确定。
蒂姆(Tim)

1

A1单元格:2009年1月8日B1单元格:= A1,然后按ctrl + 1(格式单元格),选择数字选项卡,单击“自定义”,然后在txtbox类型上键入“ DDDD”


0

显示当前日期

=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")  

显示当前日期以及必需的必需文本。

=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")

这只是几个先前答案的重复。
fixer1234 '16

0

设置单元格格式-日期-日历类型(选择公历英语)-类型(部分具有您要求的格式,2001年3月14日,星期三)


0

WEEKDAY函数可以在Vba代码中使用。例如 :

Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)

在上面的示例中,日期名称是从TextBox1获取的。结果为“ Monday”

当我使用右键单击菜单创建关于向活动单元格输入日期的用户窗体时,就使用了此功能。

模板可以在这里查看


建议:答案的独特之处是直接回答问题的部分是工作日名称,而不是工作日。这是第一句中要重点关注的术语。
fixer1234 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.