[英]How do i get first date and Last date from month and year |Excel |Used Spinner for Month and Year|
[英]Get month and year from date cells Excel
我想从日期列中隔离month
和year
,但此列有两种格式:
2011年5月8日00:59和08-05-2011 。
如果我想要一个新的列来隔离这个专栏中的月份和年份,例如: 05-2011 ,我应该怎么做?
试试这个公式(它会从A1
返回值,如果它不是一个日期):
=TEXT(A1,"mm-yyyy")
或者这个公式(它更严格,如果A1
不是日期,它将返回#VALUE
错误):
=TEXT(MONTH(A1),"00")&"-"&YEAR(A1)
请尝试以下方法 :
=IF(LEN(C1)>10,VALUE(LEFT(C1,FIND(" ",C1,8))),IF(ISTEXT(C1),DATE(RIGHT(C1,4),MID(C1,4,2),LEFT(C1,2)),C1))
您似乎有三种主要可能的情况:
下面的ColumnA格式为General ,ColumnB格式为Date(我的默认设置)。 ColumnC也作为日期,但具有自定义格式以适合您的问题中提到的外观。
关于文本格式是否是单元格内容的左对齐或右对齐的线索。
我建议对上述三种主要病例中的每一种进行单独治疗,因此使用= IF来区分它们。
这比其他任何一个都长,因此可以区分为长度大于10个字符, = LEN 。
在这种情况下,我们想要除了最后六个字符之外的所有字符,但为了增加灵活性(例如,如果时间元素包括秒数),我选择从左边而不是从右边开始计数。 那么问题是月份名称的长度可能不同,所以我选择查找紧跟年份的空间以指示相关字符数的限制。
这与= FIND在C1
寻找一个空格( " "
),从左边开始计算C1
内的第八个字符,假设在这种情况下,天数将表示为两个字符,而月份则表示为三个或更多 。
由于= LEFT是一个字符串函数,它返回一个字符串,但是这可以转换为值为VALUE的值 。
所以
=VALUE(LEFT(C1,FIND(" ",C1,8)))
在此示例中返回40671
- 在Excel的1900日期系统中 ,2011年5月5 日的日期序列号。
如果C1的长度不超过10个字符,我们仍然需要区分我选择使用= ISTEXT的文本条目或值条目,以及if条件为TRUE的情况(对于C2)apply = DATE这需要三个参数,这里提供:
=RIGHT(C2,4)
采用C2的最后四个字符,因此在此示例中为2011
。
=MID(C2,4,2)
从第四个字符开始,取C2的下两个字符,因此在此示例中为05
(表示May)。
=LEFT(C2,2))
采用C2的前两个字符,因此在此示例中为08
(表示该月的第8天)。 日期不是文本函数,因此不需要包含在= VALUE中。
一起来
=DATE(RIGHT(C2,4),MID(C2,4,2),LEFT(C2,2))
在此示例中也返回40671
,但来自Case#1的不同输入。
很简单,因为已经是日期序列号,所以只是
=C2
足够了。
将上述内容放在一起以涵盖单个公式中的所有三种情况:
=IF(LEN(C1)>10,VALUE(LEFT(C1,FIND(" ",C1,8))),IF(ISTEXT(C1),DATE(RIGHT(C1,4),MID(C1,4,2),LEFT(C1,2)),C1))
在ColumnH中应用于ColumnF(格式化为适合OP)或一般格式(以显示值为整数):
您可以右键单击这些单元格,转到格式,选择自定义,然后键入mm yyyy。
我要求提供一个报告,按月显示详细信息,其中日期字段被格式化为日期和时间,我只是将日期列的格式更改为“常规”,然后在新列中使用以下公式,
=CONCATENATE(YEAR(C2),MONTH(C2))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.