在 Excel 中将月份数从完整日期单元格转换为文本月份

Posted

技术标签:

【中文标题】在 Excel 中将月份数从完整日期单元格转换为文本月份【英文标题】:Converting month number from full date cell into text month in Excel 【发布时间】:2017-09-25 21:00:52 【问题描述】:

所以我有一个很长的列,其中包含姓名日期和时间,如下所示: 14/01/2017 03:30 (它们是 DD/MM/YYYY HH:MM)

我需要获取月份编号并将其显示为文本,例如一月、二月等。 如果我将目标单元格格式化为“MMM”,那么即使给定月份是 2、3 或假设为 12,所有列单元格都会显示一月。我还尝试了公式 =TEXT(L2,"mmmm") (因为给定的信息来自 F 列。

有什么想法吗?

【问题讨论】:

【参考方案1】:

听起来您的日期和时间是以文本形式存储的,而不是以 Excel 序列日期格式存储的。您可以通过将单元格的格式更改为一般格式并查看是否发生任何事情(如果没有任何变化然后其文本)来测试这一点。另一种方法是使用公式=istext(A1),其中 A1 是一个包含日期的单元格。

现在假设您确实有文本格式的日期,我建议将它们转换为 excels 日期序列。有很多方法可以做到这一点。我会告诉你一种方法。

这将删除文本的每个组成部分,然后重新组合它。我们将假设您的日期是 A1

去掉年份

=MID(A1,7,4)

去掉月份

=MID(A1,4,2)

结束一天

=LEFT(A1,2)

现在重新组合它:

=DATE(MID(A1,7,4),MID(A1,4,2),LEFT(A1,2))

这将为您提供整数格式的日期,然后 Excel 可以根据需要翻转并显示。

为了不丢失时间部分,您也应该去掉该部分并将其与日期结合起来。请记住,日期是整数,时间是小数点后的所有内容。把时间想象成一天的一小部分。

超时使用:

=RIGHT(A1,5)

并将其转换为excel时间:

=TIMEVALUE(RIGHT(A1,5))

要将两者结合在一起,只需添加:

=DATE(MID(A1,7,4),MID(A1,4,2),LEFT(A1,2)+TIMEVALUE(RIGHT(A1,5))

整个事情的关键部分是您需要格式化该单元格以显示您想要的内容。您可以从下拉菜单中选择预格式化样式,也可以应用自定义格式。将自定义格式设置为 MMMM 应该只显示月份的全名。

如果您确实需要月份的文本而不仅仅是格式,那么您可以使用问题中的公式:

=TEXT(<insert appropriate formula from above>,"mmmm")

【讨论】:

【参考方案2】:

尝试使用MID 仅获取月份,然后使用TEXT()

=TEXT(MID(A1,SEARCH("/",A1)+1,2),"MMMM")

【讨论】:

我不相信它自己可以工作@brucewayne,但如果你把月份去掉并用DATE(0,&lt;YOUR FORMULA FOR GETTING MONTH&gt;,1)替换它,那么它应该拉出月份并按预期显示.通过按预期显示,您仍然需要 TEXT(&lt;&gt;,"mmmm") 部分 @ForwardEd - 哦!我总是忘记 Date 在 Excel 中似乎永远不会很好地发挥作用。我认为它有效,因为 OP 的示例是 1 月......但你是对的,即使我将其更改为其他月份,它仍然是 January

以上是关于在 Excel 中将月份数从完整日期单元格转换为文本月份的主要内容,如果未能解决你的问题,请参考以下文章

在Excel中如何将数字格式批量转换为文本格式,并且保留二位小数?

在Excel中,如何将数字转化成日期?

在EXCEL中将数字转换为文本时怎样在单元格前边自动加0

有没有办法在 Excel 中将长日期转换为短日期?

使用 VBA 读写后 Excel 日期更改(月份和日期交换)

excel 怎么把时间转换成字符串