Excel:无法使自定义数字格式适用于特定的日期和时间

Excel:无法使自定义数字格式适用于特定的日期和时间

我已经研究这个问题一段时间了,对于我拥有的特定日期+时间格式,我无法让自定义数字格式正确选择日期。

我有这些日期(几个例子):

6/21/2013 6:40 PM
5/28/2013 5:51 AM
6/11/2014 10:03 AM
12/3/2013 2:40 PM

还有这个自定义数字格式:

m/d/yyyy h:mm am/pm

在我看来,它应该能判断出这是一个日期,然后我需要计算出这个特定格式的两个日期之间的时间差。我有数百个这样的日期,因此手动将它们编辑为其他格式不是一个好选择。

例如,我想稍后对日期执行类似的操作:

=INT(D3-B3) & "d " & HOUR(D3-B3) & "h " & MINUTE(D3-B3) & "m"

其中 D3 和 B3 是给定格式的任意两个日期且 D3 > B3。

这样就可以得到两个日期之间的天数、小时数和分钟数,如下所示:

Xd Yh Zm

我尝试过其他格式,效果很好,但我需要那种格式。

我使用的模式有什么问题吗?

添加了示例 xlsx 文件https://itmb.co/zlw44

答案1

即使您的数据看起来像日期,实际上您TEXT在工作表中看到的不是日期值(检查它的最快方法是查看水平对齐方式,默认情况下文本是左对齐,数字是右对齐)。

因此,您需要将数据转换为日期,最快的解决方案是使用:=DATEVALUE(A2)+TIMEVALUE(A")函数。现在您将在单元格中获得值,只需将其格式化为所需的格式即可。

注意:仅当您的区域设置中的日期格式如下时,此功能才有效month/day/year
否则您需要:

  • 更改日期格式,进行转换,将计算结果转换为值,然后将日期格式更改为原始格式
  • 使用公式来改变日期部分的顺序(技巧例如这里

答案2

您使用的模式或公式没有任何问题。该公式适用于我尝试过的几种日期格式。

验证 B 和 D 中的日期值的开头没有多余的空格或其他不可见的字符。

答案3

假设您的值实际上存储(未格式化)为日期,您可以使用以下数字格式进行简单的减法:

d"d" hh"h" mm"m"

答案4

因此,我通过将计算机的区域设置更改为来“解决”了这个问题en_US,这样m/d/yyyy h:mm am/pm格式就会被识别。

之后,我能够将语言环境更改为我的真实语言环境,并且它仍然可以识别我需要的日期格式。

相关内容