excel-2016 - 想要将一秒格式化为 dd:hh:mm:ss 以在 Excel 2016 中删除零值以提高可读性
问题描述
我有将秒转换为正确值 xx 天 yy 小时 zz 分钟 aa 秒的解决方案,如果值为 00,我想知道一种让输出删除值和标签的方法。
一直在浏览多个站点,并找到了操纵秒数以更改格式的所有好方法,但我怀疑我需要一个函数来获得所需的输出。
这是我将秒数转换为正确格式的代码:
=TEXT(G2/(24*60*60),"dd \D\a\y\s hh \H\o\u\r\s mm \M\i\n\u\t\e\s ss \S\e\c\o\n\d\s")
60(作为我的源秒数)在输出中出现为 00 Days 00 Hours 01 Minutes 00 Seconds。我希望它说 01 Minutes 并删除其他值。12600(作为我的源秒数)在输出中出现为 00 Days 03 Hours 30 Minutes 00 Seconds。我希望它说 03 Hours 30 Minutes 并删除其他值。
解决方案
您必须使用 =Concatenate(If(......)) 来实现这一点。只是为了演示,我又添加了 4 列,分别代表日、时、分和秒,然后将它们连接成一列。我的数据位于单元格 C2。公式如下:
Cell H2 : =TEXT(C$2/(24*60*60),"dd")
Cell I2 : =TEXT(C$2/(24*60*60),"hh")
Cell J2 : =TEXT(C$2/(24*60*60),"mm")
Cell K2 : =TEXT(C$2/(24*60*60),"ss")
以上四个将只提取实际的天/小时/分钟/秒数。并且下面的四个会根据值是零还是非零为其添加后缀。
Cell L2 : =CONCATENATE(IF(H2<>"00",CONCATENATE(H2," days"),""))
Cell M2 : =CONCATENATE(IF(I2<>"00",CONCATENATE(I2," hours"),""))
...
...
最后,只需通过 O2 连接 L2 即可获得所需的结果。
=CONCATENATE(L2," ", M2," ",N2," ",O2)
您可能想从这里下载演示实现。
推荐阅读
- javascript - vuejs中基于propsdata测试多个案例
- google-drive-api - Google Drive API 不允许每天传输超过 2GB 的文件
- python - 在 Windows 10 中安装适用于 Python 3.7.1 的 Mayavi
- c# - 如何使用 JSON 序列化字节数组而不增加长度
- r - 截断矩阵中“n”以下的所有数字
- mysql - 需要在 MySQL 服务器上使用 sql_mode=only_full_group_by 修改 SQL 语法
- firebase - 与 firebase_admob 一起颤动
- sapui5 - BOBF 动作的启用和禁用
- c# - C# 方法给出 System.InvalidCastException
- python - 将值范围映射到字符串