如何在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分钟的格式有效?
以下是自定义数字格式的文档:
有趣的问题。乍一看,尝试这个分数格式:
[=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"