2009-09-15 23:04:12 +0000 2009-09-15 23:04:12 +0000
33
33

如何在Excel中的单元格中获取日期名称?

给定一个日期,如何将一周中的某一天(如 “星期一")放入Excel的单元格中?

答案 (9)

54
54
54
2009-09-15 23:06:40 +0000

简单的例子:

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

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

这是你想要的吗?

19
19
19
2009-11-02 10:43:55 +0000

上面给出的答案只是因为Excel认为1900年1月1日是周日*,而默认情况下,Excel是将周日作为星期几函数的第一天。

在该方法中,你实际上计算的是一周中的某一天,作为一个数字,然后根据这个数字解释为日期,将其格式化为一天。例如,如果你的日期是1/2/2003,你使用WEEKDAY函数,结果是7(=星期六)。当你将其格式化为 “ddddd "时,你实际上得到的是Excel中第7天的日名,因为它是 "纪元",即7/1/1900,恰好是星期六/*。如果有人打开这个公式时选择了使用基于1904年的日期系统,那么这个公式就会被打破,因为1/1/1904不是星期天,而是星期五。(是的,我知道几乎没有人使用这个,但你不会想建立一个依赖于这个的解决方案吧?)

你可以通过使用

=TEXT(A1,"dddd")

使公式更短、更快、更稳健,当然,你也可以像前面建议的那样,用自定义格式来格式化日期单元格,这取决于你是否真的需要在单独的列中使用这些格式。我经常使用日期格式,比如

ddd dd mmm yyyy

来表示例如Sat 01 Feb 2003,所以日期是明确的,但也显示工作日的名称。

如果你想在邮件合并中某个地方明确地使用工作日,那么使用第二列和TEXT函数是非常必要的(例如),同样地,对于像货币这样的东西,Excel也是如此。 Word合并传递的是实际的基础存储值,而不是屏幕上的格式化版本,所以不管单元格的格式如何,Word都会看到一些可怕的数字。一个真正的文本字段被 "原样 "传递,并在Word中正确显示。

*事实上,今天是星期一,但Excel是为了匹配Lotus 1-2-3中的错误日期而编写的,Lotus 1-2-3将1900年视为闰年,而实际上不是。

7
7
7
2009-09-15 23:16:11 +0000

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

5
5
5
2012-12-08 18:02:03 +0000

我发现嵌套IF语句可能会很麻烦,但确实有效。不过,如果你想节省一点打字量,你可以试试这个。

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

或者,如果你需要全名:

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

在这个例子中,"A2 “可以是任何包含相关日期的单元格(或公式)。例如,"A2 "可以是包含相关日期的任何单元格(或公式)。

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

可以打印出今天的三个字母缩写。

1
1
1
2014-06-18 05:49:40 +0000

A1单元格。1/8/2009 B1单元格:=A1然后按ctrl+1(格式化单元格)选择数字选项卡,点击自定义,然后在类型txt框上输入 “DDDD"。

1
1
1
2013-10-10 15:52:11 +0000

你也可以通过在格式前使用[$nnn]来本地化答案(所以自定义代码是:[$nnn]ddd;@)。

我想你可以用Number格式做实验,改变语言字段,然后改回自定义格式。

0
0
0
2016-06-29 04:04:28 +0000

格式单元格–日期–日历类型(选择公历英文)–类型(部分有你要求的格式,2001年3月14日星期三)

0
0
0
2013-04-03 13:45:00 +0000

显示当前日期

=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")
0
0
0
2016-11-29 17:45:23 +0000

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

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

在上面的例子中,从TextBox1中得到日期名称。结果是“星期一 ”

我在创建用户表单时使用了这个功能,通过右键菜单将日期输入到活动单元格。 模板可以在这里查看