有条件地从时间中删除尾随零

Conditional removal of trailing zero's from time

我只想删除 excel 中时间的尾随零。即 0700 应显示为 07,但 1630 应保持为 1630。

我已经能够在 UDF 中执行此操作,但它开始减慢我的 sheet 速度。有什么方法可以将其作为内置函数实现吗?

按要求回答:

=IF(RIGHT(TEXT(A1,"hhmm"),2="00", 左(文本(A1,"hh"),2), 文本(A1,"hhmm"))

必须使用 TEXT 将时间标识为字符串,否则 excel 会将其视为小数。

虽然这个问题已经得到解答,但其他方法可能包括:

=TEXT(A1,IF(MOD(A1*24,1),"hhmm","hh"))

或:

=TEXT(A1,IF(OR(MINUTE(A1),SECOND(A1)),"hhmm","hh"))

在这两种情况下,return 值都是一个字符串(该值不再在内部表示为数字)。