如何在Excel中使用自定义数字格式的条件运算符来表示日期和时间?

XP1*_*XP1 5 excel

如何在Excel中使用自定义数字格式的条件运算符来表示日期和时间?

如果我有一列数字,我可以使用自定义数字格式来显示单数或复数字.

右键单击单元格>格式化单元格...>数字>类别:自定义>类型:

[=1]# "item";# "items"
Run Code Online (Sandbox Code Playgroud)

>好的

对于包含1的单元格,自定义数字格式显示"1项".

对于包含7的单元格,自定义数字格式显示"7项".

同样,我想随着时间的推移做同样的事情.

如果我有一列时间,例如00:01:00,00:20:00,00:25:00等,我想显示"1分钟","20分钟","25分钟",等等

我第一次尝试[=1][m] "minute";[m] "minutes",但结果是1表示24小时或1天.

1分钟的值是

1 / 24 / 60 = 1 / 1440 = 0.0006944444444444444444444444...
Run Code Online (Sandbox Code Playgroud)

我试图进入一小部分,但[=1/1440][=1/1440][m] "minute";[m] "minutes"变成[=1].

不幸的是,我尝试过[=0.000694444444444444][m] "minute";[m] "minutes",但这不起作用.

以下工作,但我想使用精确的分钟值.

[<=0.000694444444444445][m] "minute";[m] "minutes"
Run Code Online (Sandbox Code Playgroud)

是否有1分钟的格式有效?


以下是自定义数字格式的文档:

lor*_*i_m 4

有趣的问题。乍一看,尝试这个分数格式:

[=0 1/1440][m] "minute";[m] "minutes"
Run Code Online (Sandbox Code Playgroud)

似乎有效。然而,输入后您会看到,它显示的小数点与帖子中的小数点相同。这对于当前会话来说没问题,但保存文件并重新打开会再次恢复到原来的问题。

问题在于数字格式的值四舍五入为 15 位精度,而需要 17 位数字才能准确指定内部浮点数。查看此情况的一种方法是从立即窗口尝试此 17 位精度测试:

?[0 1/1440]=0.00069444444444444444
Run Code Online (Sandbox Code Playgroud)

该返回True但删除了最后两个 4,因此只有 15 位精确返回False

鉴于这些观察结果,我认为唯一可靠的方法是输入包含相当于一分钟的十进制值的 15 位数字间隔。这可以使用以下数字格式来完成:

[>0.000694444444444445][m] "minutes";[>0.000694444444444444][m] "minute";[m] "minutes"
Run Code Online (Sandbox Code Playgroud)

(或者如果包含秒,则第一个值可以替换为 2 分钟值,即 0.00138888888888888)

另一种方法是使用条件格式,这可能会更简单。首先将默认数字格式应用于[m] "minutes"单元格。然后从功能区中选择“条件格式”>“新建规则”>“使用公式...”,其中包含以下选项:“公式...”:“=MINUTE(A1)=1数字格式”:[m] "minute"